자바(Java) & 인텔리제이

[자바] Oracle JDK와 Open JDK의 차이점과 Open JDK의 각 배포판 특징 및 차이점

아과노트 2023. 3. 24. 18:38
728x90
반응형

안녕하세요, 

아과노트입니다.

 

이번에 인텔리제이로 Spring Boot 개발하기에 앞서

개발환경을 꾸리는 도중에

기존에는 JDK는 오라클에서 다운로드하면 끝이었는데...

 

어느 순간 Oracle JDK와 Open JDK로 분리되었고, 

OpenJDK에는 많은 배포판(버전)이 있음을 확인했습니다.

인텔리제이에서는 OpenJDK를 기준으로 개발환경이 셋팅된다는 것도 확인하였습니다.

 

그래서 이참에 Oracle JDK와 Open JDK가 왜 분리되었는지와 차이는 무엇인지, 

Open JDK는 대표적으로 어떤 배포판이 있고, 특징과 차이점에 대해서 알아보도록 하겠습니다.

 

OpenJDK의 로고
OpenJDK의 로고

 

1. Oracle JDK와 Open JDK의 분리의 역사

 

1.1 Java의 첫 개발회사 썬마이크로시스템즈

썬 마이크로시스템즈

먼저 이것을 알기 위해서는 Java의 첫 개발회사였던 썬 마이크로시스템즈 부터 알아야 합니다.

네, 오라클이 처음부터 Java를 개발했던 것은 아니었고 처음에는 썬 마이크로시스템즈가 개발을 했습니다.

줄여서 썬(SUN)이라고 부르는데요, 중대형 서버군에서 하드웨어부터 소프트웨어까지 종합 솔루션을 보유했던 회사이었습니다.

그리고 들어보셨을 수도 있는데 대표적인 운영체제로 쏠라리스(Solaris)가 있고,  많이들 알고 계신 DB 중에 Mysql도 썬에서 인수해서 갖고 있었습니다.

 

이렇게 대단했던 회사이었지만 닷컴 버블 이후로 서버 시장이 타격을 입으면서 썬도 점점 쇠퇴의 길을 걷게 됩니다.

2002년부터 적자전환했고, 개발자의 구조조정과, 프로젝트 축소 등 계속해서 비용절감도 노력했고, 

소프트웨어 생태계의 열세를 해결하기 위해 Solaris를 오픈소스로 전환하고, 지원도 많이 했습니다.

그리고 Java도 2007년에 OpenJDK를 만들어서 오픈소스로 공개하였습니다.

 

하지만 흐름을 바꿀 수는 없었습니다. 

 

1.2 오라클에 인수된 Java 개발사(썬마이크로시스템즈)

그리고 결국 2010년에 오라클에 인수가 되었습니다.

오라클이 인수한 이후에도 Java의 언어와 플랫폼은 무료로 제공하였습니다.

하지만 일부 부분에서 유료화를 시도하게 됩니다.

 

Java SE를 상용적으로 사용하는 기업이나 개발자는 Oracle Java SE Subscription 라이선스를 구입해야 하며, Java SE 기술에 대한 업데이트 및 지원 서비스를 제공받을 수 있습니다. 

 

이렇게 JDK의 라이선스 및 개발 모델에 대한 우려가 생기게 되었고, 

마침 오라클에 인수되기 전에 썬이 JDK를 오픈프로젝트로 전환하여 Oracle JDK와 OpenJDK가 분리되어 발전되게 됩니다.

 

2. Oracle JDK와 OepnJDK의 차이점

 

2.1 라이센스 차이

두 버전의 가장 큰 차이는 라이센스에 있습니다.

 

상업적인 라이센스인 Oracle JDK, 

오픈소스 기반의 라이센스인 Open JDK

 

물론 그렇다고 해서 Oracle이 Open JDK에 적대적이거나 그런 것은 아닙니다.

오라클은 여전히 Open JDK의 프로젝트를 주도하고 있으니까요.

 

2.2 LTS 지원여부

각 JDK는 현재 6개월 주기로 업데이트가 이루어지고 있습니다.

이렇게 업데이트 주기가 빠르면 개발이나 운용 입장에서 부담이 되는데요..

그래서 LTS 버전을 찾게 됩니다.

여기서 차이점이 발생하는데 Oracle JDK의 경우 LTS 버전을 지원하지만, 

Open JDK는 LTS 지원 없이 6개월마다 업데이트를 진행합니다.

 

2.3 지원 플러그인 여부

Oracle JDK는 선마이크로시스템즈의 플러그인을 제공하지만, Open JDK는 없습니다.

 

2.4 성능여부

성능에서도 차이가 난다고 합니다. 당연히 상용라이센스인 Oracle JDK가 CPU사용량과 메모리 사용량이 적고, 응답시간도 빠르다고 합니다.

 

3. OpenJDK의 벤더의 등장과 각 벤더별 차이점

 

그리고 OpenJDK가 오픈소스로 발전하면서 다양한 벤더들이 나타나게 됩니다.

다양한 벤더들이 있는데 Docker에서도 지원하는 OpenJDK를 고려하면서 각 벤더의 차이점들을 정리해 보겠습니다.

 

3.1 Amazon Corretto

Amazon Corretto는 Amazon이 개발 및 배포하는 OpenJDK 배포판으로, Amazon Linux 2와 함께 사용하기 위해 설계되었습니다. 
장기 지원(LTS) 버전 및 최신 버전을 제공하며, 사용 가능한 모든 플랫폼에서 무료로 사용할 수 있습니다. 
또한 Amazon Corretto는 보안 업데이트 및 버그 수정을 포함하여 Oracle JDK와 동등한 기능을 제공합니다.

 

3.2 Eclipse Temurin

 

Eclipse Temurin은 Eclipse Foundation에서 개발하는 OpenJDK 배포판으로, 개발자 및 기업에서 사용하기 위해 설계되었습니다. 
Eclipse Temurin은 Oracle JDK와의 호환성을 보장하며, 최신 LTS 및 최신 버전을 지원합니다.
이 배포판은 기업용 성능, 안정성 및 보안 기능을 제공하며, 모든 플랫폼에서 무료로 사용할 수 있습니다.

 

3.3 IBM Java

 

IBM Java는 IBM에서 개발하고 배포하는 OpenJDK 배포판으로, IBM의 기업용 애플리케이션을 지원하기 위해 설계되었습니다. 
IBM Java는 최신 LTS 및 최신 버전을 제공하며, IBM의 고객 지원 및 서비스를 통해 추가 기능 및 서비스를 제공합니다.

 

3.4 SAP Machine

 

SAP Machine은 SAP에서 개발 및 배포하는 OpenJDK 배포판으로, SAP 애플리케이션을 지원하기 위해 설계되었습니다

 

4. 결론 

일반적으로 AWS를 고려해서 Amazon Corretto나

범용성을 고려해서 Eclipse Temurin을 선택하면 좋은 선택이 될 것 같습니다.

 

기업의 흥망성쇠에 따라서 Java도 참 많은 사연을 갖게 되고 많은 배포판을 갖게 되었습니다.

뭐가 이렇게 많아?!, 어쩌라고?!!라는 생각이 들기도 하지만...

 

Java에 대해 좀 더 이해하고 그래도 선택의 기쁨을 찾는 시간이 되었으면 좋겠습니다.

 

오늘 포스팅은 여기까지입니다.

오늘 하루도 고생하셨습니다.

728x90
반응형