Java에서 InetSocketAddress는 인터넷 프로토콜(IP) 네트워크에서 소켓 주소(IP 주소 및 포트 번호)를 나타내는 클래스이다.
InetSocketAddress 클래스는 소켓 연결의 대상 주소와 포트 번호를 지정하는 데 사용되는 네트워크 프로그래밍에서 자주 사용된다. 이 클래스는 IP 주소와 포트 번호를 가져오고 설정하는 방법과 두 소켓 주소를 비교하는 방법을 제공한다.
'InetSocketAddress'의 생성자 중 하나는 IP 주소의 문자열 표현과 포트 번호의 정수를 사용하여 클래스의 인스턴스를 만든다. 예를 들어, 다음 코드는 IP 주소 "localhost"(127.0.0.1과 동일) 및 포트 번호 8080에 대한 InetSocketAddress를 생성한다.
HttpServer 클래스 → 간단한 HTTP 서버를 구현한다.
HttpServer는 IP 주소와 포트 번호에 바인딩되고 이 주소의 클라이언트로부터 들어오는 TCP 연결을 수신 대기한다. 서브 클래스 HttpsServer는 HTTPS 요청을 처리하는 서버를 구현한다.
요청을 처리하려면 하나 이상의 HttpHandler 객체를 서버에 연결해야한다. 이러한 각 HttpHandler는 이 서버에서 애플리케이션 또는 서비스의 위치를 나타내는 루트 URI 경로로 등록된다. 핸들러와 HttpServer의 매핑은 HttpContext 객체에 의해 캡슐화된다. HttpContext는 createContext(String,HttpHandler)를 호출하여 생성된다. 핸들러를 찾을 수 없는 모든 요청은 404 응답으로 거부된다. 스레드 관리는 Executor 객체를 제공하여 이 객체 외부에서 수행할 수 있다. 아무것도 제공되지 않으면 기본 구현이 사용된다.
불변 컬랙션(Immutable Collections)
Java 불변 컬렉션은 일단 생성되면 수정할 수 없는 컬렉션이다. 변경할 수 없는 컬렉션이 생성되면 해당 콘텐츠를 변경할 수 없다. 이는 여러 스레드가 동일한 모음에 액세스할 수 있는 다중 스레드 환경과 같이 모음의 내용을 수정할 수 없도록 하려는 상황에서 유용할 수 있다.
Java에는 다음을 포함하여 변경할 수 없는 컬렉션을 제공하는 여러 클래스가 있다.
- Collections.unmodifiableList: 이 메서드는 지정된 목록의 수정 불가능한 보기를 반환한다.
- Collections.unmodifiableSet: 이 메서드는 지정된 Set의 수정 불가능한 보기를 반환한다.
- Collections.unmodifiableMap: 이 메서드는 지정된 맵의 수정 불가능한 보기를 반환한다.
- List.of: 이 메서드는 지정된 요소를 포함하는 변경 불가능한 목록을 반환한다.
- Set.of: 이 메소드는 지정된 요소를 포함하는 불변 세트를 반환한다.
- Map.of: 이 메서드는 지정된 키-값 쌍을 포함하는 변경 불가능한 Map을 반환한다.
이러한 방법 중 하나를 사용하여 불변 컬렉션을 만들려면 컬렉션의 내용을 메서드에 대한 인수로 전달하기만 하면 된다. 예를 들어 "apple", "banana" 및 "cherry" 요소를 포함하는 변경할 수 없는 목록을 만들려면 다음 코드를 사용한다.
이 목록이 생성되면 내용을 수정할 수 없다. 목록에서 요소를 추가하거나 제거하려고 하면 UnsupportedOperationException이 발생한다.
불변 컬렉션은 가변 컬렉션보다 몇 가지 장점이 있다. 스레드로부터 안전하므로 여러 스레드가 동기화할 필요 없이 액세스할 수 있다. 또한 생성된 후에 내용을 변경할 수 없기 때문에 더 예측 가능하고 추론하기 쉽다.
'TIL' 카테고리의 다른 글
Day59 (0) | 2023.04.04 |
---|---|
Day58(GET과 POST 차이,assertTrue 와 assertEquals 사용하는 상황 ) (0) | 2023.04.03 |
Day56(코딩테스트 공부법) (0) | 2023.04.01 |
Day55 (0) | 2023.03.31 |
Day54(웹페이지 제작과정,<aside>,<nav>) (0) | 2023.03.30 |