Oracle 사이트에서 내려받은 Java SE JDK 8 을 사용중 이었습니다. JRE 업데이트 알림이 떠서 업데이트 하고 마지막 화면에서 JDK 8이 2019년 1월 부터 기업 사용자에게 업데이트가 유료화 된다는 내용이 있어서 Oracle JDK의 라이센스에 대해 알아봐야 겠다는 생각이 들었습니다. 먼저 알아본 결과부터 말하자면 명확히는 잘 모르겠다는 것입니다. 이것저것 찾아본 내용을 정리해서 적어봅니다.
기사들을 찾아보니 Java가 Sun에서 Oracle 로 넘어가고 나서 유료화에 대한 우려가 나오기 시작했고, 2016년말 영국의 한 언론이 오라클이 기업에 대해 자바 라이센스를 위반했다고 과금을 시작했다는 기사가 나와서 이슈가 되었었다고 합니다.
오라클 홈페이지에는 Java SE 가 무료라고 나와 있는데, 그럼 뭐가 유료일까요? 이에 대해서는 두 가지 이야기가 있는것 같습니다.
1. Java SE 는 무료이고, Java Embedded와 Java SE Advanced & Suite 는 유료이다.
2. Java SE Support가 유료이다.
여기저기 검색해 본 결과 위의 두가지 모두 유료가 맞는 것 같다는 생각이 듭니다. 문제는 1번 항목 Java SE 와 Java SE Advanced 를 어떻게 구별할지가 문제인것 같습니다.
사이트에 Java SE 와 Java SE Advanced & Suite 메뉴가 구분되어 있지만, 따라 들어가서 다운로드까지 가면 동일한 파일을 다운로드 받게 됩니다. 같은 배포판안에 유료 기능까지 포함되어 있어서 사용하지 않으면 무료, 사용하면 유료라는 건지 이해하기가 어렸습니다.
유료기능이라고 되어 있는 Oracle Java SE Advanced for Independent Software Vendors (ISVs) 에 대한 내용입니다.(http://www.oracle.com/us/technologies/java/javase-advanced-for-isvs-ds-2267669.pdf?ssSourceSiteId=otnen)
2번 항목은 Java SE Support 계약을 맺고 지원을 받으면 유료이고 아니면 무료라고 하는것 같습니다. 위의 영국 언론에서 기사화되었던 내용도 유상 라이선스를 맺고 사용중에 이것 초과해서 초과 사용료를 내라는 것이었다는 내용이라는 것 같습니다.(https://ko-kr.facebook.com/iamprogrammer.io/posts/1308844662470388)
Oracle 홈페이지에서 다운로드 받아서 사용하는 Java SE 에 유료 부분이 있는것은 확실한것 같습니다. Oracle JDK의 라이센스가 애매하기 때문에 아예 OpenJDK를 사용하는 것이 낫다고 하는 예기들이 많은것 같습니다. 안드로이드도 소송에서 이기긴 했지만 안드로이드 누가 버전부터는 OpenJDK를 사용한다고 합니다.
※ Oracle JDK와 OpenJDK 비교
- OpenJDK와 Oracle JDK는 현재 오라클에 의해서만 생성되고 유지 관리됩니다.
- OpenJDK와 Oracle JDK는 TCK (Java Technology Certification Kit)를 통과 한 동일한 Java 사양의 구현입니다.
- OpenJDK는 Oracle GPL v2에서 배포되며 Oracle JDK는 Oracle Binary Code License Agreement에 따라 라이센스가 부여됩니다.
- Oracle JDK의 빌드 프로세스는 OpenJDK 소스 코드를 기반으로합니다. 따라서 Oracle JDK와 OpenJDK간에 기술적인 차이는 없습니다. 기본 코드 외에도 Oracle JDK에는 오라클의 Java Plugin 및 Java WebStart 구현이 포함됩니다. 또한 그래픽 래스터 라이저 및 Rhino 와 같은 타사 폐쇄 소스 및 오픈 소스 구성 요소도 포함 됩니다. OpenJDK Font Renderer와 Oracle JDK Flight Recorder는 Oracle JDK와 OpenJDK의 두드러진 차이점입니다.
OpenJDK(http://openjdk.java.net/)의 윈도우용 바이너리는 제공 되고 있지 않은 것 같습니다. 윈도우를 기반으로 개발하려면 Oracle JDK(Java SE)를 사용해야 할것 같습니다. 뭔가 명확하지 않고 애매해지기만 한것 같은데, Java SE를 사용할때 유료 부분을 사용하지 않도록 주의해야 할 것 같습니다.
※ 나즈나님의 댓글로 다시 확인해본 결과 윈도우용 바이너리도 제공하고 있는것을 확인했습니다.
※ 추가
오라클 자바 SE 서브스크립션 모델이라는 라이센스가 생겼다고 합니다. 7월 부터 제공될 예정이라는데, 읽어보아도 정확한 내용을 잘 모르겠더군요. 일단 기존의 자바 서포트가 프로세스당 얼마씩 받던것을 월 과금으로 바뀌는것 같습니다. 기존 라이센스 방식도 계속 유지할지는 모르겠네요.
어드밴스드 자바 매니지먼트 콘솔같은 유료 부분은 사용하지 않고, 업데이트도 받지 않고, 지원도 받지 않으면 그냥 써도 되는지, 라이센스 안사면 아예 쓸수 없는건지 하는 부분은 잘 모르겠네요.
일단 Open JDK를 테스트해봐야 겠습니다.
'프로그래밍 > 자바' 카테고리의 다른 글
Java에서 assert 사용하기 (3) | 2018.05.04 |
---|---|
JUnit 4 기능 찾아보기 (1) | 2018.05.03 |
자바 MD5, SHA-256, AES256 암호화 하기 (30) | 2018.04.25 |
자바(Java) - static import 사용하기 (0) | 2018.04.23 |
Java 에서 난수(random number) 생성하기 (6) | 2018.04.20 |