2021년 9월에 공개된 LTS(Long-Term Support)버전으로, Oracle JDK 기준 2029년 9월까지 지원하는 JDK 11이후 출시된 LTS버전
메인프로젝트를 진행하기 앞서 기술스택을 다음과 같이 지정했다.
메인프로젝트를 시작한 이틀째 되던날 우리는 멘토링시간을 가졌다. 멘토님께서 기술스택 선정리스트와 선정한 이유를 물어보셨는데, 우리는 대답을 하지 못했다. 왜냐?
그냥 단순히, 코드스테이츠 학습과정에서 사용했던 기술스택이기 때문에 도입을 했었기 때문이다.
기존에 우리가 JDK 11버전을 사용해온 이유는 JDK 17 이전의 최신 LTS버전이 11버전이었기 때문이다. JDK 17은 LTS 11 버전 이후에 6개월 간격으로 JDK 버전이 발표된 12부터 16에 포함된 약 60여개의 JEP 기능들을 포함 및 17만의 새로운 14개의 기능을 탑재해서 출시됐다고 한다.
💡 JEP?
- JDK 개선 제안, JDK Enhancement Proposals
멘토링 이후 우리는 기술 스택을 다음과 같이 변경하려고 한다.
변경 이유와 선정 이유에 관해서는 앞으로 해당 버전에 대한 공부와 기존에 채택했었거나 채택함에 있어서 고려되었던 버전들과 비교해서 정리해보려고 한다.
위의 링크는 jetbrain
에서 제공한 Java
언어 사용에 대한 통계 데이터다.
위의 그림은 jetbrain에서 제공한 2022 Java언어 사용통계 데이터에서 Java 버전별 점유율을 나타낸 것이다.
2022년 기준으로 보면 가장 오랜기간 지원되어왔고 지원될 Java 8버전이 60%
로 여전히 가장 많이 사용되고 있음을 볼 수 있다.
Java 8은 2022년 3월부로 Java 8은 Premier Support에서 제외되었고 이 점과 관련하여, 2021년과 비교해서 점유율이 12% 감소한 것으로 보인다.
그러나 Java 8버전은 이후에 나온 LTS버전인 Java 11, Java 17 LTS버전보다도 더 오래 지원될 예정으로 2030 12월까지 지원될 예정이다. 이미 많은 사람들이 Java 8을 사용해왔기에 안정적이고 2030년 12월까지 현재 지원하는 LTS버전 중 가장 오래된 버전이지만 가장 오래 지원하기에 Java 8의 점유 포인트가 아직까지 가장 높은 것으로 예상된다.
💡 현재 지원중인 Java LTS 버전 별 지원종료 예정 기간.(Oracle JDK)
Java 8
: 2030년 12월Java 11
: 2026년 9월Java 17
: 2029년 9월
우리가 사용하려했던 Java 11버전이다. Java 11버전은 2018년 9월 25일 발표되어 앞서 언급했듯이 JDK 17 LTS이전 가장 최신버전의 LTS버전이었다. 2023년 9월까지 일반지원, 2026년 9월 연장지원이 종료될 예정이다.
그러면 JDK 11사용을 포기한 이유에 대해서 알아보자.
JDK 11버전은 아직까지 3년 후까지는 안정적으로 지원이 될 예정이지만 Java 8보다도 지원기간이 짧을 뿐더러 더 오래 안정적으로 지원되며 더 많은 기능이 포함된 17버전으로 업그레이드도 가능한 선택지를 남기고 있다.
또한, JDK 17버전으로 업그레이드를 결심하게 된 이유는 Springboot 2.7.13
버전을 사용 예정이지만 추후 입사하여 레거시 프로젝트를 최신 버전으로 업그레이드
하는 업무를 맡게 될 수도 있으므로 최신 버전인 Springboot 3.1.1버전으로 마이그레이션 할 예정에 있다.
이런 버전업 마이그레이션 과정이 우리에게 큰 경험치가 될 것으로 예상되어 우리는 마이그레이션을 해보기로 결심했다.
이런 버전업을 위해서 먼저 짚고 넘어 갈 점이 SpringBoot 3.x.x
버전 부터는 JDK 17버전부터 호환이 된다. Springboot버전 업 마이그레이션부터 JDK버전까지 업그레이드하려면 꽤 많은 시간과 노력이 들 것 같다.
우선적으로 비교적 최신 버전임에도 불구하고 이전 버전보다 서비스 지원기간이 짧다는 점에서 상당한 아쉬움이 있다.
우리가 새로 채택한 Java 17버전이다. Java 17버전은 2021년 9월부터 서비스 지원되어 2029년 9월까지 지원예정이므로 Java 11보다 더 오래 지원된다. 글을 작성하는 현재 2023년 7월의 시점에서 JDK 17버전부터 LTS 릴리스의 출시 주기가 3년에서 2년으로 변경됐다.
2년으로 LTS 릴리스 출시 주기가 변경되어 2023년 9월에 JDK 21 LTS 신규 버전이 출시될 예정이지만 지금부터 프로젝트를 도입해야하므로 17을 선택해서 한 후 추후에 Java 21 LTS 릴리스 노트가 나오면 추가 기능들에 대해서 정리해볼 수 있도록 하겠다.
11버전에서 설명드린 것 처럼 잔여 지원기간, 최신 플랫폼 호환 대비의 이유로 17을 선택하게 됐다.
💡 정리
- Java Support기간이 넉넉하게 남음
- 최신 플랫폼에 호환 가능