Java Spec 은 공개되어 있고 OpenJDK 는 이를 구현한 오픈소스로 여기에 기반하는 다양한 Java JDK 구현물이 있다보니 어떤 종류의 JDK 를 사용해야 하는지 선택이 어렵습니다.
whichjdk.com 은 다양한 JDK 의 특성과 Release 기간등을 정리해 놓은 사이트로 JDK 선택시 참고할만 합니다.
TL;DR
Adoptium Eclipse Temurin - 강력 추천
이클립스 재단의 Adoptium 은 고품질의 Java 제품을 만들기 위한 프로젝트로 Adoptium Working Group 에는 MS, IBM ,RedHat 등 쟁쟁한 오픈소스 기업들이 참여하고 있습니다.
Adoptium 에서 개발하는 JDK 는 Eclipse Temurin 이라 부르는데 local, 운영, CI 환경 모두에 권장하는 제품입니다.
Termurin 은 고품질에 벤더 중립적이고 TCK 테스트도 거쳤습니다.
Cloud 환경은 CSP 제공 제품을
Cloud 에서 Java 를 사용한다면 CSP(Cloud Service Provider) 가 빌드하는 제품이 아무래도 클라우드에 최적화되었을테니 CSP 가 제공하는 걸 쓰는 게 좋습니다.
예로 AWS 를 쓴다면 Amazon 의 Corretto를 Azure 를 쓴다면 Microsoft Build of OpenJDK 를 쓰는 게 좋습니다.
Azul Systems JDK
검증된 Java 기술 전문 회사인 Azul Systems 이 만드는 JDK 로 Zulu 는 무료로 사용할 수 있는 제품으로 권장하는 제품입니다.
예산이 있거나 전문 기술 지원을 받고 싶다면 상용 제품인 Azul Zing 을 구매해서 사용하면 됩니다.
Oracle JDK
오라클 JDK 는 자주 라이센스가 바뀌는데 17 버전은 Oracle No-Fee Terms and Conditions (NFTC) 라이센스입니다.
이 라이센스는 Internal Business operations 는 무료로 사용할 수 있는데 문제는 이게 무엇인지 명확하게 정의되지 않았습니다.
즉 미래에 라이센스 위반이라고 법무법인에서 소장이 날라올 수도 있다는 거죠.
오라클 제품을 너무 사랑하거나 회사가 미워서 폭탄을 숨겨 놓고 싶거나 또는 지금 무슨 짓을 하고 있는지 정확히 알고 있다면 오라클 JDK 를 쓰세요.
Alibaba JDK
중국 정부랑 일한다면 쓰세요.
JDK 설치/관리
Local 이나 개발 서버라면 SDKMan 을 사용해서 JDK 를 관리하는 게 좋습니다.
JDK Release 주기
새로운 기능을 추가한 major 버전은 1년에 2번, 3월과 9월에 발표되며 추가로 분기별로 버그 픽스 업데이트도 있습니다.
3년마다 9월에 발표되는 버전은 LTS(Long-Term Support) 릴리스로 최소 3년간 지원합니다.
그래서 JDK 를 선택한다면 LTS 인 8, 11, 17 중에서 고르는 게 좋습니다.
JDK Version | Type | Release Date | Highlights | Recommendation |
---|
8 | LTS | 03/2014 | Lambdas | Last LTS version under previous release model. Free updates by Oracle ended, but still maintained by others. Upgrade to a 11 or 17 within the next months! |
9 | Feature | 09/2017 | Modules | New release model was introduced. EOL. Upgrade to 11 or 17 now! |
10 | Feature | 03/2018 | var | EOL. Upgrade to 11 or 17 now! |
11 | LTS | 09/2018 | New HTTP Client | Widely used LTS version. Plan upgrade to version 17 within the next months. |
12 | Feature | 03/2019 |
| EOL. Upgrade to 17 now! |
13 | Feature | 09/2019 |
| EOL. Upgrade to 17 now! |
14 | Feature | 03/2020 | Switch expressions | EOL. Upgrade to 17 now! |
15 | Feature | 09/2020 | Text blocks | EOL. Upgrade to 17 now! |
16 | Feature | 03/2021 | Records | EOL. Upgrade to 17 now! |
17 | LTS | 09/2021 | Sealed Classes | Current LTS version. |
같이 보기
Ref