자바는 여전히 공짜다 (Java is Still Free, Oct 2021)
https://medium.com/@javachampions/java-is-still-free-3-0-0-ocrt-2021-bca75c88d23b
에 나오는 "요약글"만을 번역한 내용입니다. 원활한 전달을 위해 일부 의역이 있을 수 있습니다.
Oracle JDK 배포와 지원 정책이 변화되며
- Oracle JDK
- Oracle Open JDK 빌드
- 다양한 벤더사의 Open JDK 빌드
를 사용하는 권리에 관한 상당한 불확실성이 있었다. 우리는 다양한 벤더사가 제공하는 무료 업데이트 모델 (보안 포함) 및 유료 지원 모델 (신규 및 기존) 을 이용할 수 있다. 이 문서에서 요약글 / 긴 글로 각각 나누어 살펴보자.
요약글
우리는 Oracle을 포함하여 다양한 벤더사가 제공하는 OpenJDK 빌드를 여전히 사용할 수 있고, 이는 GPLv2+CE 라이센스이기에 완전한 자유를 갖는다. 어떤 측면에서는 Oracle JDK가 여전히 무료로 비춰질 수 있는 것이다. 이 의미를 제대로 확인하기 위해서는 이 글의 다른 내용을 참고하길 바란다.
Java SE / OpenJDK / Oracle OpenJDK Builds / Oracle JDK
OpenJDK 커뮤니티는 Java SE 명세의 Reference Implementation (RI) 를 오픈소스 (GPLv2 + CE)로 만들고 유지한다. 이 Java SE 명세는 Java Community Process (JCP) 에 의해 관리되고, 각 배포 버전에 따른 포괄적인 Java Specification Request (JSR) 를 통해 정의된다.
그리고 세상에는 Java SE를 구현한 다양한 구현체들이 존재한다. (대부분은 Open JDK를 기반으로 하고 있다) Alibaba, Amazon, Azu, BellSoft, Eclipse Adoptium (AdoptOpenJDK의 후속 버전), IBM, MicroSoft, Red Hat, Oracle, SAP, 등등의 다양한 업체들이 이런 구현체들을 만들고 있다.
과거 Oracle JDK 8는 공개 업데이트 종료를 발표 했고, 따라서 2019년 4월부터 프로덕션 사용을 위해 업데이트를 하려면 지원 계약을 맺어야 했다. 위에서 언급했듯이, Oracle이 아닌 다른 업체가 만든 완전 무료 라이센스의 OpenJDK 8, 11, 17 버전은 여전히 존재한다. Oracle은 Oracle JDK 17의 zero-cost 바이너리 역시 제공하고 있다.
JDK를 얻기 위해선 다양한 선택지가 있다. 이 문서에서는 Java SE 8, 11, 17에 집중해서 다룬다.
Java SE 8에 머무르기
몇몇 사람들은 다양한 이유로 Java SE 8을 계속 사용하고 싶어한다.
- 2019년 4월 업데이트 이후, Oracle JDK 8은 상업 사용 제한에 들어갔다. Java SE 8 binary 를 업데이트 하기 위해서, 사용자들은 Oracle JDK 8을 위한 플랜을 구입하거나, 다른 벤더사의 Java SE 8 / OpenJDK 8 바이너리를 사용해야 한다.
- Oracle JDK 8을 사용하고 있지 않다면, 현재 Java SE 8 / OpenJDK 8 벤더사들은 업데이트를 제공하거나 유료 지원 플랜을 제공할 것이다.
무료 Java SE 8 - 무엇을 선택해야 하는가
Java SE 8의 보안을 포함한 무료 업데이트를 원한다면, TCK를 통과한 OpenJDK 배포판을 사용해라. (Amazon, Azu, BellSoft, Eclipse Adoptium, IBM, Microsoft, Red Hat, SAP 등)
Java SE 11 사용하기
몇몇 선택지가 있다. Oracle JDK가 Java SE 11을 어떻게 관리하고 업데이트하는지에 초점을 맞춰 주의깊게 읽어주길 바란다.
- Java SE 11에 관해, Oracle은 OpenJDK 기반의 Oracle JDK를 제공한다.
- Oracle OpenJDK 11 builds - GPLv2 + CE 라이센스
- Oracle JDK - 기본적으로 유료 라이센스 (개별 사용, 배포, 테스트, 프로토타이핑, 몇몇 특정 애플리케이션 유형에 대해서는 무료) 이고, GPLv2_CE를 사용하고 싶지 않거나, Oracle 제품 혹은 서비스와 함께 Oracle JDK를 사용하고 싶은 사람을 위한 것이다.
Oracle은 Oracle OpenJDK 빌드에 대해 두 분기에 걸쳐 업데이트를 제공하고, 6개월마다 다음 버전을 제공한다. (LTS를 포함하여)
꼭 Oracle에서 나온 제품이 아니더라도, 다양한 벤더사가 제공하는 Java SE / OpenJDK 바이너리 배포판을 사용할 수 있다. 이 벤더사들은 보안을 포함한 업데이트를 제공하며, LTS 버전에 대해서는 조금 더 긴 시간동안 지원한다.
무료 Java SE 11 - 무엇을 선택해야 하는가
Java SE 11의 보안을 포함한 무료 업데이트를 원한다면, TCK를 통과한 OpenJDK 배포판을 사용해라. (Amazon, Azu, BellSoft, Eclipse Adoptium, IBM, Microsoft, Red Hat, SAP 등)
Java SE 17 (LTS) 사용하기
몇몇 선택지가 있다. Oracle JDK가 Java SE 17을 어떻게 관리하고 업데이트하는지에 초점을 맞춰 주의깊게 읽어주길 바란다.
- Java SE 17에 관해, Oracle은 OpenJDK 기반의 Oracle JDK를 제공한다.
- Oracle OpenJDK builds - GPLv2 + CE 라이센스
- Oracle JDK - 3년 간은 NFTC 라이센스이고, 그 이후는 일반적인 상업 라이센스이다.
Oracle은 Oracle OpenJDK 빌드에 대해 두 분기에 걸쳐 업데이트를 제공하고, 6개월마다 다음 버전을 제공한다. (LTS를 포함하여)
꼭 Oracle에서 나온 제품이 아니더라도, 다양한 벤더사가 제공하는 Java SE / OpenJDK 바이너리 배포판을 사용할 수 있다. 이 벤더사들은 보안을 포함한 업데이트를 제공하며, LTS 버전에 대해서는 조금 더 긴 시간동안 지원한다.
무료 Java SE 17 - 무엇을 선택해야 하는가
Java SE 11의 보안을 포함한 무료 업데이트를 원한다면, TCK를 통과한 OpenJDK 배포판을 사용해라. (Amazon, Azu, BellSoft, Eclipse Adoptium, IBM, Microsoft, Red Hat, SAP 등)