오라클 자바 라이선스 정책 변경 이슈

1. 자바 유료화?

지난 6월 오라클의 자바 SE 서브스크립션모델 발표 이후로 현재까지 자바 유료화에 대한 많은 논쟁이 있었다. 관련하여 IT관련 기사와 커뮤니티, 오라클 OTN 등을 검색하면서 알게 된 내용들을 정리하여 공유하고자 한다.

일단, 자바라는 언어는 GPL라이선스로 무료이다다만 오라클이 제공하는 자바 SE는 사용목적에 따라 달라진다. 일반적인 목적의 컴퓨팅에선 무료이나 상업용, 업무용등 상업 목적인 경우는 별도의 라이선스가 필요하다. 또한 내장 장치에 JRE를 사용하거나 상용 기능을 사용 하려면 Oracle로부터 라이센스 비용이 필요하다.

그렇다면 상용기능은 어떤 것이 있는지 살펴보자

Java SE Advanced Java SE Suite에는 다음과 같은 상용기능이 포함되어 있다.

 Java Flight Recorder

 Java Flight Recorder (JFR)는 실행중인 Java 응용 프로그램에 대한 데이터를 수집, 진단 및 프로파일링하기 위한 도구이다.

내부 JVM 후크(hook)를 사용하여 동작할 수 있도록 설계되었다. Flight Recorder가 캡처한 이벤트는 메모리 할당, 쓰레드 상태 변경, IO 동작, CPU 동작을 포함한다.

 Java Mission Control

 JMC는 효율적이고 상세한 데이터 분석을 가능하게 해주는 고급 도구 모음으로 고급 Java 모니터링 및 관리 기능을 제공한다. JMC는 코드 성능, 메모리 및 대기 시간과 같은 일반적인 분석 영역에 대한 섹션을 제공한다.

 Advanced Management Console

 엔터프라이즈에서 사용되는 Java 응용 프로그램 및 Java Runtime Environment 버전을 관리하는 시스템 관리자를 위한 기능.

 Java SE Enterprise Installer

 Microsoft Windows Installer (MSI) Enterprise JRE 설치 프로그램을 사용하여 Windows에서 Java Runtime Environment를 설치 및 설치 제거하는데 필요한 기능.

 Java Usage Tracker

 Java Usage Tracker Oracle Java SE Advanced Oracle Java SE Suite Java Runtime Environment (JRE)가 시스템에서 어떻게 사용되고 있는지를 추적한다

다음으로 보다 확실한 오라클의 공지내용을 확인하기 위해 Oracle Java SE 8을 설치해 보았다.

그러면 아래 그림과 같은 안내 문구가 나온다.

링크된 추가정보를 클릭해보니 ( https://www.java.com/ko/download/release_notice.jsp )

“Oracle Java SE 8에 대한 공용 업데이트는 최소한 2020년 말일까지 개인용으로 계속 사용할 수 있습니다. 2019 1월 이후 릴리스되는 Oracle Java SE 8에 대한 공용 업데이트의 경우 상용 라이센스 없이는 업무용, 상업용 또는 운용용으로 사용할 수 없습니다.” 라고 명시돼 있다.


이상으로 오라클 자바의 유.무료사용에 대한 기준들을 살펴 보았다.

다음으로는 자바 SE 서브스크립션의 혜택, 비용, 지원정책 등에 대해서 살펴보자.


2. 자바 SE 서브스크립션

혜택

기존에 제공되던 상용 제품, Java SE Advanced, Java SE Advanced Desktop Java SE Suite 등이 Java SE 서브스크립션 모델로 변경되었다. 그리고 기존 영구 라이선스는 구매 시 기술지원 및 유지보수 옵션을 연단위로 별도 구매했지만, 자바 SE 서브스크립션은 라이선스, 프로그램 업데이트 및 기술지원 등의 혜택이 모두 포함돼 있다.

자바 SE 서브스크립션의 혜택 범위는 다음과 같다.

l  클라우드, 서버 및 데스크톱 배포에 대한 Oracle Java SE 라이센스 및 지원

l  성능, 안정성 및 보안 업데이트에 대한 지원

l  공개 업데이트가 끝난 일부 자바 SE 버전 지원

l  오라클 자바 SE8 7 엔터프라이즈 관리 모니터링 및 배포 기능

l  마이 오라클 서포트를 통한 24시간 지원

l  공개적으로 사용 가능한 릴리스에 포함되기 전에 치명적인 버그 수정에 대한 지원

비용

서브스크립션 모델은 자바 SE 서브스크립션과 자바 SE 데스크톱 서브스크립션으로 나뉘며 서브스크립션 모델 이용 가격은 자바 SE 서브스크립션의 경우 100개 미만 프로세서당 월 25달러이며, 데스크톱 가격은 1000명 미만 사용자당 월 2.5달러에서 시작한다. 구매 볼륨별 할인이 적용되며, 1·2·3년 단위로 구매할 수 있다.

예를 들어보자. JAVA SE SUBSCRIPTION PRICING 인 경우 Processor 기준이다.

오라클에는 Oracle Processor Core Factor Table 을 기준으로 라이센싱 인수가 붙는다. SPARC T3 processor 라면 0.25 를 곱해줘야 한다. 6 core 라면 ( 0.25 * 6 = 1.5 )이므로 2개의 프로세서 라이선스가 필요하다. 또 다른 예를 들면 10개의 코어가 설치된 Oracle Processor Core Factor Table 에 명시되지 않은 하드웨어 플랫폼용 멀티코어서버에는 10개의 프로세서 라이선스가 필요한 것이다.

아래는 오라클 홈페이지에 있는  가격표이다.


Java SE Desktop Subscription Pricing

Volume

 Subscription Metric

 Monthly Subscription Price

 1-999

 Named User Plus

 $2.50

 1,000-2,999

 Named User Plus

 $2.00

 3,000-9,999

 Named User Plus

 $1.75

 10,000-19,999

 Named User Plus

 $1.50

 20,000-49,999

 Named User Plus

 $1.25

 50,000+

 Contact for details

 


Java SE Subscription Pricing

Volume

 Subscription Metric

 Monthly Subscription Price

 1-99

 Processor

 $25.00

 100-249

 Processor

 $23.75

 250-499

 Processor

 $22.50

 500-999

 Processor

 $20.00

 1,000-2,999

 Processor

 $17.50

 3,000-9,999

 Processor

 $15.00

 10,000-19,999

 Processor

 $12.50

 20,000+

 Contact for details

 


구독한 라이센스 기간이 종료되면?

사용자는 사용 권리를 잃어버린다. 라이센스를 갱신하거나 다른 무료 OpenJDK 바이너리로 전환해야 한다.


자바를 무료로 사용하고 싶다면?

자바 SE 라이선스를 구매하지 않을 경우 오픈소스 기반의 OpenJDK를 활용하면 자바를 무료로 이용할 수 있다. 자바11 이상부터 오라클 JDK는 유상으로만 공개되며, 대신 자바11에서 오라클 JDK와 동일한 기능을 갖춘 오픈소스 기반 오픈JDK 바이너리가 무료로 제공될 예정이다.


JDK 업데이트 및 지원 정책

JDK 버전업은 메이저 버전업과 마이너 버전업으로 구성된다. 메이저 버전업이 진행되면 이전 버전에 대한 마이너 버전업은 중단된다. 메이저 버전업의 주기는 6개월로 JDK 기능이 추가 및 변경된다. 마이너 버전업은 버그 수정 및 보안 패치만 적용된다. 기술지원 정책은 각 JDK별로 다르게 적용된다. 9월 등장할 자바11부터 오라클 JDK 3년마다 장기지원(LTS)에 대응한 메이저 버전이 등장할 예정이다. 유료 사용자는 최대 8년동안 LTS 업데이트를 할 수 있다


Java SE 공개 업데이트

해제 

 조지아 협약날짜

공개업데이트 

알림의 끝 

 상용 사용자 

최종 업데이트

 개인 사용자 

최종 공개 업데이트

 7

 2011 7

 2014 3

 2015 4

 8

 2014 3

 2017 9

 2019 1  ****

 2020 12  ****

 9(비 LTS)

 2017 9

 2017 9

 2018 3

 10(18.3 ^ ) ( LTS)

 2018 3

 2018 3

 2018 9

 11이상

 더 이상 적용 할 수  없음


Oracle Java SE 지원 로드맵 

해제 

 조지아 협약날짜

프리미엄 지원

 연장 지원

 지속적인 지원

 6

 2006 12

 2015 12

 2018 12

 무기한

 7

 2011 7

 2019 7

 2022 7

 무기한

 8

 2014 3

 2022 3

 2025 3

 무기한

 9 ( LTS)

 2017 9

 2018 3

 사용 불가

 무기한

 10 (18.3 ^ ) ( LTS)

 2018 3

 2018 9

 사용 불가

 무기한

 11 (18.9 ^ LTS)

 2018 9 ***

 2023 9

 2026 9

 무기한

 12 (19.3 ^  LTS)

 2019 3 ***

 2019 9

 사용 불가

 무기한


3. 무료 사용을 위한 OpenJDK

JDK JVM을 제공하는 OpenJDKGPL v2 with the Classpath Exception 라이센스로 무료이다. 자바 스펙을 명시한 JSR 336, JSR 337를 빠짐없이 완전히 구현한 구현체이다.

OpenJDK 운영 주체인 오라클 또한 OpenJDK를 기반으로 자사의 부가적인 기능을 추가한 Oracle JDK를 제작하여 배포한다. 또한 오라클은 OpenJDK를 오라클 JDK와 기능 측면에서 같은 수준으로 만들겠다는 계획을 가지고 있으며 작업은 9월 완료 예정이라고 한다.

만약 오라클이 아닌 서드파티 업체가 OpenJDK를 기반으로 공인된 JDK를 제작하여 배포하려면 오라클의 유료 라이센스인 OCTLA(OpenJDK Community TCK License Agreement)에 가입해야 한다. 현재 전세계에 여러 업체가 가입되어 있다이 업체들이 OpenJDK 기반의 자체 빌드를 배포하려면 오라클의 엄격한 TCK 인증을 통과해야 한다.

OpenJDK   Windows 버전이 존재한다. 공식 사이트( http://jdk.java.net/ )에서 무료로 다운로드 가능하다. 또한, 특정 개인이나 단체가 OpenJDK 소스를 빌드하여 다운로드 할 수 있도록 링크를 제공한다.( https://adoptopenjdk.net ).

참고로 OpenJDK 사용시 JVM 위에서 수행되는 코드는 공개할 의무가 없다고 한다. JVM 자체는 GPL 2.0 라이선스를 따르지만, 외부 연동을 위한 API들은 Classpath Exception 라이선스가 적용되기 때문이다.


4. 다른 JDK 벤더

OpenJDK를 멀티 플랫폼 바이너리로 빌드하여 배포하는 대표적인 업체로는 Azul Systems가 있다. 개발 환경과 운영 환경 모두 Oracle JDK의 대안으로 좋은 평가를 받고 있다

Azul Systems(미국 소재의 Java Runtime 제작 전문 회사) Zulu라는 OpenJDK 기반 빌드에 부가 기능을 추가한 WindowsLinuxMac OS X 바이너리를 무료로 제공한다. 이 회사는 서버 부하에 최적화된 Zing이라는 JVM을 판매한다. 엔터프라이즈 시장에서 Oracle JDK의 대안으로는 현재 독보적 위치에 있다.

Zulu 의 라이센스 정책은 크게 두가지로 나뉘는데, 개인이나 기업 모두 Zulu 을 사용하는 것은 무료이고, 기술지원(Subscription)은 유료로 구입이 가능하다. 참고로 같은 회사에서 개발하여 판매되는 Zing OracleJDK 와 마찬가지로 상용으로만 판매된다.

참고로 Zing 가격은 1-10 수량인 경우 프리미엄 지원 포함한 연간 구독 가격이 서버( physical or virtual ) $3,500 USD 이며 Zulu Enterprise 가격은 아래와 같다.

 Max # of Supported Systems

 Price/Year (Standard Support)

 Price/Year (Premium Support)

 25

 $13,200

 Not available

 100

 $31,600

 $37,900

 1000

 $94,900

 $113,900

 Unlimited

 $284,600

 $341,500

Zulu 이외에도 현재 사용 가능한 JVM 의 수는 훨씬 다양하다.

( https://en.wikipedia.org/wiki/List_of_Java_virtual_machines )


5. 오라클 자바 유료화에 대한 대응

먼저 유료화 대상이 될 수 있는 시스템의 규모 파악부터 필요해 보인다.

상용기능을 쓰고 있는지 유료화 대상 버전인지를 구분하고 오라클의 지원을 받기 원한다면 오라클 JAVA SE Subscription 에 따른 예산을 책정 해야 할 것이다. 만약 무료 OpenJDK를 사용하려면 기존 솔루션이나 서비스 등이 정상 작동하며 호환이 되는지 확인하는 과정이 필요하겠다.

또 다른 대안으로는 Azul Systems 의 무료 JDKZulu를 사용하거나 유료이지만 평가가 좋은 Zing이라는 JVM을 사용하는 것도 고려해야 할 대상이다.

참고로 표준프레임워크 포털에 게시된 답변에도 OpenJDK에 대한 언급이 있다.

표준프레임워크 최신 버전인 3.7 OpenJDK와의 호환성 제공 하고 있으며 표준프레임워크 최신 버전인 3.7의 사용을 권장한다고 답하고 있다.


6. 맺음

설마 설마 했던 오라클 JDK 유료화가 라이선스 모델 변경으로 가시화 됐다.

개인 사용자는 상관없지만 기업들을 상대하는 개발자 혹은 개발업체 입장에서는 우려가 되는게 사실이다.

OpenJDK는 오라클 JDK와 상호 호환된다고는 하나 기존 자바로 된 솔루션들에 대한 OpenJDK 환경에서의 확인이 필요 할 듯 하다.


참고사이트

https://www.oracle.com/java/java-se-subscription.html

https://docs.oracle.com/javacomponents/index.html

https://www.java.com/ko/download/release_notice.jsp

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

http://www.oracle.com/technetwork/java/javase/overview/index.html

http://www.oracle.com/technetwork/java/javase/eol-135779.html

http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf?ssSourceSiteId=otnen

http://okjsp.pe.kr:8080/article/490213

https://www.azul.com/products/pricing/



New Multi-Channel Dynamic CMS