본문 바로가기

봄보라

Java JDK 17 → 21 → 22 주요 버전별 추가 기능 및 바뀐점

Java는 중요한 장기지원(LTS) 릴리즈와 중간 기능 릴리즈를 번갈아 내놓으며 점진적으로 언어와 런타임을 진화시켜 왔습니다

 

최근 개발자 커뮤니티에서 주목받고 있는 JDK 17, 21, 22의 차이점을 아래처럼 정리해봤습니다.

 

 

JDK 17 (2021년 LTS)

  • Sealed Classes: 상속 가능한 클래스를 제한해 안정성과 가독성 향상
  • Context-Specific Deserialization Filters: 역직렬화 보안 강화

 

JDK 20 (2023년 비LTS)

  • Virtual Threads (JEP 436, preview): 수만 개 동시 실행 가능한 경량 스레드
  • Structured Concurrency (JEP 437, incubator): 관련 스레드를 단일 작업 단위로 묶어 관리
  • Memory & Foreign Function API (JEP 434): Java 외부 메모리 및 C 호출 안전하게 연동
  • Vector API (JEP 438): SIMD 연산 지원으로 고성능 계산 가능

 

JDK 21 (2023년 LTS)

  • Virtual Threads (정식화): 기존 스레드 호환성과 생산성 크게 향상
  • Sequenced Collections (JEP 431): 순서 보장 컬렉션 인터페이스 (getFirst(), getLast() 등)
  • Record & Pattern Matching Enhancements: instanceof, switch 패턴 매칭 간결화
  • Unnamed Classes / Main Methods: void main(){} 만으로 클래스 파일 가능
  • Scoped Values, String Templates, Structured Concurrency, Key Encapsulation API 등: 언어와 보안·병렬성 강화

 

JDK 22 (2024년 비LTS)

  • Region Pinning for G1 GC: 지연시간 줄이는 GC 최적화
  • Unnamed Variables & Patterns, Launch Multi-File Programs: 코드 간결화와 구조 개선
  • String Templates (Second Preview), Stream Gatherers (Preview): 표현력 강화와 스트림 유연성 향상
  • Foreign Function API 정식화, Scoped Values 재프리뷰: 외부 호출과 병렬성 안전화 지속

 

 

 간략 한줄 정리

  • JDK 17(LTS): Java 언어의 구조적 안정성과 보안 강화
  • JDK 20(non-LTS): 병렬성, 메모리 연계, 성능 실험 기능 다수 포함
  • JDK 21(LTS): 성숙한 virtual threads, 패턴 매칭, 컬렉션 개선 등 실무 완성도 향상
  • JDK 22(non-LTS): 언어 편의·성능 강화 중심 실험 기능 확대

 

#JDK #Java #JDK21 #JDK22 #Java17 #VirtualThreads #PatternMatching #SequencedCollections #개발자소식 #IT뉴스