OpenJDK, Temurin, GraalVM... 어떤 Java를 설치해야 할까요?

Sunny·2025년 9월 2일

Oracle JDK는 유료인가요? Temurin, Corretto는 또 뭐죠? 더 이상 어떤 JDK를 선택할지 고민하지 마세요. 이 글에서 주요 Java 배포판의 모든 것을 명확히 설명하고, 흔히 발생하는 Java 환경 배포 오류 문제도 해결해 드립니다.

성실한 프로그래머가 새로운 프로젝트를 git clone하여 의욕적으로 시작하려는데, 현실에 부딪혀 바로 좌절합니다. "Unsupported major.minor version." 아, JDK 버전이 맞지 않네요. 그럼 버전을 바꾸면 되나요? 터미널에서는 차갑게 "JAVA_HOME not found"라는 메시지가 뜹니다.

순간적으로 혈압이 오르지 않았나요? Java를 작성하는 사람이라면 누구나 이런 망할 환경 설정 문제로 씨름해 본 적이 있을 겁니다. 특히 요즘에는 OpenJDK, Oracle JDK, Temurin, Corretto, GraalVM... 수많은 이름들이 눈앞에 펼쳐져 마치 인기 아이돌 그룹처럼 다 똑같아 보여서 누가 누군지 전혀 구별할 수 없습니다.

당황하지 마세요. 오늘 이 글 하나로 모든 것을 명확히 정리해 드리겠습니다.

각 JDK 버전의 차이점은 무엇인가요?

어떤 것을 선택할지 이해하려면, 먼저 각 JDK가 무엇인지 명확히 알아야 합니다.

모든 것의 근원: OpenJDK


무엇보다 먼저, 모든 것의 시작인 OpenJDK에 대해 이야기해 봅시다. OpenJDK는 Java SE의 공식 오픈 소스 참조 구현입니다. 이를 Java 세계의 베이스 주류, 즉 가장 고전적이고 순수한 기본 재료라고 생각할 수 있습니다. 나중에 언급할 수많은 JDK들은 기본적으로 OpenJDK의 소스 코드를 가져와 자체적으로 패키징하고 다른 보조 재료를 추가하여 만든 칵테일입니다. 가장 순수한 혈통을 가졌다는 것을 기억하세요. 이것이 핵심입니다.

두 거대 산맥: Oracle JDK vs Temurin

  • Oracle JDK: 이 배포판은 Java의 '아버지'인 Oracle 사의 제품으로, 한때는 기본 표준이었습니다. 하지만 지금은 다릅니다. Java 11부터는 사용자가 프로덕션 환경에서 LTS 버전을 사용하려면 구독료를 지불해야 합니다.

  • Temurin (Adoptium): 이것은 커뮤니티에서 내놓은 대체품으로 볼 수 있습니다. Eclipse Foundation이 주도하고 IBM, Red Hat 같은 거물들이 지원합니다. OpenJDK 소스 코드로 빌드되었으며, 엄격한 기술 호환성 키트(TCK) 테스트를 거쳐 품질과 호환성을 보장합니다. 무엇보다 완전히 무료이며 커뮤니티가 활발합니다. Oracle JDK와 기능은 같지만 상업적 라이선스 위험이 없는 것을 찾으신다면, 이 배포판을 선택하면 됩니다.

클라우드 벤더의 특별판: Amazon Corretto

이것은 아마존 자체에서 사용하는 OpenJDK 배포판으로, 무료이며 LTS를 지원합니다. 클라우드 환경에 최적화된 성능 개선 및 수정 사항이 포함되어 있다고 알려져 있습니다. AWS를 주로 사용하는 사용자에게는 특히 효과적일 수 있습니다. 이와 유사하게 알리바바의 Dragonwell과 마이크로소프트의 OpenJDK Build도 같은 맥락의 배포판입니다.

몇몇 전문 선수들: Azul Zulu, BellSoft Liberica

이 두 배포판도 업계에서 유명한 OpenJDK 배포판입니다. Azul의 JVM은 낮은 지연 시간과 대용량 메모리 시나리오에서 좋은 평판을 얻고 있으며, BellSoft의 Liberica는 임베디드 장치에서 뛰어난 지원을 제공합니다. 이들은 모두 무료 버전과 유료 지원이 필요한 상업용 버전을 가지고 있습니다.

신기술: GraalVM

마지막으로 이색적인 것을 이야기해 봅시다. GraalVM은 단순히 JDK가 아니라 고성능 다국어 가상 머신입니다. 가장 뛰어난 점은 Java 코드를 JVM 없이 직접 네이티브 실행 파일로 컴파일할 수 있다는 것입니다.
이로 인해 Java 애플리케이션은 C++처럼 빠르게 시작하고 Go처럼 적은 메모리를 사용합니다. 이는 마이크로서비스, 서버리스와 같이 1초 내에 시작해야 하는 시나리오에서 차원 파괴적인 효과를 가져옵니다. 물론 호환성 제약 사항도 일부 있으며, 사용하기 위한 진입 장벽이 다소 높아 '얼리어답터' 개발자에게 적합합니다.

요약표

한눈에 보기 쉽게, 군말 없이:

배포판유지 관리자라이선스 모델주요 특징추천 시나리오
OpenJDKOracle & 커뮤니티GPLv2 with CPEJava의 공식 참조 구현, 모든 배포판의 기반모든 시나리오의 기본
Oracle JDKOracleOracle No-Fee (개발/테스트 무료) / BCL (상업용 유료)공식 직접 지원, 안정적인 성능Oracle 상업적 지원이 필요하고 예산이 충분한 기업
TemurinEclipse Adoptium (IBM, Red Hat 등 지원)GPLv2 with CPE커뮤니티 주도, 엄격한 TCK 테스트, 고품질, 완전 무료대부분의 개발자와 기업의 첫 번째 선택
CorrettoAmazonGPLv2 with CPEAmazon 내부 사용, 클라우드에 최적화, LTS 지원, 무료AWS 클라우드 사용자, 클라우드 네이티브 애플리케이션
GraalVMOracle LabsGPLv2 with CPE (커뮤니티) / 상업용AOT 컴파일로 네이티브 이미지 생성, 고성능, 다국어 지원마이크로서비스, 서버리스, CLI 도구, 극한의 성능을 추구하는 시나리오

결국, 어떤 것을 선택해야 할까요?

그렇다면 결국 어떤 것을 선택해야 할까요? 사실, 생각은 아주 간단합니다.

  • 회사가 자금력이 있고, 프로젝트가 중요하며, 상업적 수준의 지원이 필요하다면? Oracle JDK 또는 Azul의 상업용 버전을 고려해 보세요.
  • 마이크로서비스, 클라우드 네이티브를 사용하며 성능과 리소스 사용량에 극단적인 요구 사항이 있다면? 그렇다면 GraalVM을 반드시 시도해 봐야 합니다.
  • 그리고 대부분의 우리들, 즉 일반 개발자, 학생, 또는 오픈 소스를 지향하는 중소기업의 경우, 최선의 선택은 OpenJDK 또는 그 고품질 무료 빌드(예: Temurin, Corretto)입니다.

OpenJDK는 가장 좋은 호환성과 가장 큰 커뮤니티를 가진 JDK이며, 완전히 무료이고 어떤 벤더 종속성 위험도 없습니다. 현재 모든 주요 프레임워크와 도구들이 OpenJDK를 중심으로 돌아가고 있으니, 대세에 따르는 것이 가장 확실한 방법입니다.

선택은 쉽지만, Java 수동 배포는 정말 고통스럽습니다.

자, OpenJDK를 사용하기로 결정했습니다. 그다음은요? 그다음은 고통의 시작, Java 환경을 수동으로 배포하는 것입니다.
먼저 공식 웹사이트에서 한참을 뒤져서 수많은 버전 번호, 운영 체제, CPU 아키텍처(x86, ARM64) 조합 중에서 필요한 압축 파일을 찾습니다. 다운로드하여 구석진 곳에 압축을 풉니다.

가장 골치 아픈 것은 Java 환경 변수 설정입니다. .zshrc 또는 .bash_profile을 열고 조심스럽게 JAVA_HOME과 PATH를 추가합니다. 공백 하나 더, 콜론 하나 덜, 이 모든 것이 오후 내내 헛고생하게 만들 수 있습니다. 이것은 분명 Java 환경 배포 오류의 주요 원인입니다.

이것이 가장 비극적인 상황은 아닙니다. 가장 비극적인 상황은 손에 세 가지 프로젝트가 있을 때입니다. 하나는 Java 8을 사용해야 하고, 다른 하나는 Java 17을 사용해야 하며, 최신 프로젝트는 Java 25를 사용해야 합니다.
축하합니다! 이제 Java 다중 버전 관리의 악몽 난이도를 해금했습니다. 프로젝트를 전환할 때마다 환경 변수를 수정하고, 수정한 후에는 source 명령을 실행해야 합니다. 터미널을 너무 많이 열어두면 현재 어떤 버전이 활성화되어 있는지조차 잊어버리게 되어, 그야말로 정신 오염입니다.

더 쉬운 방법은 없을까요? 있습니다!

그렇다면 게으름뱅이의 만능 도구인 ServBay를 사용해 보세요.

ServBay는 개발자를 위해 특별히 설계된 로컬 통합 환경 도구입니다. Python, Go, PHP, Node.js만 관리할 수 있다고 생각하지 마세요. Java 관리 능력은 정말 세심합니다.

첫째, Java 설치가 한 번의 클릭으로 끝납니다.

ServBay는 주요 OpenJDK LTS 버전(8, 11, 17, 21 등)을 모두 내장하고 있습니다. 패널에서 원하는 버전을 클릭하기만 하면 되며, 직접 찾고, 다운로드하고, 압축을 풀 필요가 전혀 없습니다.

둘째, 다중 버전 전환은 더 이상 악몽이 아닙니다.

Java 다중 버전 관리가 더 이상 악몽이 아닌 이유는 ServBay가 이 문제를 해결했기 때문입니다. 여러 버전의 Java를 동시에 설치할 수 있으며, 이들은 서로 영향을 미치지 않습니다. 전역 기본 버전을 전환하고 싶다면? 패널에서 클릭 한 번, 또는 터미널에서 한 줄 명령어를 입력하면 끝납니다. 더 이상 .zshrc와 씨름할 필요가 없습니다.

마지막으로, 환경은 깨끗하고 관리는 편리합니다.

ServBay는 모든 서비스에 독립적인 샌드박스 환경을 제공하여 시스템이 어지럽혀지지 않습니다. 모든 서비스의 시작 및 중지는 한 곳에서 통합 관리되어 깔끔하고 정돈됩니다.

결론

결론적으로, 도구는 우리를 편안하게 해주기 위해 존재합니다. 우리는 프로그래머이며, 환경 설정에 시간을 낭비하는 대신 더 창의적인 일에 시간을 할애해야 합니다.

만약 당신도 이러한 번거로움에 지쳤다면, 진심으로 ServBay를 사용해 보시길 권합니다. 코드를 더 빨리 작성하게 해줄 뿐만 아니라, 코드를 작성하기 위한 준비 과정도 매우 편안하게 만들어 줄 것입니다.

profile
대충 썼어요, 그냥 보세요.

0개의 댓글