Oracle은 2018 년 6 월 21일에 Java SE에 대한 유료 구독 모델을 발표했다. Java SE Subscription이 그것인데 특히 2019년 1월부터 판매를 시작하기 때문에 2018년 11월 현재 얼마남지 않은 시간과 잘 알려지지 않은 내용 때문에 더욱 관심이 높아지고 있는 듯 하다.

Java SE, Java EE

여기서 많이 등장하는 Java SE는 뭐고 Java EE는 뭘까? Java SE(Java Platform, Standard Edition)는 우리가 일반적으로 Java를 사용해서 PC용이나 서버 애플리케이션을 만드는 기반이 되는 기술이라고 생각하면 된다. Java SE는 JDK(Java Software Development Kit)를 이용해서 구현된다.

Java EE(Java Platform, Enterprise Edition)는 Java SE를 기반으로 구현되고 보통 앤터프라이즈 구현을 위해 사용된다. 기본적으로는 Java SE 위에 엔터프라이즈에서 사용하는 기능이 추가되어 있다고 생각하면 된다.

JVM, JRE, JDK

JVM은 Java 가상머신을 말한다. Java 바이너리 파일을 실행하는 환경을 말한다. 플랫폼 종속적이다. JRE는 Java 애플리케이션이 JVM위에서 실행하기 위한 여러가지 라이브러리나 환경들을 포함하고 있다. JDK에는 javac나 java같은 프로그램을 포함하고 있다. JVM < JRE < JDK 순서로 하위를 포함하고 있다.

오라클 JDK

Java 언어 자체는 오픈소스로 무료지만 이번에 논란이 되고 있는것은 Java 개발도구인 JDK이다. JDK도 기본적으로는 OpenJDK라는 오픈소스를 기본으로 하고 있지만 이것을 오라클에서 지원하는 오라클 JDK가 있는 것이다. 리눅스로 비교하자만 리눅스라는 오픈소스가 있지만 레드헷리눅스 같은 배포판이 있듯이 JDK의 배포판 중에 오라클 JDK가 있다고 생각하면된다. 이번에 구독 모델로 변경되는 것은 오라클 JDK에 해당하는 것이고 OpenJDK는 여전히 오픈소스로 운영된다.

업데이트

구독 모델로 유료화가 전환되면 기존에 오라클 JDK를 사용하고 있던 시스템은 무료로 계속 업데이트를 받을 수 없게된다. 하지만 최신버전은 계속 받을 수 있는데, 최신버전의 경우 무료 업데이트 주기는 6개월 뿐이다. 즉, 현재 최신버전으로 시스템을 설치한 후에는 같은 버전은 6개월동안만 가능하다는 말이다. 6개월 후에는 또다시 새로운 버전으로 업데이트해야한다.

같은 버전을 오랫동안 사용해야하는 LTS(Long Term Support) 버전도 마찬가지로 3년 마다 오라클에서 출시가되고 무료도 업데이트할 수 있는 주기는 동일하게 6개월이다. 유료 구독을 가입하면 LTS는 더 오랫동안 지원을 받을 수 있게된다. 현재 많은 시스템에서 쓰고있는 JDK8의 업데이트 종료일자가 2018년 12월까지라 업데이트를 받고자 한다면 유료 구독에 가입해야한다.

시스템 유지

그럼 계속 시스템에 최신버전을 적용하면서 사용하면 되지않을까? 아니다. 이미 안정화된 시스템의 업데이트를 계속 해야한다는 것은 엄청난 부담일 수 있다. 그리고 최신버전의 경우 안정성에 문제가 있을수도 있고 버전을 업데이트하면서 생기는 업데이트 문제를 6개월마다 감당하기에는 유비 비용이 너무 크다. 안정성이 중요한 시스템에서는 최신버전을 계속 유지할 수는 없을 것이다. 그렇다고 기존 버전에서 보안 취약점 등에 문제가 보고될수도 있기 때문에 업데이트를 미룰 수도 없다.

비용

오라클 JDK의 구독 비용을 1 프로세스당 월 $25 정도라 사실 부담이 되는 수준은 아니다. 하지만 이제 영구 라이선스를 판매하지 않는다는 점과 구독모델의 가격은 추후 변경될 수 있다는 점 등에서 적지않은 부담이 될것이다.

대체

그럼 오라클 JDK 말고는 대체가 없는 것일까? 그렇지 않다. 아래 대체 가능한 서비스 목록이다. 참고