그냥 멍하니 앉아 있기
오픈JDK (OpenJDK) 본문
오픈 JDK (OpenJDK)
OpenJDK(Open Java Development Kit)는 오라클(Oracle) JDK와 마찬가지로 TCK(Java Technology Certification Kit)를 통과한 동일한 자바(Java) 사양으로 구현된 프로그램이며, 오라클에서 관리한다.
다만 OpenJDK에는 Oracle JDK에서 제공하는 일부 기능(Enterprise, Font Renderer, Flight Recorder, Mission Control) 이 포함되지 않았다.
오픈JDK는GPL v2라이선스로 무료이다.
1) OpenJDK 버전 정보(갱신될 수 있음)
OpenJDK는 처음에는 자바 JDK 7 버전에만 기반이었으나 여러 프로젝트를 통해 다른 버전 기반의 JDK도 개발
OpenJDK 9 프로젝트 - JDK 9 기반.
OpenJDK 8 프로젝트 - JDK 8 기반. 2014년 3월 18일 출시.
OpenJDK 8u 프로젝트 - JDK 8 기반 및 기존 자바 8 릴리스 업데이트 생성.
OpenJDK 7u 프로젝트 - JDK 7 기반 및 기존 자바 7 릴리스 업데이트 생성.
OpenJDK 6 프로젝트 - JDK 7 기반, 자바 6의 오픈 소스 버전을 제공하기 위해 보강
2) OpenJDK와 오라클(Oracle) JDK 비교
JDK는 크게 2개 버전으로 나누어진다.
하나는 폐쇄적인 상업 코드(유료) 기반의 Oracle JDK이고, 하나는 오픈 소스 기반의 OpenJDK이다.
* 차이점
구분 |
Oracle JDK |
OpenJDK |
사용료 |
유료 |
무료 |
유료 플러그인 |
O |
X |
성능/안정성 | 좋음 | 좋음 (Java 7이후) |
둘 간의 큰 차이라면 유료화이며 유료 Oracle JDK는 OpenJDK에는 없는 재산권이 걸린 플러그인을 제공한다.
무료 OpenJDK에는 없는 대표적 기능은 글꼴 라이브러리와 Java Web Start가 있다.
사용자 웹 브라우저에서 Java 애플릿을 실행하려면 필요한 기능이다.
이 기능들은 서버 애플리케이션 개발에는 쓰이지 않는 기능이다.(변경될 수 있음)
제공되는 기능적 차이 외에 Java 6시대에는 분명히 OpenJDK가 Oracle JDK보다 성능이나 안정성이 크게 떨어졌으나 현재 Oracle JDK만이 제공하는 일부 라이브러리를 제외하고는 성능/안정성 차이가 없다.
3) OpenJDK의 운영 환경 적합도
TCK 인증을 받은 OpenJDK 기반의 빌드 버전을 사용하면 운영 환경에 아무런 문제가 없다.
OpenJDK의 운영 주체는 오라클이다.
오라클 또한 OpenJDK를 기반으로 자사의 부가적인 기능을 추가한 Oracle JDK를 제작하여 배포한다.
오라클이 아닌 서드파티 업체가 OpenJDK를 기반으로 공인된 JDK를 제작하여 배포하려면 오라클의 유료 라이센스인 OCTLA에 가입해야 한다.
OCTLA는 현재 전세계에 19개 업체가 가입되어 있다.
이 업체들이 OpenJDK 기반의 자체 빌드를 배포하려면 오라클의 엄격한 TCK 인증을 통과해야 한다.
수만가지의 테스트를 단 하나라도 통과하지 못하면 인증되지 않는다.
OpenJDK를 멀티 플랫폼 바이너리로 빌드하여 배포하는 대표적인 업체로는 Azul Systems가 있다.
개발 환경과 운영 환경 모두 Oracle JDK의 대안으로 좋은 평가를 받고 있다.
미국, 유럽의 주요 기업들이 Java 관련하여 오라클과 결별을 선언하고 있으며, 그 유일한 대안이 Azul systems 이기에 신속하게 파트너를 변경하고 있다.
4) OpenJDK 구현
OpenJDK의 명세는 JCP(오라클, IBM, SAP 등으로 구성)에 의해서 결정된다.
OpenJDK는 결정된 스펙(Java SE 7: JSR 336, Java SE 8: JSR 337)을 구현한 레퍼런스 소스 코드이다.
많은 상업 JVM 벤더들이 이 OpenJDK 레퍼런스 소스 코드를 기반으로 각자 JVM을 제작한다.
엄격한 테스트의 TCK 인증을 통과하면 OpenJDK를 완벽히 준수하는 구현체로 인정된다.
Oracle JDK 또한 Java SE 7부터 이 OpenJDK를 기반으로 앞서 설명한 추가 요소를 담아 배포한다.
트위터는 OpenJDK를 자사에 맞게 튜닝한 Twitter-JDK 위에서 자사의 서비스를 운영한다.
Azul Systems(미국 소재 Java Runtime 제작 전문 회사)는 Zulu라는 OpenJDK 기반 빌드에 부가 기능을 추가한 Windows, Linux, Mac OS X 바이너리를 무료로 제공한다.
이 회사는 서버 부하에 최적화된 Zing이라는 JVM을 판매한다.
엔터프라이즈 시장에서 Oracle JDK의 대안으로는 현재 독보적 위치에 있다.
테스트에서 Oracle JDK보다 성능이 좋았다는 사례도 있다.
실제로 고성능을 요구하는 Cassandra 노드들은 Zing 기반으로 운영된다.
'IT 이슈' 카테고리의 다른 글
OpenJDK 윈도우 버전 쉽게 설치하기 (1) | 2019.10.15 |
---|---|
JAVA JDK 유료화 정책 (0) | 2018.11.06 |