
Java 27 출시 정리 — 양자내성 암호화·G1 기본 전환·JEP 9개
Java 27이 JEP 9개와 함께 나왔다. TLS 1.3 하이브리드 키 교환으로 양자내성 암호화를 넓히고, G1을 모든 환경의 기본 GC로 못 박았다. 비 LTS 릴리스라 당장 갈아탈 일은 없지만, 2027년 3월 JDK 28에 올 Value Classes의 예고편이라는 점이 더 중요하다.
9월 15일, Oracle이 Java 27을 릴리스했다. JDK 25 이후 두 번째 비(非) LTS 릴리스고, 확정된 기능은 JEP 9개다.
그중 5개가 아직 프리뷰·인큐베이터 단계다. 이번 릴리스의 성격이 그 숫자에 그대로 들어있다 — 당장 쓸 것보다 앞으로 올 것을 미리 보여주는 판이다.

그래도 하나는 확실하게 못 박았다. 보안이다.
TLS 1.3에 하이브리드 키 교환이 들어왔다
JEP 527이 이번 릴리스의 중심이다. TLS 1.3(RFC 8446)에 하이브리드 키 교환을 붙이는 작업으로, IETF가 아직 초안 단계로 다듬고 있는 명세를 JDK 24에 들어간 JEP 496과 묶어 구현했다.
"하이브리드"라는 이름이 핵심이다. 기존 타원곡선 키 교환을 버리는 게 아니라, 양자내성 알고리즘과 둘 다 돌려서 결과를 합친다. 둘 중 하나가 깨져도 세션 키는 살아남는다. 검증 기간이 짧은 격자 기반 암호에 전부를 걸지는 않겠다는 현실적인 선택이다.
Oracle이 이걸 한 번에 넣은 것도 아니다. 몇 개 릴리스에 걸쳐 쌓아온 스택이 있다.
| JEP | 내용 | 들어간 버전 |
|---|---|---|
| JEP 496 | 격자 기반 키 캡슐화(ML-KEM) | JDK 24 |
| JEP 497 | 격자 기반 전자서명(ML-DSA) | JDK 24 |
| JEP 510 | 키 파생 함수(KDF) API | JDK 24 |
| JEP 527 | TLS 1.3 하이브리드 키 교환 | JDK 27 |
| JEP 542 | 암호 객체 PEM 인코딩 | JDK 28 확정 예정 |
왜 지금이냐고 물으면 답은 간단하다. 오늘 가로챈 트래픽을 나중에 푸는(harvest now, decrypt later) 공격 때문이다. 지금 오가는 TLS 세션이 10년 뒤 양자 컴퓨터로 풀린다면, 대응은 양자 컴퓨터가 나온 다음이 아니라 지금 해야 한다.
JEP 538(PEM 인코딩)은 세 번째 프리뷰다. 이번에 PEM 레코드 클래스가 일반 클래스로 재분류됐고, DEREncodable 인터페이스 이름이 BinaryEncodable로 바뀌었다. 프리뷰 단계에서 이름이 바뀌는 건 흔한 일이지만, 미리 손대둔 코드가 있다면 확인이 필요하다.
G1이 모든 환경의 기본 GC가 됐다
JEP 523. 그동안 G1은 "충분한 코어와 메모리가 있는 환경"에서만 기본값이었고, 작은 컨테이너에서는 Serial GC가 선택됐다. 이제 그 분기가 사라진다.
컨테이너 시대에는 꽤 실질적인 변화다. 리소스 리밋을 빡빡하게 준 파드에서 의도치 않게 Serial GC로 돌던 서비스가 있었다면, Java 27부터는 G1으로 뜬다. 지연 시간 특성이 달라지므로 성능 테스트 없이 넘어가면 안 되는 항목이다.
JEP 534(Compact Object Headers 기본값 적용)도 같은 결에 있다. 객체 헤더를 줄여 힙 사용량을 낮추는 기능이 옵트인에서 기본값으로 올라왔다. 작은 객체를 많이 만드는 워크로드일수록 체감이 크다.
JEP 536은 종류가 조금 다르다. JFR(Java Flight Recorder) 기록에서 민감 데이터를 기록 시점에 지운다. 덤프를 떠서 외부로 넘기는 운영 환경이라면 반가운 기능이다.

프리뷰 다섯 개가 가리키는 방향
확정 기능만큼이나 프리뷰 목록이 말이 많다.
- JEP 531 Lazy Constants — 3차 프리뷰
- JEP 532 패턴·
instanceof·switch의 원시 타입 — 5차 프리뷰 - JEP 533 Structured Concurrency — 7차 프리뷰
- JEP 537 Vector API — 12차 인큐베이터
숫자를 보자. Structured Concurrency는 일곱 번째 프리뷰, Vector API는 열두 번째 인큐베이터다. Vector API는 Valhalla의 값 타입이 들어와야 제 성능이 나오는 구조라 계속 기다리는 중이고, 그래서 인큐베이터에 머문 채 릴리스마다 번호만 올라간다.
Helidon 27·JavaFX 27 — 버전 번호를 JDK에 맞췄다
JavaOne 2026에서 발표된 Java Verified Portfolio가 이번에 실체를 드러냈다.
Helidon이 버전 체계를 OpenJDK에 맞췄다. Tip & Tail 모델에 따라 Helidon 27이 Tip, Helidon 4.5.5가 Tail이다. 새 기능은 Tip에, 안정성 패치는 Tail에 들어간다.
JavaFX 27은 macOS에서 Metal 렌더링 파이프라인을 내놨다. Apple이 OpenGL을 deprecated 상태로 둔 지 오래라 예정된 수순이었다. 텍스트 편집 컨트롤 개선과 접근성 향상도 함께 들어갔다.
Oracle Jipher 20(FIPS 140-3 CSP)은 지원 범위를 JDK 17·21·25·27로 넓혔다.
진짜 이벤트는 2027년 3월이다
JDK 28은 2027년 3월 예정이고, 목표 JEP 6개 중 두 개가 눈에 띈다.
JEP 401 Value Classes and Objects. Project Valhalla의 결과물이 드디어 프리뷰로 들어온다. 값 객체는 final 필드만 갖고, 아이덴티티가 없으며, 오직 필드 값으로만 구별된다. == 비교가 참조가 아니라 값으로 동작한다는 뜻이고, JVM이 객체를 힙에 올리지 않고 펼쳐서 배치할 수 있다는 뜻이다.
JEP 539 Strict Field Initialization. JVM 수준에서 필드 초기화를 엄격하게 강제한다. Value Classes가 성립하려면 먼저 깔려야 하는 바닥에 가깝다.
한국 개발 현장 기준으로 보면 Java 27 자체는 당장 갈아탈 물건이 아니다. 국내 상당수 팀이 여전히 Java 8과 11에 발이 묶여 있고, 최근 몇 년간의 이동도 대부분 17 아니면 21이었다. 비 LTS 릴리스는 6개월짜리 지원이 전부라 운영계에 올릴 근거를 만들기가 어렵다.
그런데 비 LTS를 "건너뛰어도 되는 버전"으로만 보면 손해다. 다음 LTS는 JDK 29(2027년 9월)가 될 텐데, 그때 한꺼번에 마주칠 변화의 초안이 지금 프리뷰로 굴러다니고 있다. Structured Concurrency가 일곱 번 고쳐 쓰이는 동안 API 모양이 계속 바뀌었다는 사실이, 프리뷰를 미리 만져본 팀과 LTS에서 처음 보는 팀의 차이를 만든다.
실무에서 당장 반응해야 할 항목을 굳이 꼽자면 G1 기본 전환이다. 라이브러리 호환성 문제가 아니라 런타임 동작이 바뀌는 변화라 조용히 지나가지 않는다. 컨테이너 메모리 리밋이 작은 배치 잡이나 사이드카에서 GC 특성이 달라진 채 그대로 배포되면, 문제는 릴리스 노트가 아니라 장애 알림으로 먼저 온다.
양자내성 암호화 쪽은 반대로 서두를 이유가 적다. 금융·공공처럼 장기 기밀성이 요구되는 도메인이 아니라면 TLS 라이브러리가 알아서 처리해주는 영역이고, 애플리케이션 코드가 손댈 부분이 거의 없다. 다만 국내 금융권 보안 가이드라인이 PQC를 명시하기 시작하면 이야기가 달라진다 — 그때는 JDK 버전이 곧 대응 가능 여부가 된다.
아쉬운 건 Valhalla다. 2014년에 시작된 프로젝트가 12년 만에 프리뷰 문턱에 섰다. 기다린 시간을 생각하면 반가운데, 프리뷰가 확정까지 몇 바퀴를 더 돌지는 아무도 장담 못 한다. Structured Concurrency의 7차 프리뷰가 그 답을 이미 보여주고 있다.
정리하면
Java 27은 보안을 굳히고 언어 혁신을 예고하는 릴리스다. TLS 1.3 하이브리드 키 교환으로 양자내성 암호화 스택을 완성 단계로 밀어올렸고, G1 기본 전환과 Compact Object Headers로 런타임 기본값을 정리했다. 언어 기능은 전부 프리뷰에 남겨 2027년 3월 JDK 28을 가리킨다.
여러분 팀은 지금 몇 버전을 쓰고 있나? 비 LTS 릴리스를 프리뷰 실험용으로 굴리는 편인지, 아니면 LTS만 보고 건너뛰는지 궁금하다.
📎 출처: 원문 보기
- infoq.comhttps://www.infoq.com/news/2026/09/java27-released/
댓글 0
댓글을 불러오는 중…






