JDK 이야기
JDK란
- JRE + Development tools
- JRE = JVM + Library
- JVM : 자바를 돌리는 가상머신. window, Mac, Linux 등등에서 자바의 class 파일을 돌릴 수 있게 해줌
- Development tools : java, javac, javadoc 등등
JDK
- JDK 8
- LTS(Long Term Support)가 길다, 즉 지원기간이 길다. 많이 사용되는 JDK이다.
- 그리고 대다수가 Java 8로 개발되어 기존의 프레임워크들과의 호환성이 좋다.
- JDK 9부터 11까지의 주요 업데이트
- New Garbage Collector, ZGC 추가
- “Stop-the-world”로 인한 성능저하를 개선하기 위한 목적을 가지고 Oracle에서 개발
- Stop-the-world : 가비지 컬렉터를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것 2. Collection Factory Method 강화
- Set, List, Map 인터페이스에 Immutable 생성할 수 있는 새로운 메서드가 추가
- 변경 전
- 변경 후
- Immutable 속성 때문에 변경 작업이 어렵지만, 필요한 경우 아래와 같이 진행
- 3. Reactive Stream
- Non-Blocking Backpressure를 이용한 비동기 스트림 처리의 표준 제공이 목적인 기능
- 기존 “Observer Pattern”에서 극복이 어려웟던 C10K 문제를 해결하기 위해 Subscription이라는 중계 브로커가 추가된 패턴 방식
- C10K 문제 : 동시에 만 개의 클라이언트 요청이 올 경우 처리할 수 없는 문제
- Publisher : 데이터 상태 변경 시 생산한 데이터를 전달해주는 데이터 제공자
- Subscriber : Publisher에서 발생한 데이터를 받아 처리하는 데이터 수신자
- Subscription : Publisher에게 전달받은 데이터를 제어하여 Subscriber에게 전달하는 중계 브로커