인프런 커뮤니티 질문&답변

정호빈님의 프로필 이미지

작성한 질문수

토비의 스프링 6 - 이해와 원리

개발환경 준비

안녕하세요 jdk 질문드려요

해결된 질문

작성

·

220

0

안녕하세요! 토비님 같은 버전의 jdk에서도 zulu나 강의에서 예시로 다운받으신 liberica와 같이 회사가 다른데 혹시 그들만의 차이점이 있을까요?

답변 1

1

토비님의 프로필 이미지
토비
지식공유자

어려운 질문을 주셨네요.

예전에는 다들 JDK는 오라클 것만 썼었죠. 그런데 언제부턴가 오라클인 JDK를 유료화 한다고 했고, 그리고 난리가 났었죠. 자바 유료화라고.

그런데 그건 아니고, 자바는 꽤 오래 전부터 OpenJDK라는 이름의 오픈소스 프로젝트로 개발되어 왔습니다. 오라클은 그 프로젝트를 리딩하는 여러 업체와 개발팀 중의 하나였을 뿐이죠. 그런데 오라클 JDK를 사용한다는 것은 무엇인지, 그걸 또 유료화하겠다는 건 어떤 건지 혼란이 좀 있었습니다.

오픈소스는 여러 종류의 라이센스가 있지만 기본 전제는 소스 코드를 공개하고 그걸 사용하는 걸로 비용을 지불하지 않습니다. 자유(free)롭게 소스 코드를 보고 사용할 수 있는 소프트웨어 이면서 무료(free) 사용이 가능한 거죠.

오라클 JDK 같은 게 유료인 이유가 있습니다. 그건 일종의 배포판이라고 할 수 있습니다. 오픈소스 OpenJDK를 가져다가 각 OS에 맞게 빌드해서 설치하고 사용할 수 있게 해주는 거죠. 거기에 더해서 오라클만의 고유한 기능을 추가하거나, 커맨드라인 도구 혹은 UI가 있는 도구를 추가해주기도 합니다. 그리고 자바 버전이 오래 되어도 보안 이슈 등이 있을 때 이에 대한 업데이트 지원을 빠르게 해줍니다. 보통 대기업이나 중요한 서버에 적용된 자바 버전은 잘 바꾸지 않거든요. 그런데 중요한 보안 이슈가 발견됐을 때 그런 유료 JDK를 사용하면 꽤 오랜동안 기술 지원을 보장해줍니다. 대신 사용하는 만큼 비용을 지불해야 하죠.

그때부터 오픈소스 OpenJDK의 많은 배포판이 여러 회사와 단체를 통해서 만들어졌습니다. 공개 소스를 가져다가 자신만의 최적화된 방식으로 빌드하고, 자바 표준에는 없는 다양한 부가 기능을 넣기도 했죠. 자바를 JVM이 아니라 네이티브 컴파일을 해서 실행할 수 있게 해준다거나, 클라우드 환경에 맞게 최적하를 한다거나 하는 것들이죠. 그리고 java, javac 외의 여러 모니터링 툴 같은 것도 넣어줍니다.

이렇게 여러 배포판이 나왔고, 말씀하신 것을 포함해서 8-10종 정도가 지금 잘 알려져있습니다.

그럼 각각의 차이는 무엇인가, 하면 저도 모릅니다. 검색해봐도 그게 잘 안 나와요. 사실 기본 자바 언어와 JVM 표준에 따라서 만들어진 OpenJDK를 이용하기 때문에 거의 차이가 없습니다. 그래서 어떤 걸 써도 상관없습니다. 스프링으로 만든 애플리케이션이라면 역시 자바 표준에 충실한 기술을 이용하기 때문에 개발할 때나 운영 중에 배포판에 따라서 뭔가 달라지는 걸 경험해본 적이 없습니다.

하나 차이가 날 수 있는 것은 OpenJDK의 한 파트인 HotSpot이라는 VM 대신 IBM이 개발해왔고 지금은 이클립스 재단에서 만드는 것으로 알려진 OpenJ9으로 VM을 대체한 배포판이 있습니다. 이게 성능이나 메모리 사용량이 더 좋다고 하는데, 아직 대부분은 HotSpot이라는 자바를 처음 만든 SUN과 Oracle이 만든 VM의 기술이 결합된 것을 사용합니다.

그래서 보통 그냥 아무거나 골라서 씁니다. 뭔가 좋다라고 말하는 개발자들이 있지만 정말 좋은 건지, 얼마나 좋은 건지, 무슨 차이가 나는지를 잘 설명하는 걸 들어본 적은 없습니다. 그냥 막연하게 AWS에서는 아마존이 만든 Correto가 좋다 뭐 그런식인데, 뭐에 좋은지는 모르겠습니다. 저는 최근에 스프링 개발팀이 사용하는 Liberica를 씁니다. 스프링 개발팀 따라해보고 싶기도 했고, 그걸 만든 Bellsoft라는 회사가 JDK 개발에도 직접 참여하는 개발자들이 있고, 클라우드에 최적화된 Linux 플랫폼도 만들고 했다고 해서 뭔가 끌리는 게 있네요. 하지만 어떤 차이나 장점이 있는지를 따로 테스트 해보지는 못했습니다.

언젠가 기회가 되면 한번 비교해보는 작업을 해보고 싶기도 하네요.

정호빈님의 프로필 이미지
정호빈
질문자

답변 정말 감사합니다. 도움이 되었습니다! 이렇게 진지하게 답변해주셔서 다시 감사합니다!