본문 바로가기
  • soobinhand의 기술 블로그
728x90

전체 글119

[네트워크] HTTP HTTP 정의 Hyper Text Transfer Protocol의 약자. 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다. 응용 레벨의 프로토콜로 TCP/IP 위에서 작동한다. 결국 데이터를 주고 받기 위한 프로토콜, 즉 규약이다. 동작방식 클라이언트에서 요청을 보내면 서버는 요청을 처리해서 응답한다. 클라이언트는 URI를 이용해서 서버에 접속하고 데이터를 요청한다. 서버는 클라이언트에서 요청을 받고, 요청을 해석하고 응답한다. Connectionless 대표적인 HTTP의 특징이다. 무연결성. 서버에 요청하고 응답을 받으면 연결을 끊어버린다. 왜? 왜 연결을 끊게 설계를 했을까 처음에? 바로 리소스 부족이 그 이유다. 연결을 계속 유지하면 리소스가 계속 사용되고 그렇.. 2022. 1. 22.
[자바 프로그래밍 언어] 22장 기타 유틸리티 22.1 Formatter Formatter 클래스는 기본 값과 객체를 텍스트로 표현할 수 있게 해준다. 객체나 값을 텍스트로 표현하는 일반적인 방법은 객체의 toString 메소드나 적절한 래퍼 클래스의 toString 메소드를 사용하여 객체나 값을 문자열로 변환하는 것이다. Formatter를 사용하면 텍스트를 원하는 형식으로 변환할 수 있다. Formatter 객체의 주요 메소드는 format 메소드이다. 이 메소드의 가장 단순한 형식은 포맷 문자열과 포맷하고 싶은 객체나 값들을 인자로 받는다. 포맷 지정자는 % 문자로 시작하며 수행할 변환 타입을 지시하는 문자로 끝난다. f 변환 지시자는 인자로 10진수 형식으로 변환될 부동 소수점 값이 와야 한다. e 변환 지시자는 결과를 기수법으로 변환하는 부.. 2022. 1. 10.
[자바 프로그래밍 언어] 21장 컬렉션 21.1 컬렉션 컨테이너라고도 부르는 컬렉션은 객체를 효율적인 방법으로 접근할 수 있도록 저장하고 구성한다. java.util 패키지에는 제네릭 컬렉션 프레임워크를 제공하는 인터페이스와 클래스들이 있다. 이 프레임워크는 일관되고 유연한 컬렉션 인터페이스 집합과 이 인터페이스들을 구현한 유용한 클래스들을 제공한다. 컬렉션 인터페이스는 다음과 같다. Collection - 컬렉션의 최상위 인터페이스. add, remove, size, toArray와 같은 메소드를 제공한다. Set - 중복된 요소를 포함할 수 없는 컬렉션이며 요소들은 특정 순서로 저장되지 않는다. SortedSet - 요소들을 정렬하여 관리하는 집합. Set을 확장한 것. List - 리스트가 수정되지 않는 동안은 요소들을 특정 순서로 관리.. 2022. 1. 9.
[자바 프로그래밍 언어] 20장 I/O 패키지 20.1 스트림 개요 20.2 바이트 스트림 20.3 문자 스트림 20.4 InputStreamReader와 OutputStreamWriter 20.5 스트림 클래스 개요 20.6 바이트 스트림 20.7 파일로 작업하기 20.8 객체 직렬화 20.9 IOException 클래스 20.10 New I/O 맛보기 2022. 1. 9.
[자바 프로그래밍 언어] 19장 문서화 주석 19.1 문서화 주석의 분석 19.2 태그 19.3 메소드 문서화 주석 상속 19.4 예제 19.5 외부 협약 19.6 유의사항 2022. 1. 9.
[자바 프로그래밍 언어] 18장 패키지 18.1 패키지 명명 패키지는 독립적으로 배포되거나 애플리케이션 제작을 위해 다른 패키지와 조합될 수 있는 소프트웨어 단위를 정의한다. 패키지는 클래스와 인터페이스, 하위 패키지와 관련된 멤버를 가질 수 있으며 추가적으로 패키지 내의 클래스가 사용하는 자원 파일들도 포함될 수 있다. 패키지는 서로 관련된 인터페이스와 클래스를 그룹화할 수 있다. 패키지는 타입들 간에 이름 충돌이 발생하는 것을 피하기 위해 네임 스페이스를 생성한다. 패키지는 애플리케이션 프레임워크 개발을 위해 보호 도메인을 제공한다. 패키지 내의 코드들은 식별자를 통해 서로 호출할 수 있다. 하지만 이 식별자는 외부에서 사용 불가. 패키지 선언은 클래스나 인터페이스 선언에 앞서서 소스 파일의 가장 앞부분에 작성되어야 한다. 시스템은 적어도.. 2022. 1. 7.
[자바 프로그래밍 언어] 17장 가비지 컬렉션과 메모리 17.1 가비지 컬렉션 자바 가상 머신은 가비지 컬렉션을 통해 프로그램에서 더 이상 참조되지 않는 객체를 찾아서 메모리 공간에서 제거한다. 자바에는 객체를 생성하기 위한 new 연산은 있지만 생성된 객체를 메모리에서 제거하는 delete 연산은 없다. 그래서 객체의 사용이 끝났을 때, 우리가 할 수 있는 일은 사용이 끝난 객체의 참조를 끊는 것 뿐이다. 참조를 끊기 위해서는 사용하고 있던 참조를 다른 객체의 참조로 변경하거나 null을 설정 또는 메소드를 반환해서 이 메소드의 지역 변수가 더 이상 존재하지 않게 하여 메소드 내의 변수들이 어떤 것도 참조할 수 없게 해야 한다. 이렇게 참조가 끊긴 객체를 가비지라고 하며 이러한 가비지들을 찾아서 메모리에서 제거하는 것을 가비지 컬렉션이라고 한다. 자바 가상.. 2022. 1. 6.
[자바 프로그래밍 언어] 16장 리플렉션 16.1 Class 클래스 java.lang.reflect 패키지는 타입을 자세하게 검사할 수 있는 리플렉션 클래스를 포함하고 있다. 이 클래스를 사용하면 완벽한 타입 브라우저를 작성하거나 사용자가 작성한 코드를 번역하는 애플리케이션을 작성할 수 있다. 리플렉션을 위해서는 가장 먼저 Class 객체를 사용해야 한다. 클래스의 완전한 이름 ( 예를 들어, java.lang.String )이 주어지면 프로그램은 정적 메소드 Class.forName을 사용해 클래스의 Class 객체를 얻는다. Class 객체는 모든 타입, 즉 클래스, enum, 인터페이스, 어노테이션, 배열, 기본 타입을 나타낼 수 있다. Class 클래스는 리플렉션의 시작 시점으로써 지정된 문자열을 이름으로 가지는 타입의 객체를 생성하거나.. 2022. 1. 5.
[자바 프로그래밍 언어] 15장 어노테이션 15.1 간단한 어노테이션 예제 어노테이션 타입은 자동 처리를 위해 도구들이 지켜야 하는 표준화되고 구조화된 방법으로 정보를 표현한다. 원하는 정보를 모두 담을 수 있는 어노테이션 타입을 다음처럼 정의할 수 있다. @interface ClassInfo{ String created(); String createdBy(); String lastModified(); String lastModifiedBy(); int revision(); } 어노테이션 타입은 특수한 종류의 인터페이스로 @ 문자로 시작하고 그 뒤에 interface키워드가 따라 나온다. 어노테이션은 클래스나 필드 선언과 같은 프로그램 요소에 적용할 수 있다. 어노테이션은 수정자이며 수정자를 허용할 수 있는 곳이라면 어디에든 선언 가능. 어노테이.. 2022. 1. 4.
[Algorithms] 3장 - Searching SequentialSearchST - 순차 탐색 ( 비순차 연결 리스트 기반 ) https://github.com/Soobinhand/Algorithms/blob/master/src/Search/SequentialSearchST.java BinarySearchST - 이진 탐색 ( 순차 배열 기반 ) https://github.com/Soobinhand/Algorithms/blob/master/src/Search/SequentialSearchST.java BST - 이진 탐색 트리 기반 심볼 테이블 https://github.com/Soobinhand/Algorithms/blob/master/src/Search/BST.java RedBlackBST - 레드 블랙 BST SeparateChainingHas.. 2022. 1. 3.
728x90