본문으로 바로가기

OracleJDK 유료화에 따른 OpenJDK 검토

category 개념 2019. 1. 9. 08:50

안녕하세요 오랜만의 포스팅입니다.


OracleJDK가 유료화 되었죠(망할것들) 이에 대한 대안으로 OpenJDK사용이 많이 검토되고 있고 저 역시 OpenJDK기반으로 여러 오픈소스 기반 SW를 테스트하고 있으며 OpenJDK를 사용을 검토하면서 습득한 지식을 정리해 보았습니다.

 

OracleJDK 바이너리에 적용되던 BCL(Oracle Binary Code License)주1 라이센스가 2018년 7월 부로 "Java SE Subscription"라는 명칭의 "년 단위 유료 구독형 라이센스"로 발표되면서 서버 및 클라우드 인스턴스의 경우 프로세서 당 월 25달러, 데스크탑의 경우 사용자 당 월 2.5달러를 요구하며 이 라이센스는 2018년 9월 출시된 Oracle JDK 11 바이너리부터 적용되고 기존 Oracle JDK 8 바이너리의 경우 2019년 1월 이후 업데이트부터 라이센스 구독이 요구됩니다.


이에 따라 라이센스에서 자유로울 수 있는 OpenJDK가 주목받게 되어 OpenJDK가 운영환경에 적용 가능한지 확인하고자 합니다.

JCP(Java Community Process:오라클, IBM, SAP 등으로 구성)에 의해서 OpenJDK의 스펙(JDK 7: JSR 336, JDK 8: JSR 337, JDK 11:JSR 384 )이 결정되고 이를 구현한 레퍼런스 소스 코드가 OpenJDK이며 오라클을 포함한 많은 상업 JVM 벤더들이 이 OpenJDK 레퍼런스 소스 코드를 기반으로 부가적인 기능을 추가하여 각자의 JVM을 제작합니다.(OpenJDK의 운영 주체는 찝찝하게도 역시 오라클입니다. ㅠㅠ)

제작한 JVM을 배포하기 위해서는 OpenJDK 스펙을 구현한 JVM이 규격에 맞게 제대로 구현되었는지 검증하는 테스트 프로그램과 그 도구들로 이루어진 수만가지의 테스트를 수행하는 TCK(Technology Compatibility Kit)인증을 통과해야만 배포가 가능하고 TCK 인증을 통과했다는 것은 어느곳에 포팅되던지 일관성 있게 규격을 만족하고 동일한 동작함을 보장하는 것이며, 따라서 TCK를 통과한 OpenJDK와 OracleJDK는 동작 및 성능에서 동일함을 보장받게 되고 기존 OrcaleJDK를 OpenJDK로 대체하여도 아무런 문제가 없음이 보장되는 것입니다.

현재 OepnJDK는 현재 11.* 버전까지 구현되어 있으며 여러 JVM 벤더 중 OpenJDK를 멀티 플랫폼 바이너리로 빌드하여 배포하는 Azul Systems의 JVM이  개발 환경과 운영 환경 모두에서 Oracle JDK의 대안으로 좋은 평가를 받고 있습니다.
Azul Systems의 OpenJDK는 2019.01.04 현재 OpenJDK 6.0 ~ 11.0 버전을 Linux, Mac, Windows별로 제공하고 있으며 하둡과 다수의 에코시스템에서 아무런 문제 없이 동작하고 있음을 확인할 수 있었습니다.


참조 및 참고된 글:

오라클의 자바 유료화에 대해 좀더 자세하게 설명한 zdnet의 "오라클의 자바 유료화? 그 거짓과 진실"

저작권 관련 문의에 대한 저작권심의 조정위원회의 2018.05.08 답변 : Java 프로그램 배포시 JRE를 동봉할 경우 문의

Java 유료 논쟁, Oracle JDK와 OpenJDK의 차이 정리

바이라인네트워크 : 오라클 자바 SE 유료화에 대한 정보 총정리



주1:
BCL(Oracle Binary Code License) 라이센스는 OracleJDK 사용에 대해 일반적인 목적의 컴퓨팅(General Purpose Computing)에만 사용시 무료라고 밝히고 있으며 일반적인 목적의 컴퓨팅이란 데스크탑, 노트북, 스마트폰, 태플릿 등에서의 사용이 이에 해당한다고 오라클은 설명하고 있다.

유료와 무료가 혼재된 라이선스로 유료와 무료인 경우를 판단해야 하므로 혼선이 일어날 소지를 다분히 포함하고 있다.