포스트

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까지의 주요 업데이트
    1. 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에게 전달하는 중계 브로커