코드 쉐어링/정리2018. 10. 18. 20:53

Oracle JDK 의 유료화에따른 OpenJDK 적용을 위해 헷갈리는 내용들을 정리


1. Oracle JDK 유료화

1) JDK 8 public update 종료 예정 : 2018.12 

2) JDK 8 public update 종료 이전까지의 버전은 무료로 사용할 수 있나?

(1) 이 부분은 아직 혼란스럽다. 어떤 글에서는 무료라고하고, 어떤 글에서는 불법이라고 한다.

(2) 다만 Oracle 이 유료화에 나선 이상, 언제든 손바닥 뒤집듯이 뒤집을 가능성이 있어 보인다.

(3) 따라서, 당장 급하게는 아니더라도 OpenJDK 기반으로 이전하는 것이 안전해 보인다.

3) Oracle Java SE Subscript (유료버전) 비용은?

(1) 1년 단위 Subscription / 월 과금

(2) Desktop : User당 $2.5 / month (사용자가 많은 경우 할인 정책 적용)

(3) Server / Cloud : Cpu core * core factor(oracle core factor table 참고) * $25 / month


2. Java, JVM, JDK, JRE

1) Java

(1) 프로그래밍 언어

(2) Java 자체는 GPL 라이센스로 무료

2) Java Virtual Machine

(1)  자바 가상 머신

(2) 자바 소스코드로부터 만들어지는 .class 파일들이 JVM 에서 수행된다. 

3) Java Development Kit

(1) 자바 개발 도구

(2) JRE + 개발을 위해 필요한 도구 (javac, java) 등을 포함한다.

4) Java Runtime Environment

(1) 자바 실행 환경

(2) JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다.

(3) JDK 가 없어도 JRE만 있으면 자바 프로그램은 수행 가능 (java 등 포함)


3. OpenJDK 와 Oracle JDK 의 관계

1) OpenJDK 명세는 JCP(Java Community Process) 에 의해서 결정된다.

2) JCP 는 Oracle, IBM, SAP 등으로 구성되며, Oracle 이 가장 많은 지분을 가지고 있다.

3) OpenJDK 자체는 Official Reference Implementation 이다. (GPL v2)

4) OpenJDK 를 가져다가 AdoptOpenJdk, Azul Systems, Oracle 등에서 JDK 를 만든다.

(1) JVM 은 OpenJDK에서 구현된 거의 그대로 이거나, 아주 마이너한 수정만 되는것 같다.

(2) 여기에 각 회사의 플러그인 또는 라이브러리들이 추가된다.

5) AdoptOpenJdk Foundation

(1) Sponsor 는 Azul systems, IBM, LJC, Microsoft Azure 등

(2) Oracle JDK 와 같이 OpenJDK 에 추가 기능 (윈도우용 installation 등 포함)을 붙여 AdoptOpenJdk 를 제공

6) Azul Systems

(1) Microsoft Azure 에 들어가는 JDK 구현을 담당한 회사

(2) Oracle JDK 를 가져다가 Zulu(TCK 인증 받음) 라는 JDK 를 제공 (무료) 하며 Enterprise 버전(성능이 좋다고..)은 유료로 판매한다.

(3) OpenJDK 에 보안 등의 문제가 있을경우 OpenJDK에 공헌한 후, OpenJDK를 가져다가 Zulu에 적용하는 방식이며, 아주 일부에 있어서 Zulu에 적용된 코드를 OpenJDK에 공헌하는 반대의 방식도 취한다.


4. 어떤 JDK를 사용할 것인가?

1) OpenJDK 는 보안의 문제 등이 있더라도 어떠한 지원이나 패치가 즉시 제공되지 않는다.

(1) 11.0 버전에 문제가 있더라도 11.0에 대한 패치가 나오지 않을 수 있고,  신 버전인 12.0 이 나올 수 있다.

2) 따라서, Oracle JDK, AdoptOpenJdk, Zulu 등에서 선택하여 사용해야 함

(1) Zulu 가 AdoptOpenJdk 의 주요 스폰서이고 TCK 인증을 받았고 보안 등의 문제에 대해 적절히 대처할 것으로 보임

(2) 혹시나, Zulu 를 담당하는 회사인 Azul systems 가 유료화를 진행한다면 그 때 AdoptOpenJdk로 바꿔도 둘 간의 스펙 차이가 거의 없기 때문에 (일반적으로 사용하는 기능면에서 볼때..) 문제는 거의 없을것으로 판단됨.


5. 기타

1) OpenJDK 를 써도 될까?

(1) 쓸 수는 있으나, Major 버전 이후에 보안 이슈등이 F/U 되지 않을 수 있다.

(2) Windows JDK 1.8 등이 지원되지 않는다는 말이 있으나, Github을 통해 모두 지원함

- https://openjdk.java.net/install/

- https://jdk.java.net/8/ (Early-Access Builds)

- https://github.com/ojdkbuild/ojdkbuild

(3) OpenJDK를 직접 쓰기보다 대응이 되는 AdoptOpenJDK 를 쓰는 것이 맞음



* 참조

1. Java SE Subscription Price List

- https://www.oracle.com/assets/java-se-subscription-pricelist-5028356.pdf

2. Oracle Processor Core Factor Table

- http://www.oracle.com/us/corporate/contracts/processor-core-factor-table-070634.pdf

3. Zulu 를 사용하는 이유

- https://www.reddit.com/r/java/comments/8jvv8e/what_would_be_the_reasons_to_use_the_zulu_build/

4. OpenJDK vs AdoptOpenJDK

- https://www.reddit.com/r/java/comments/9hd97k/openjdk_vs_adoptopenjdk/

5. Aoptopenjdk 와 oracle JDK 의 차이

- https://github.com/AdoptOpenJDK/openjdk-build/wiki/Differences-between-Adopt-OpenJDK-binaries-and-Oracle-JDK-Binaries

6. zulu vs OpenJDK

- https://support.azul.com/hc/en-us/community/posts/200966724-Zulu-vs-OpenJDK-

7. JVM, JRE, JDK 차이

- https://wikidocs.net/257

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

- http://jsonobject.tistory.com/395

9. 자바 유료화에 대한 질의를 오라클에...

- https://okky.kr/article/482664

10. Oracle JDK vs OpenJDK and Java JDK Development Process

- https://javapapers.com/java/oracle-jdk-vs-openjdk-and-java-jdk-development-process/

11. OpenJDK 적용시 고려해야 할 점

- https://www.holaxprogramming.com/2014/09/24/java-open-jdk/

12. Zulu (OpenJDK 8) 설치하기

- http://jsonobject.tistory.com/396

13. AdoptOpenJDK Java Compatibility Kit (JCK) Compliance

- https://adoptopenjdk.net/support.html

14. 자바 유료화 때문에 골치가 아프네요.. (Zulu 에 대한 글)

- https://okky.kr/article/478681

15. OpenJDK 벤더 별 지원현황

- http://www.opennaru.com/java/openjdk-oracle-redhat-ibm-azul/



Posted by 얼랄라