비투엔 기술기고

[기고] JAVA 유료화 이슈와 대처방안

알 수 없는 사용자 2018. 11. 15. 13:42



■ 시작하며


JAVA는 전 세계에서 가장 많이 쓰이는 언어 중 하나이다. 

우리나라에서도 JAVA를 이용한 전자정부프레임워크를 제작하여, 공공부문 정보화 사업 수행 표준으로 사용하고 있을 정도로 가장 대중적인 언어이다. 

 

<2018년 프로그래밍 언어 순위 (출처 www.tiobe.com)>


이런 대중적인 언어 JAVA가 유료화로 전환된다는 소문에 여러 개발자 커뮤니티에서는 무료였던 자바를 이제 사용할 수 없게 된 것 아니냐며 우왕좌왕 하고 있다.  이에 본 기고에서는 JAVA 유료화에 대한 오해와 대처방안에 대해서 알아보고자 한다. 



■ JAVA는 무료다?


JAVA는 무료이면서 유료다. 오픈 소스로 운영되는 OpenJDK(http://openjdk.java.net/)는 무료로 사용할 수 있지만, 대부분의 사용자가 무료라고 인지하며 사용하고 있는 Oracle Java는 사실 OpenJDK에 상용 기능(Oracle Java SE Advanced, Oracle Java SE Advanced Desktop, Oracle Java SE Suite) 을 추가하여 배포하고 있는 것이다.  Oracle Java를 기업에서 상업용으로 사용하려면 라이선스를 구매해야 한다. 그 외에도 사용처에 따라 비용이 발생한다. 



<Oracle Java의 사용처에 관련 과금 대상>


사용처만 잘 구분한다면 과금을 피할 수 있을 것이라고 판단할 수도 있겠지만 위에서 언급한 상용 기능은 다운받아 설치한 Oracle Java SDK에 모두 포함 되어있기 때문에 실수로 상용 기능을 사용하게 된다면 Oracle의 라이선스 감사 대상이 될 수 있다. 



■ Oracle Java의 과금 정책 변경


2019년부터는 Oracle Java 라이선스의 1회성 구매는 제한되고 Subscriptions (구독 결제) 형태로 과금 방식이 변경된다. 현재 이슈가 되고 있는 JAVA 유료화 논란은 Oracle Java가 무료라고 생각하고 사용해 왔기 때문에 발생한 혼동이라고 볼 수 있을 것이다.


    

<OpenJDK와 Oracle Java>


국내에서는 전자정부 프레임워크를 시작으로 엄청나게 많은 시스템들이 JAVA를 사용하고 있다. Oracle Java의 라이선스를 구매하였거나, OpenJDK를 사용 하는 경우도 있지만 대부분이 Oracle Java를 무료로 사용하고 있을 것이다. Oracle은 2019년 1월 이후부터 다운로드 사이트에 Java SE 8 이후 버전의 업데이트를 공개하지 않을 예정이라고 밝혔다. 지금까지는 비용을 지불하지 않고도 보안 패치와 같은 서비스를 받을 수 있었지만, 앞으로는 비용의 지불 없이는 보안패치를 포함한 어떠한 지원 서비스도 받을 수 없다. 



■ 대처방안


Oracle Java의 라이선스 정책 변경 이슈 때문에 업무에 어떤 영향이 있을지, 어떤 대안이 있을지 고민이 많이 될 것이다. 


대처 방안은 다음과 같다. 


1. Oracle Subscription에 가입

- Oracle Subscription에 가입하면 보안 패치를 포함한 지원 서비스를 받을 수 있고, 상용 

       기능에 포함된 모니터링 툴을 이용할 수 있다.


2. OpenJDK 사용

- OpenJDK는 오픈소스(GPLV2 라이선스)이기 때문에 무료로 사용 가능 하다. 

- Windows용 배포판이 없어서 Windows에서 사용하기엔 불편하다.


3. Azul System (https://www.azul.com/)의 JDK 사용

- Oracle Java와 같이 OpenJDK 기반의 JDK 배포판을 무료로 제공(Windows용 포함) 하고 있다.


<Oracle Java의 무료 업데이트 종료일 카운트다운 중인 Azul System 홈페이지>


Oracle Java, Azul System 모두 OpenJDK를 기반으로 되어있기 때문에 어떤 선택을 해도 기술적으로는 큰 차이가 없다. Azul System 이외에도 OpenJDK의 배포판을 제공하는 곳이 있지만 아무 배포판 이나 사용하면 정상적인 기능 동작이 안될 수도 있다. TCK(Technology Compatibility Kit, SUN의 자바 기술을 구현한 VM이 규격에 맞게 제대로 구현되었는지 검증하는 테스트 프로그램과 도구)인증을 받은 배포판을 사용해야 문제 없이 사용할 수 있다.


JDK 변경 후에는 기 개발된 소스코드에 대해 전수검사를 수행해야 할 것이다. 기술적으로는 동일하다고는 하지만 문제를 사전에 점검해야 시스템 운영 시 발생하는 문제에 빠른 대처를 할 수 있을 것이다. 



■ 마치며


Oracle의 라이선스 정책이 변경되면서 JAVA의 유료화 이슈가 발생하여 많은 개발자들이 혼란을 겪고 있지만 OpenJDK라는 대안이 있기 때문에 정책 변경 이후에도 JAVA 사용량은 크게 달라지지는 않을 것으로 보인다. 전자정부프레임워크 측 에서는 OpenJDK를 사용할 것을 권장하고 있고, Google도 Android SDK 다음 버전 개발에 Oracle Java 대신 OpenJDK를 사용하기로 했다고 밝혔다. 각 업무 영역에서도 개발 완료된 솔루션이나, 운영중인 시스템의 JDK를 변경하고, 빠짐없는 테스트를 통해 서비스 중단이 생기지 않도록 노력해야 하겠다. 앞으로도 JAVA의 끝없는 발전을 기대하며 본 기고를 마친다.