개발자 생산성 극대화 및 자바 언어 향상을 지원하는 24 JEP(자바 업데이트를 위한 제안 목록) 제공
플랫폼 성능과 안정성 및 보안 개선으로 기업 조직의 비즈니스 성장 지원
자바원 2025에서 AI 및 양자 내성 암호화 지원하는 새로운 기능들 선보여
대한민국—2025년 3월 19일
오라클이 세계 1위 프로그래밍 언어이자 개발 플랫폼인 자바의 최신 버전, 자바 24(Java 24)의 출시를 발표했다. 자바 24(오라클 JDK 24)는 개발자의 생산성 극대화 및 혁신 추진을 지원하는 수천 가지 개선 사항을 제공한다. 또한, 플랫폼의 성능과 안정성 및 보안 개선 사항들은 기업 조직의 비즈니스 성장 가속화를 지원한다. 2025년 3월 18일-20일(현지 시간) 캘리포니아 레드우드 쇼어스에서 열리는 자바원 2025(JavaOne 2025)에서 최신 자바 24 릴리스에 대한 보다 자세한 내용들을 확인할 수 있다.
IDC의 아르날 다야라트나(Arnal Dayaratna) 소프트웨어 개발 연구 부사장은 “올해 30주년을 맞이하는 자바는 AI 기반 애플리케이션 개발 지원 기능 등 개발자들의 진화하는 니즈를 충족시키기 위해 툴셋을 계속해서 확장해 나가고 있다.”면서, “신규 릴리스에 담긴 광범위한 기능들은 개발자 생산성 증대를 지원해 개발자가 자사 조직 및 고객들에게 풍부한 기능들로 가득한 애플리케이션을 보다 신속하고 효율적인 방식으로 제공할 수 있게 지원한다. 자바 24 릴리스는 엔터프라이즈급 미션 크리티컬 애플리케이션의 대규모 개발 면에서 자바의 독보적인 성능을 두드러지게 보여준다.”라고 설명했다.
조지 사브 오라클 자바 플랫폼 부문 수석 부사장 겸 오픈JDK(OpenJDK) 이사회 의장은 “지난 30년간 자바는 개발자들에게 종합 플랫폼을 제공해 광범위한 사용 사례를 다루는 애플리케이션의 구축 및 배포를 지원했다.”라면서 “새로운 AI, 양자 내성 암호화 기능 등 자바의 모든 요소를 아우르는 20여 개 이상의 새로운 기능들을 통해 자바 24 릴리스는 혁신적인 AI 기반 애플리케이션 구축에 필요한 도구들을 개발자들에게 제공한다. 전 세계 자바 공동체와의 협업을 통해 6개월 주기의 예측 가능한 정기 릴리스 일정을 기반으로 새로운 기능들을 꾸준히 제공할 수 있어 기쁘다.”라고 말했다.
언어 기능
JEP 488: 패턴, 인스턴스오브, 스위치의 기본 유형(두 번째 미리보기): 보다 균일하고 표현력이 풍부한 언어를 통해 개발자의 자바 프로그래밍 생산성 증대를 지원한다. 이 기능은 패턴 매칭, 인스턴스오브, 스위치 사용 시 개발자가 직면하는 기본 유형 관련 제한 사항들을 제거함으로써 패턴 매칭을 개선할 수 있게 해 준다. 또한 모든 패턴 컨텍스트에서 기본 유형 패턴을 허용하고 인스턴스오브 및 스위치 확장을 통해 모든 기본 유형과의 호환성을 제공한다. 애플리케이션에 AI 추론을 통합하는 경우 개발자들은 특히 이 기본 유형 지원 기능의 혜택을 누리게 된다.
JEP 492: 유연한 생성자 본문(세 번째 미리보기): 생성자 본문 내에 별도로 두 개의 프롤로그 및 에필로그 단계를 도입해 개발자가 코드 안정성을 개선할 수 있게 지원한다. 이 기능은 개발자가 현재는 보조 정적 메서드, 보조 중간 생성자 또는 생성자 인수에 반드시 포함시켜야 하는 논리를 보다 자연스럽게 배치할 수 있게 지원한다. 또한 하위 클래스 생성자의 코드가 상위 클래스 인스턴스화를 방해하지 않는다는 기존의 보장을 유지하기 때문에 메서드가 오버라이드된 경우 클래스의 안정성을 향상시킨다.
JEP 494: 모듈 임포트 선언(두 번째 미리보기): 모듈 자체에 임포팅 코드가 없어도 모듈에서 엑스포트된 모든 패키지를 개발자가 신속하고 손쉽게 임포트할 수 있게 지원함으로써 개발자 생산성 개선을 돕는다. 이 기능은 모든 개발자의 모듈러 라이브러리 재사용을 간소화해 주고, 초보자들이 패키지 계층 내 제3자 라이브러리 및 기본 자바 클래스의 위치를 익히지 않고도 각각을 보다 손쉽게 사용할 수 있게 해 준다. 이 기능은 또한 비즈니스 논리를 네이티브 AI 추론, 라이브러리 또는 서비스 호출에 신속히 통합하고자 하는 개발자들에게 유용하다.
JEP 495: 간단한 소스 파일 및 인스턴스 기본 메서드(네 번째 미리보기): 학생들에게 자바 프로그래밍에 대한 손쉬운 접근성을 제공함으로써, 대규모 프로그램을 위해 설계된 언어 기능에 대한 이해 없이도 생애 첫 프로그램을 작성할 수 있게 지원한다. 덕분에 교사 및 강사들은 점진적인 방식으로 관련 개념을 점진적으로 소개할 수 있고, 학생들은 먼저 단일 클래스 프로그램에 대한 간소화된 선언을 작성한 후 프로그래밍 실력이 성장함에 따라 보다 고급 기능을 활용해 프로그램을 원활하게 확장할 수 있게 된다. 숙련된 자바 개발자들 역시 대규모 프로젝트를 위해 설계된 도구를 사용하지 않고도 간결하고 효율적으로 소규모 프로그램을 작성할 수 있다.
라이브러리
JEP 485: 스트림 수집기(Stream Gatherers:): 스트림 API를 개선하여 커스텀 중간 연산을 지원함으로써 스트림 파이프라인이 기존의 내장형 중간 연산으로는 달성하기 어려운 방식으로 데이터를 변환할 수 있도록 지원하고, 결과적으로 개발자가 자바 코드를 보다 효율적으로 읽고, 쓰고, 유지 관리할 수 있게 지원하는 기능이다.
JEP 484: 클래스-파일 API: 자바 클래스 파일의 구문 분석(parsing), 생성, 변환용 표준 API를 제공하고 자바 가상 머신(Java Virtual Machine) 사양에 정의된 클래스 파일 포맷을 추적함으로써 개발자의 생산성 향상을 지원한다.
JEP 487: 범위가 지정된 값(네 번째 미리보기): 스레드 내에서, 그리고 스레드 간에 변경 불가능한 데이터를 공유할 수 있도록 지원함으로써 개발자 프로젝트의 사용 편의성, 이해 가능성, 성능, 견고성을 향상시켜 주는 기능이다.
JEP 489: 벡터 API(9차 인큐베이터): 런타임에서 안정적으로 컴파일 되는, 벡터 연산을 표현하는 API를 지원되는 CPU 아키텍처의 벡터 명령에 도입하여 개발자 생산성 향상을 지원한다. 이를 통해 개발자는 AI 추론 및 컴퓨트 시나리오에 자주 사용되는 동등한 스칼라 연산보다 우수한 성능을 확보할 수 있다.
JEP 499: 구조화된 동시성(네 번째 미리보기): 구조화된 동시성을 위한 새로운 API를 통해 동시 프로그래밍을 간소화함으로써 개발자가 동시성 코드의 유지관리 용이성, 안정성, 관찰 가능성을 개선할 수 있도록 한다. 구조화된 동시성은 다양한 스레드에서 실행 중인 관련 작업 그룹을 단일 작업 단위로 취급함으로써 스레드 누수 및 취소 지연 등 취소 및 종료로 인해 흔히 발생하는 위험을 최소화할 수 있게 해 준다.
보안 라이브러리
JEP 478: 키 추출 함수 API(미리보기): 전송 중인 데이터에 대한 암호화 보안 기능을 제공함으로써 개발자가 새로운 양자 컴퓨팅 환경에 대비할 수 있게 지원한다. 이 기능은 기밀성 및 커뮤니케이션 무결성을 향상시킨다.
JEP 496: 양자 내성 모듈 격자 기반의 키 캡슐화 매커니즘: 양자 내성 모듈 격자 기반의 키 캡슐화 매커니즘(ML-KEM)의 구현을 제공함으로써 자바 애플리케이션 보안 강화를 지원한다. 이 기능은 자바 플랫폼을 위한 양자 내성 준비 및 궁극적인 양자 내성 암호화(PQC) 제공 지원을 위한 필수적인 단계로, 이는 키 캡슐화 매커니즘이 공용 키 암호화를 통해 비보안 커뮤니케이션 채널에서 대칭 키를 보호하는 데 사용되기 때문이다.
JEP 497: 양자 내성 모듈 격자 기반의 디지털 사인 알고리즘: 양자 내성 모듈 격자 기반의 디지털 사인 알고리즘(ML-DSA)의 구현을 제공함으로써 자바 애플리케이션 보안 강화를 지원한다. 디지털 사인은 데이터에 대한 무단 수정을 감지하고 서명자의 신원을 인증하는 데 사용되기 때문에 JEP 496과 마찬가지로 이 기능 역시 자바 플랫폼을 위한 양자 내성 준비 및 궁극적인 PQC 제공을 위해 중요한 단계다. ML-DSA는 미래의 양자 컴퓨팅 공격에 대비하기 위해 설계되었으며, 미국 국립표준기술연구소(NIST)의 FIPS 204를 바탕으로 표준화되었다.
도구
JEP 493: JMOD 없이 런타임 이미지 연결: j링크(jlink) 도구가 JDK의 JMOD 파일을 사용하지 않고도 커스텀 런타임 이미지를 생성할 수 있게 함으로써 개발자 효율성 개선을 지원한다. 이 방법으로 JDK의 크기를 약 25% 줄일 수 있다. 이를 통해 개발자는 독립형 JMOD 파일, 모듈식 JAR 파일, 이전에 링크된 런타임 이미지의 일부 등 모듈의 종류와 관계없이 모듈에서 런타임 이미지를 연결할 수 있다. 이 기능은 JDK 구축 단계에서 활성화되어야 하며, 기본으로 활성화되지 않는다. 일부 JDK 제공업체는 이 기능이 비활성화되도록 선택할 수 있다.
성능 및 런타임 업데이트
JEP 450: 간결한 객체 헤더(실험 단계): 96에서 128비트 사이의 핫스팟 JVM 객체 헤더 크기를 64비트 아키텍처의 64비트로 줄임으로써 개발자가 생산성을 높일 수 있게 지원한다. 이를 통해 힙(heap) 크기를 줄이고, 배포 밀도를 개선하고, 데이터 지역성을 높일 수 있다.
JEP 475: G1 후반 장벽 확장: G1 가비지 컬렉터 장벽 확장을 C2 JIT 컴파일 파이프라인의 초반에서 후반으로 변경하여 개발자 효율성을 높인다. 변경이 플랫폼별 최적화 및 레지스터 할당 후 이루어지는 경우 오버헤드를 줄일 수 있다. 이 기능은 G1 가비지 컬렉터의 장벽 구현을 간소화함으로써 C2 생성 코드의 효율성, 이해가능성, 복원력, 품질 개선을 지원한다.
JEP 483: AOT(Ahead-of-Time) 클래스 로딩 및 연결: 핫스팟 자바 가상 머신(HotSpot Java Virtual Machine) 시동 시 애플리케이션의 클래스를 로딩 및 연결 상태에서 즉시 가용하게 함으로써 개발자의 생산성 증가 및 시동 시간 개선을 지원한다. 이 기능은 j링크 또는 j패키지(jpackage) 도구가 필요하지 않으며, 명령줄을 통해 애플리케이션 시동 방식을 변경하거나 애플리케이션, 라이브러리, 프레임워크를 변경할 필요가 없다. 결과적으로 지속적인 시동 및 예열 시간 개선을 위한 기반 마련에 도움이 된다.
JEP 490: ZGC: 비세대 모드 제거: Z 가비지 컬렉터(ZGC)의 비세대 모드를 제거함으로써 개발자가 두 개의 다른 모드 지원에 필요한 유지 관리 비용을 줄일 수 있게 지원한다.
JEP 491: 고정 없이 가상 스레드 동기화: 동기화된 메서드 및 문(statement)을 사용하는 자바 코드 및 라이브러리의 확장성을 넓힘으로써 개발자 생산성 증대를 지원한다. 가상 스레드가 기본 플랫폼 스레드를 릴리스할 수 있게 지원하는 이 기능은 개발자가 더 많은 가상 스레드에 대한 액세스를 바탕으로 애플리케이션 워크로드를 관리할 수 있게 해 준다.
소스 코드
JEP 404: 세대별 셴언도우(Shenandoah)(실험 단계): 지속가능한 처리량, 로드 스파이크 복원력, 메모리 활용도를 개선해 주는 실험 단계의 세대별 컬렉션 기능을 통해 셴언도우 가비지 컬렉터를 개선함으로써 개발자 생산성 증대를 지원한다.
JEP 479: 윈도우 32비트 x86 포트 제거: 소스 코드를 제거하고 윈도우 32비트 x86 포트의 지원을 구축함으로써 JDK의 구축 및 테스트 인프라를 간소화하는 방식으로 개발자의 효율성 개선을 지원한다.
JEP 501: 제거용 32비트 x86 포트 지원 중단: 향후 릴리스에서의 32비트 x86 포트 제거를 목적으로 지원을 중단함으로써 개발자 생산성 증대를 지원한다. 이 기능은 개발자가 32비트 x86 포트 폴백 구현 없이도 플랫폼별 지원에 필요한 새로운 기능들을 활용할 수 있게 해 준다.
또한 최신 보안 기능들을 도입하고, 안전하지 않은 기능들을 점진적으로 제거 및 지원 중단함으로써 오라클은 자바의 무결성 유지 및 소프트웨어 개발 모범 사례와의 연계에 대한 자사의 헌신을 보여준다. 오라클은 향후 자바 릴리즈에서 제거될 세 개의 기능(JEP 472: JNI 사용 제한 준비, JEP 486: 보안 관리자 영구 비활성화, JEP 498: sun.misc.Unsafe에서 메모리 액세스 메서드 사용 시 경고)을 지정한 바 있다.
자바 24 릴리스의 기능들은 오픈JDK 및 자바 공동체 프로세스(JCP)를 통한 오라클과 글로벌 자바 개발자 공동체 회원들 간의 지속적인 협력의 결과다. 자바 24에 추가된 새로운 기능들에 대한 보다 자세한 정보는 자바 24 기술 블로그에서 확인할 수 있다.
클라우드 혁신 기술로 전 세계 자바 공동체 지원한다
자바 24를 지원하는 최초의 하이퍼스케일러 클라우드 중 하나인 오라클 클라우드 인프라스트럭처(OCI)에 자바 애플리케이션을 배포하면 더욱 향상된 혁신 기술, 성능, 효율성, 비용 절감 효과 등을 누릴 수 있다. 자바 24는 오라클 자바 SE(Oracle Java SE), 오라클 그랄VM(Oracle GraalVM), 자바 SE 서브스크립션 엔터프라이즈 퍼포먼스 팩(Java SE Subscription Enterprise Performance Pack)을 추가 비용 없이 OCI를 통해 제공하며, 개발자가 더욱 빠르고, 효율적이며, 최적화된 비용 대비 성능으로 실행되는 애플리케이션을 구축 및 배포할 수 있게 지원한다.
오라클 자바 유니버설 SE 섭스크립션(Oracle Java Universal SE Subscription)은 업계 최고의 고객 지원을 제공하는 서비스다. 본 서비스에는 자바 SE 섭스크립션 엔터프라이즈 퍼포먼스 팩, 전체 자바 포트폴리오에 대한 우선순위 기반 지원, 오라클 그랄VM 사용 권한, 자바 관리 서비스의 고급 기능에 대한 액세스, 고객사가 비즈니스 현황에 비례하여 업그레이드할 수 있는 유연성 등이 포함된다. 본 서비스는 IT 조직의 복잡성 관리, 보안 위험 방지, 비용 절감에 기여한다.
고객의 의견
NY자바SIG(NYJavaSIG) 프랭크 그레코(Frank Greco) 회장은 “자바 24의 자바 벡터 API에 적용될 추가 개선사항이 예측 가능성과 생성형 AI 애플리케이션 모두의 향상에 기여할 것이라고 기대하고 있다.”라면서 “자바에서 직접 효율적인 AI 알고리즘을 구현하면 다양한 최신 하드웨어 플랫폼 전반에서의 AI 애플리케이션 효율성 및 확장성을 증대시킬 수 있다.”라고 설명했다.
XDEV 소프트웨어 GmbH(XDEV Software GmbH)의 리처드 피히트너(Richard Fichtner) CEO는 “자바 24가 소개한 스트림 수집기(Stream Gatherers)는 개발자가 스트림 내 요소의 그룹화 및 처리 방식을 세부적으로 제어할 수 있게 해 주는 강력한 개선 사항이다.”라면서 “이 기능은 복잡한 데이터 전환을 더욱 표현력 있고 효율적으로 수행할 수 있게 해 준다. 내가 이 기능을 좋아하는 이유는 커스텀 컬렉터나 플랫맵 짐네스틱스(flatMap gymnastics)와 같은 임시방편을 없앰으로써 보다 가독성이 높고 유지 관리가 용이한 스트림 파이프라인을 확보할 수 있기 때문이다.”라고 말했다.
애자일 디벨로퍼(Agile Developer, Inc.)의 설립자 벵카트 수브라마니암(Venkat Subramaniam) 박사는 “자바는 마치 훌륭한 셰프가 신중하게 고른 재료를 사용해 최고의 풍미가 나올 때까지 충분히 끓여 만든 소스 같다.”라면서 “지금 내가 가장 좋아하는 맛은 스트림 수집기 API, 범위 값(Scoped Values), 구조화된 동시성(Structured Concurrency)이다.”라고 설명했다
코드랜치(CodeRanch)의 진 보야스키(Jeanne Boyarsky) 개발자는 "자바 24의 유연한 생성자 세 번째 미리보기는 개별 도우미 메서드를 생성하지 않아도 된다는 대단히 큰 장점을 제공한다는 측면에서 눈 여겨 볼 만하다. 덕분에 이 슈퍼(super)에 대해 한 줄로 된 호출을 만들 수 있다.”라면서 “스트림 수집기 기능 또한 흥미롭다. 수많은 새로운 중간 연산(intermediate operation)들을 생성해 낼 라이브러리도 기대하고 있다.”라고 덧붙였다.
제트브레인(JetBrains)의 메릿 밴다이크(Marit van Dijk) 자바 개발자 옹호자는 “제트브레인은 첫날부터 인텔리J IDEA(IntelliJ IDEA)에서 자바 24의 지원을 제공할 수 있어 무척 기쁘다.”라면서 “최신 자바 개선 사항에 발맞추려는 우리의 노력 덕분에 개발자들이 중요한 신기능들을 매끄럽게 도입할 수 있게 되었고, IDE에서 직접 자바 24를 다운로드할 수 있는 기능 덕분에 설정 역시 손쉬워졌다.”라고 말했다.
오라클은 완전한 통합 애플리케이션 제품군과 보안 역량, 자율운영 기술 기반의 오라클 클라우드 인프라스트럭처를 제공한다. 오라클(NYSE: ORCL)에 관한 자세한 정보는 www.oracle.com에서 확인 가능하다..
미래 제품 관련 면책 고지
상기 명시된 내용은 오라클의 일반적인 제품 방향에 대한 개요를 제공하기 위해 작성되었다. 정보 제공용으로만 작성되었으며, 어떤 계약서에도 포함될 수 없다. 본 내용은 그 어떤 자료, 코드, 기능을 제공하겠다는 약속이 아니며, 구매 결정에 활용해서는 안 된다. 오라클 제품의 기능 또는 기능성에 대해 묘사된 개발, 출시, 타이밍, 가격 등은 변경될 수 있으며, 이는 오라클의 단독 재량에 따라 결정된다.
상표
Oracle, Java, MySQL및 NetSuite는 Oracle Corporation의 등록된 상표이다. NetSuite는 클라우드 컴퓨팅의 새로운 시대를 개척한 최초의 클라우드 회사다.