현재 회사에서는 open jdk를 사용하고 있습니다.
그런던 와중에 oracle jdk와 open jdk 차이가 갑자기 궁금해져 검색을 해보았고 Baeldung에 있는 내용을 간략이 정리하려고 합니다.
오라클은 매 3년 마다 출시하며 openJDK는 매 6개월마다 출시합니다.
Oracle은 릴리스에 대한 장기적인 지원을 제공합니다. 반면에 OpenJDK는 다음 버전이 릴리스 될 때까지만 릴리스에 대한 변경 사항을 지원합니다
오라클 JDK는 Oracle Binary Code License Agreement 산하에 라이센스를 두고 있으며 OpenJDK는 GNU General Public License version2에 라이센스를 두고 있습니다.
Oracle이 발표 한 바와 같이 2019 년 1 월 이후에 출시 된 Oracle Java SE 8에 대한 공개 업데이트는 상업용 라이선스없이 비즈니스, 상업용 또는 프로덕션 용도로 사용할 수 없습니다.
하지만 OpenJDK는 완전한 오픈소스이며 무료로 사용 가능합니다.
OracleJDK의 빌드 프로세스는 OpenJDK 빌드 프로세스에 기반하기 때문에 실질적인 기술 차이는 없습니다.
성능적인 측면을 보면 오라클이 응답성 및 JVM 성능면에서는 나은 모습을 보이고 있습니다. 왜냐하면 엔터프라이즈급 고객들에게 제공하기 위해 안정성에 조금 더 집중하기 때문입니다.
반대로 OpenJDK의 경우 좀 더 자주 드라이버를 릴리즈 합니다.
결과적으로 불안정한 문제에 직면할 수 있습니다.
커뮤니티 피드백에 따르면, OpenJDK 사용자들이 성능 이슈에 종종 직면하는 것을 알 수 있습니다.
만약 우리가 특징과 옵션을 비교해야 한다면 우리는 오라클 제품의 경우 Flight Recorder, java Mission Control, Application Class-Data Sharing 특징을 가지고 있는 것을 알 수 있으며 OpenJDK는 Font Renderer 특징을 가지고 있는 것을 알 수 있습니다.
또한, 오라클은 Garbage Collection 옵션을 더 가지고 있으며 더 나은 렌더링을 지원합니다.
OracleJDK의 경우 Oracel Corporation에 의해 완전히 개발되었지만 OpenJDK는 Oracle, OpenJDK, Java Community에 의해서 개발 되었습니다. 하지만, 탑 기업인 Red Hat, Azul Systems, Azul System, IBM, Apple 등 또한 OpenJDK 개발 프로젝트에 참여하였습니다.
Android Studio 또는 IntelliJ IDEA와 같은 도구에서 Java Development Kit를 사용하는 최고 기업의 선호도에 관해서는 Oracle JDK가 더 선호되었지만 둘 다 OpenJDK 기반 JetBrains 빌드로 전환했습니다.
반면에, 주요 리눅스 제공사인 (Fedora, Ubuntu, Red hat Enterprise Linux)는 OpenJDK를 기본 Java SE로 지원합니다.
Oracle은 Oracle 제품 또는 서비스의 일부로 Oracle JDK를 사용할 때 또는 다음과 같은 경우에 Oracle JDK를 사용할 때 오픈 소스 GNU General Public License v2, Classpath Exception (GPLv2 + CPE) 및 상업용 라이선스의 조합으로 과거 "BCL"라이선스를 변경합니다. 오픈 소스 소프트웨어는 환영하지 않습니다.
각 라이선스는 서로 다른 빌드를 가지지만 기능적으로는 약간의 외형 및 포장 차이만 있습니다.
또한, Flight Recorder, Java Mission Control, and Application Class-Data Sharing과 같은 상업용 특징들은 현재 OpenJDK에서도 가능합니다.
그러므로, OracleJDK와 OpenJDK 빌드는 본질적으로 java11부터 동일합니다.