유일한 상수는 변화라는 말이 있는데, 이는 오라클 자바의 라이선스를 보면 명확하게 알 수 있다. 2018년부터 새로운 OpenJDK 릴리스 주기와 장기 지원(Long-Term Support, LTS) 버전이 도입되면서 라이선스 조건과 가격 모두에 상당한 변화가 있었고, 이는 자바를 사용하는 기업에 영향을 미쳤다.
우선, OTNLA이 도입됐다. 이전에는 모든 사용자가 정기 업데이트 형태의 유지보수를 포함해 자바 플랫폼은 무료라고 생각했다. 엄밀히 말하면, 이전에도 사용 분야 제한으로 인해 임베디드 또는 일회용 애플리케이션에 자바를 사용하는 경우 라이선스 비용을 지불해야 했다.
OTNLA는 훨씬 더 제한적이다. 개인 용도(예를 들어, 마인크래프트 플레이), 개발, 테스트, 오라클 승인 애플리케이션 또는 오라클 클라우드에서 오라클 JDK를 사용하는 경우가 아니라면, 자바 SE 구독을 구매해야 한다. OTNLA는 오라클 JDK 8 업데이트 211 이상과 오라클 JDK 11에 적용된다.
2021년 9월에 자바의 다음 LTS 버전인 JDK 17이 출시하면서 오라클은 라이선스 정책에 또 다른 중요한 개정 사항인 무료 이용 약관(No Fee Terms and Conditions, NFTC)을 도입했다. 표면적으로는 덜 제한적인 것처럼 보였고, 오라클 JDK를 사용할 수 있다고 명시했다:
“... 애플리케이션 개발, 테스트, 프로토타입 제작 및 데모, 개인 용도 또는 내부 비즈니스 운영을 위한 프로그램 실행의 목적으로 사용할 수 있다.”
"내부 비즈니스 운영"을 구성하는 것은 라이선스에 명시되어 있지 않다. 이에 따라 많은 사용자가 Java SE 구독을 구매하지 않고 애플리케이션의 보안과 안정성을 유지하기 위해 오라클 JDK 17 및 후속 업데이트를 사용하는 것을 선택했다.
그러나 NFTC에는 시간 제한이 있다. 오라클 JDK 라이선스 FAQ에 따르면 다음과 같다.
“JDK 17과 같은 LTS 릴리스는 후속 LTS 릴리스 이후 1년간 이 라이선스에 따라 업데이트를 받을 수 있다.”
JDK 17이 출시될 때 LTS 버전 주기가 이전의 3년이 아닌 2년으로 변경되어 모든 LTS 릴리스에 대해 3년의 무료 기간이 적용됐다.
다음 LTS 버전은 10개월 전인 2023년 9월에 릴리스된 JDK 21이다. 즉, 무료 기간은 이제 두 달도 채 남지 않은 2024년 9월에 종료됩니다. 이 시점이 되면 오라클 JDK 17의 라이선스는 OTNLA로 전환되며, 사용자는 애플리케이션을 위한 일련의 선택 사항에 마주하게 될 것이다:
1. OTNLA의 약관을 따르고 이후 업데이트에 대한 비용을 지불한다. 회사의 직원 수에 따라 가격이 책정되는 것 중 하나이다. 자바 SE 유니버설 글로벌 가격 목록에 따르면, 이는 "...귀사의 모든 정규직, 파트타임, 임시직 직원과 귀사의 내부 비즈니스 운영을 지원하는 대리인, 계약자, 아웃소싱업체 및 컨설턴트의 모든 정규직, 파트타임 직원 및 임시직 직원"을 대상으로 한다.
2. 다음 LTS 릴리스인 JDK 21로 이전한다. 이는 NFTC의 적용을 받으므로 자바 SE 유니버설 구독이 필요하지 않다. 간단한 선택처럼 보일 수 있지만, 이를 선택하기 전에 다음과 같은 몇 가지 세부 사항을 고려하는 것이 좋다.
- 자바는 그 수명 기간 동안 뛰어난 하위 호환성을 입증해 왔지만, JDK 21에서 애플리케이션이 예상대로 작동한다는 보장은 없다. JDK 9 이후 플랫폼에 새로운 기능이 추가됐을 뿐만 아니라 자주 사용되지 않는 오래된 기능도 일부 제거되었다. 애플리케이션의 연식과 복잡성에 따라 문제가 발생할 수 있다.
- JDK 21로 이전한 후 2년 이내에 JDK 25로 이전해야 OTNLA로 되돌아가는 JDK 21에 걸리지 않다. 그 후에는 2년마다 다음 LTS 릴리즈로 계속 이동해야 한다.
3. 대체 자바 배포로 이전한다. 자바의 강력한 다른 한 쪽은 OpenJDK 프로젝트이다. 라이선스 버전의 기술 호환성 키트(Technology Compatibility Kit, TCK)와 비교 테스트된 다양한 OpenJDK 배포판이 있다. 이는 자바 SE 사양의 일부이며 배포판이 오라클 자바 SE와 기능적으로 동일한지 확인하는 데 사용할 수 있다. OpenJDK 배포판은 여전히 다양한 수준의 기능, 지원 및 비용을 무료로 제공한다. 첫 번째 선택지보다 70% 정도 저렴하며, 적절한 업체를 선택하면 사용자가 최신 버전으로 이전해야 할 때까지 상당히 긴 시간 동안 사용할 수 있다.
사용자가 엔터프라이즈 애플리케이션에 의존하는 경우 오라클 JDK 17을 사용해 엔터프라이즈 애플리케이션을 실행하는 경우, 특히 기업 내 사용자의 이들 애플리케이션에 대한 의존도가 높은 경우, 고려해야 할 사항이 많다. 다행히도 다음 라이선스 변경 전에 그에 따라 계획을 세울 수 있는 시간이 아직 남아 있다.
*Simon Ritter는 자바 플랫폼 전문업체 애줄(Azul)의 CTO 겸 자바 챔피언이다.
editor@itworld.co.kr