Featured image of post 맥북에서 JDK 25 설치하기 feat. Amazon Corretto 25

맥북에서 JDK 25 설치하기 feat. Amazon Corretto 25

Homebrew로 Amazon Corretto 25를 macOS에 설치하는 완전 가이드. JAVA_HOME 동적 설정과 aarch64 아키텍처 확인까지, 직접 설치하면서 겪은 삽질 포인트를 빠짐없이 정리했습니다.

Direct Answer & TL;DR

  1. 설치 방법: brew install --cask corretto@25 한 줄이면 끝. Homebrew가 없다면 먼저 설치하세요. 나머지는 이 글에서.
  2. 왜 Corretto인가: 공짜인데 Amazon이 실제 프로덕션에서 수천 개 서비스에 직접 쓰는 JDK입니다. Oracle SE와 동일한 TCK 인증, 무료 LTS 지원까지. 돈 내고 Oracle JDK 쓸 이유가 있나요?
  3. JDK 25는 LTS: JDK 21 이후 차세대 장기 지원 버전. 가상 스레드 성숙화, AOT 개선, AI 친화적 API까지 탑재. 지금 배워두면 앞으로 몇 년은 먹고삽니다.

시작하며: “또 Java 버전 업데이트?”

솔직히 말하면, Java 버전을 올리는 일은 저에게 늘 미루고 싶은 일 1순위였습니다. “지금 잘 돌아가는데 뭐 하러…” 하는 그 심리. 아마 공감하시는 분들 많을 거라 생각합니다.

그런데 최근에 Spring Boot 3.x 기반 사이드 프로젝트를 정리하면서 JDK 버전을 올릴 기회가 생겼습니다. (관련 글: Spring Boot 2.7 → 4.0 마이그레이션 전략) 그때 JDK 21 LTS를 쓰다가 슬슬 JDK 25가 나왔다는 소식을 들었고, “LTS면 지금 한 번 갈아타는 게 낫겠다"는 생각에 설치해봤습니다.

배포 가이드치고 생각보다 삽질이 좀 있었는데요. 특히 JAVA_HOME 설정에서 경로를 하드코딩했다가 Homebrew 업데이트 후에 망가지는 경험을 해봐서, 이걸 동적으로 설정하는 방법을 꼭 공유하고 싶었습니다.

그래서 오늘은 Homebrew로 Amazon Corretto 25를 설치하는 전체 과정, 그리고 “왜 Corretto인가"에 대한 현실적인 이유들을 정리해봤습니다.


Amazon Corretto, 왜 써야 하는가?

설치 명령어 전에 잠깐. JDK를 배포하는 곳이 Oracle만 있는 게 아닌데, 왜 Amazon Corretto를 골랐느냐는 질문을 자주 받습니다.

Corretto의 핵심 장점

항목 내용
무료 LTS 지원 Oracle JDK의 유료 LTS와 달리, Corretto는 완전 무료로 장기 지원 제공
Amazon 내부 실전 검증 AWS 수천 개의 프로덕션 서비스에 직접 사용. 실험실 JDK가 아님
Java SE TCK 인증 공식 Java SE 표준을 통과한 완전한 호환 배포판
멀티플랫폼 지원 macOS, Linux, Windows, Docker 이미지까지
분기별 보안 패치 심각한 보안 이슈는 분기 외에도 별도 패치 제공
컨테이너 최적화 메모리 관리 및 기동 시간 최적화 – 클라우드 네이티브 환경에 적합
오픈소스 (OpenJDK 기반) 소스는 완전히 공개, 투명하게 관리됨

[!NOTE] 실제로 이런 분들께 특히 추천합니다:

  • 사이드 프로젝트나 스타트업에서 라이선스 비용 없이 안정적인 JDK를 원하는 개발자
  • AWS / ECS / Lambda 환경에 배포하는 경우 (Corretto는 Amazon Linux 기본 JDK)
  • Spring Boot, Quarkus 등 엔터프라이즈 프레임워크를 사용하는 백엔드 개발자

JDK 25, 이번엔 뭐가 달라졌냐면

JDK 25는 JDK 21 이후 차세대 LTS(Long-Term Support) 버전입니다. 주요 변경점을 요약하면:

  • 가상 스레드(Virtual Thread) 성숙화: 스레드 고정(Thread Pinning) 문제 개선, 동시성 처리 더 안정적
  • Structured Concurrency (정식화 진행 중): 여러 스레드의 작업을 하나의 단위로 처리 → 에러 핸들링, 취소 관리가 훨씬 깔끔
  • Scoped Values: 스레드 간 불변 데이터 공유 메커니즘. ThreadLocal보다 효율적
  • AOT 개선 (Project Leyden): 클래스 로딩과 링킹을 미리 처리. 서버 기동 시간 단축
  • JFR(JDK Flight Recorder) 강화: CPU 시간 프로파일링, cooperative 샘플링 등 성능 분석 도구 개선
  • AI 친화적 API: 패턴 매칭에서 Primitive 타입 지원, Vector API 등

[!TIP] JDK 25는 2025년 9월 16일 GA(정식 출시)됐습니다. Corretto 25도 Homebrew Cask에 올라와 있어 바로 설치해서 쓸 수 있습니다. LTS니까 지금 배워두면 수년간 유효합니다.


설치 전 준비: Homebrew 확인

Homebrew가 설치되어 있지 않다면 먼저 설치해야 합니다.

# Homebrew 설치 (이미 있다면 건너뛰세요)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

이미 있다면 버전만 확인해보세요:

brew --version

저는 이 단계에서 Homebrew가 오래되면 Cask 목록이 다를 수 있다는 걸 경험으로 알고 있어서, 항상 설치 전에 brew update를 습관처럼 돌립니다.


JDK 25 설치 단계별 가이드

Step 1. Homebrew 패키지 목록 최신화

brew update

이 과정이 1~2분 걸릴 수 있습니다. corretto@25 Cask가 새로 등록되었거나 업데이트됐을 수 있으니 꼭 먼저 해주세요. 건너뛰면 나중에 “cask를 못 찾겠다"는 에러를 보게 됩니다.

Step 2. Amazon Corretto 25 설치

brew install --cask corretto@25

설치가 완료되면 /Library/Java/JavaVirtualMachines/ 아래에 Corretto 25가 설치됩니다. macOS의 JVM 관리 표준 경로입니다.

[!NOTE] --cask 플래그를 반드시 붙여야 합니다. brew install corretto@25(비 cask)는 다른 패키지일 수 있습니다. Cask는 GUI 앱이나 JDK처럼 .pkg 방식으로 시스템에 설치하는 패키지에 사용합니다.

Step 3. JAVA_HOME 동적 설정 (핵심!)

이게 제가 가장 강조하고 싶은 부분입니다.

처음에 저는 이렇게 했습니다:

# ❌ 이렇게 하지 마세요 - 경로 하드코딩
export JAVA_HOME="/Library/Java/JavaVirtualMachines/amazon-corretto-25.jdk/Contents/Home"

이 방법의 문제는 Homebrew가 패치 버전을 업데이트하면 디렉터리 이름이 바뀌고, 이 설정이 조용히 깨집니다. 멘붕 타이밍이 딱 “새 프로젝트 빌드할 때"더라고요.

대신 macOS 내장 java_home 유틸리티를 사용하면 항상 올바른 경로를 동적으로 찾아줍니다:

# ✅ 올바른 방법 - 동적 경로 할당
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 25)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc

[!TIP] /usr/libexec/java_home -v 25는 시스템에 설치된 JDK 중 버전 25에 해당하는 올바른 홈 경로를 자동으로 찾아주는 macOS 전용 툴입니다. Homebrew로 업데이트해도 이 명령어가 항상 맞는 경로를 가리킵니다.

Step 4. 현재 터미널 세션에 즉시 적용

source ~/.zshrc

새 터미널을 열어도 적용되지만, 지금 당장 확인하려면 위 명령어로 바로 적용합니다.

Step 5. 설치 확인 및 아키텍처 검증

java -version

제 맥(M 시리즈, Apple Silicon)에서 확인한 출력입니다:

openjdk version "25.0.2" 2026-01-20 LTS
OpenJDK Runtime Environment Corretto-25.0.2.10.1 (build 25.0.2+10-LTS)
OpenJDK 64-Bit Server VM Corretto-25.0.2.10.1 (build 25.0.2+10-LTS, mixed mode, sharing)

aarch64 키워드가 안 보여서 잠깐 당황했는데, 이건 정상입니다. Apple Silicon 맥에서 실행 시 아키텍처를 좀 더 명시적으로 보고 싶다면:

java -XshowSettings:all -version 2>&1 | grep "os.arch"
# 출력: os.arch = aarch64

aarch64가 나온다면 ARM 네이티브로 잘 돌고 있다는 뜻입니다. x86_64 에뮬레이션 없이, 맥의 풀퍼포먼스로 돌아간다는 거죠.


여러 JDK 버전 관리 팁

개발 환경에서는 프로젝트마다 JDK 버전이 다를 수 있습니다. 이런 상황에서 유용한 커맨드들:

# 설치된 모든 JDK 버전 목록 확인
/usr/libexec/java_home -V

# 특정 버전으로 임시 전환 (현재 터미널 세션에서만)
export JAVA_HOME=$(/usr/libexec/java_home -v 21)

# 현재 활성 JAVA_HOME 확인
echo $JAVA_HOME

[!NOTE] 여러 JDK 버전을 자주 오가며 작업한다면 jenvSDKMAN!을 추가로 설치하는 것도 좋은 방법입니다. 개인적으로는 프로젝트가 많지 않아 JAVA_HOME 수동 전환으로도 충분히 사용하고 있습니다.


마치며: “이왕 할 거, 잘 하자”

설치 자체야 brew install --cask corretto@25 한 줄이지만, 환경변수 설정을 제대로 해두느냐 아니냐에 따라 나중에 삽질 여부가 갈립니다. 특히 경로 하드코딩은 지금 당장은 편해 보여도 패치 업데이트 한 번에 조용히 깨지는, 조용한 암살자 같은 존재입니다.

Amazon Corretto는 “공짜로 쓸 수 있는 그냥 JDK"가 아니라, Amazon이 실제 자사 서비스에 쓰면서 검증한 프로덕션 JDK입니다. 사이드 프로젝트든, 업무 환경이든, “왜 Corretto냐"고 물어보면 이렇게 말할 수 있습니다. “AWS가 믿고 쓰니까요.”

JDK 25는 LTS입니다. 지금 배워두면 한동안은 버전 걱정 없이 개발에 집중할 수 있습니다. 다음 LTS 나올 때 또 이런 글을 쓰고 있겠지만…


🔗 References

Experience · Understanding · Insight · 문의하기