반응형
JDK 란
- JDK 는 Java Development Kit 의 줄임말로 Java 플랫폼에 사용되는 소프트웨어 개발 환경 이라고 이해 하면된다.
- Java Application 을 실행하기 위해서 JVM이 필요하고 컴파일 하기 위해서 JDK가 필요하다.
- JDK를 설치하면 JVM도 함께 설치된다.
- 독립형 JRE 보다 더 많은 도구와 Java 애플리케이션 개발에 필요한 다른 구성 요소가 포함되어 있다.
- JDK는 2개 버전으로 나뉜다. 폐쇄적인 상업 코드 기반의 Oracle JDK, 오픈 소스 기반의 OpenJDK
- Oracle이 2010년에 Sun Microsystems을 인수하여 Oracle JDK 가 됨
Oracle JDK과 Open JDK 논쟁
- LTS(Long term support) 릴리즈 : Java8 (2020년 12월 까지 무료 공개 업데이트), 11, 17
- Oracle JDK와 OpenJDK의 가장 큰 차이점은 재산권이 걸린 플러그인을 제공이다
- 재산권이 걸린 플러그인 : 글꼴, Java Web Start 등 서버개발에는 쓰지 않는 기능들 (Oracle JDK만 제공)
- Java의 무료 논쟁은 2011년 오라클이 소유권을 가지 면서 시작
- Java라는 프로그래밍 언어 자체는 GPL 무료 라이센스이다.
- 중요한 점은 Java로 작성한 프로그램을 컴파일(JDK)하고 실행(JVM)시키는데 있다.
- JDK와 JVM을 제공하는 OpenJDK는 GPL v2 with the Classpath Exception 라이센스 무료이다
Open JDK
- OpenJDK 는 Java SE Platform Edition 의 무료 오픈 소스 구현이다
- Sun Microsystems가 2006년에 시작된 개발 결과로 2007년에 처음 출시됨
- 중요한 점 : OpenJDK 는 7버전 이후 Java Standard Edition 의 공식 레퍼런스 구현이다.
- Oracle JDK와 마찬가지로 OpenJDK 프로젝트도 6개월마다 새로운 기능 릴리즈를 제공한다.
차이점
1. 배포 일정 (Release)
- Oracle은 3년마다 릴리즈 제공, 해당 릴리즈에 대한 장기적인 지원을 제공한다.
- OpenJDK는 6개월마다 릴리즈 제공, 신규 릴리즈 버전이전까지만 릴리즈에 대한 변경을 지원한다 → 계속 신규 버전으로 업데이트가 된다.
2. 라이센스 (License)
- OpenJDK 는 완전히 오픈소스이며 자유롭게 사용 가능하다.
- OracleJDK는 라이센스 비용이 발생, 2019년 1월 이후 출시 된 Oracle Java SE 8의 공개 업데이트부터 상용 라이센스 없이 비즈니스, 상업용 또는 생산 용도로 사용할 수 없다.
3. 성능 (Performance)
- Java 6 시대에 성능 (응답성 및 JVM 성능)에서는 Oracle JDK 가 압도적으로 좋았다.
- Oracle JDK → 기업 고객에게 주는 중요성 때문에 안정감에 중점을 둔다.
- OpenJDK 는 릴리즈를 더 자주 제공한다.
- 8버전 이후 일부 라이브러리를 제외하고 성능 차이가 없다.
- 동일한 기반을 사용하므로 실질적인 기술 차이는 없.
4. 기능(Features)
- Oracle에는 Flight Recorder, Java Misstion Control 및 Application Calss-Data sharing 기능이 있다.
- OpenJDK에는 Font Renderer기능이 있다.
- Oracle에는 더 많은 가비지 수집 옵션과 더 나은 렌더러가 있다.
- OpenJDK 는 지속적으로 개선되고 있다.
5. 개발 및 인기도
- Oracle JDK는 Oracle Corporation 에서 완전히 개발했다.
- Open JDK는 Oracle, OpenJDK, Java Community 에서 개발 + Red Hat, Azul Systems, IBM, Apple Inc, SAP AG와 같은 기업도 개발에 참여 중)
- 이전에는 Oracle JDK 가 더 선호 되었지만, 최근 Android Studio 또는 IntelliJ IDA 와 같은 도구에서 Java Development Key를 사용하는 상위 회사들이 OpenJDK 기반 JetBrains빌드로 전환했다. 주요 Linux 배포판(Fedora, Ubuntu, RedHat Enterprise Linux)은 Open JDK를 기본 Java SE 구현으로 제공한다.
참고 사이트
반응형
'Spring > Java,Spring' 카테고리의 다른 글
Session Storage Strategy (0) | 2023.09.20 |
---|---|
Lombok 이란? (0) | 2023.09.18 |
Java 8 표준 API의 함수형 인터페이스 (0) | 2023.09.17 |
System.nanoTime & System.currentTimeMillis (feat. Intstant.now()) (0) | 2023.09.16 |
[Spring Boot] Spring boot 버전에 맞는 Dependency 버전 찾기 (1) | 2021.10.11 |