JDK 8

오라클이 java를 인수한 후 첫번째 LTS 출시 버전 유료버전(Oracle JDK)과 무료버전(Open JDK)이 있다.
주요 특징은 다음과 같다.
- LocalDateTime과 같은 새로운 날짜,시간 API를 제공
- Unsigned Integer 계산
- 람다식 제공
- Stream API제공
- Static Link JNI Library 제공
왜 JDK8인가?
발표된 LTS 버전 중 가장 오랜 Support을 보장한다.
- Oracle은 JDK 8이 현재까지 나온 버전 중 가장 오랜 기간 지원될 버전이라고 발표하였다 (2030까지 지원예정)
기존 서비스와 호환
- 국내에서 개발된 프로젝트는 대다수 Java 8로 개발되어 운영하고있는 상황
- 기존 프레임워크 또는 제품들과의 호환성을 유지하고 안정적으로 운영하기 위해 이후 연관된 프로젝트들 또한 JDK 8을 유지중이다.
JDK 17

Spring Boot 3.0 부터는 자바 17 이상을 지원한다. 이 이유로 17버전 사용이 증가하고 있다.
주요 특징은 다음과 같다.
- recode class 키워드 사용 가능
- 애플 M1 및 이후 프로세서 탑재 제품군에 대한 정식 지원
- random number 생성 API 추가
- String 여러줄 사용시 텍스트 블록 기능 사용 가능
- NumberFormat,DateTimeFormatter 기능 향상
- Stream.toList() 사용 가능
왜 JDK17인가?
만만찮게 긴 Support
- 현재까지 발표로는 8버전의 지원 기간이 17버전보다 상대적으로 조금 더 긴 게 사실이다.
- 그러나, 17버전의 지원 기간이 절대 짧다고 할 수는 없다.(-2029)
- 만료 전 다른 LTS버전 공개를 준비하고 있지 않을까 예측하고 있다.
신규 버전을 위한 대비
- 언젠가는 사용 중인 버전의 지원 종료일이 도래하여 다른 LTS 버전을 찾아야 할 것이다.
- 8버전에서 바로 최신 버전으로 전환하는 것 보다 17버전까지의 기술 적응을 완료한 상태에서 전환 시 마이그레이션으로 인한 영향이 최소화될 것이다.
Spring Boot 3.0부터는 JDK 17이상을 지원한다.