Offcanvas

개발자 / 애플리케이션

형태 갖추기 시작한 ‘자바 19’… 어떤 기능 포함될까?

2022.03.11 Paul Krill  |  InfoWorld
표준 자바(Java)의 다음 버전에는 외부 함수 및 메모리 API, 벡터 API, 스위치 표현식 패턴 매칭, 범용 제네릭 등이 포함되리라 예상된다.  

2주 후 ‘자바 18(Java 18)’이 프로덕션 릴리즈로 출시됨에 따라 ‘자바 19(Java 19)’가 형태를 갖추기 시작했다. 표준 자바의 다음 릴리즈는 자바 런타임 외부 코드와 상호 운용하는 API와 함께 추진될 예정이다. 이는 범용 제네릭, RISC-V 포트 등을 포함하는 잠재적인 제안 가운데 첫 번째다. 
 
ⓒGetty Images

현재 오픈JDK(OpenJDK) 커뮤니티에 올라와 있는 자바 19 제안은 자바 프로그램이 자바 런타임 외부의 코드 및 데이터와 상호 운용할 수 있는 외부 함수 및 메모리 API다. 이 기능은 오는 9월 공개될 JDK(Java Development Kit) 19에서 미리 볼 수 있다. 

‘JEP(JDK Enhancement Proposal) 424’로 식별되는 외부 함수 및 메모리 API는 외부 메모리에 액세스하여 JVM 외부의 코드를 호출한다. 이 API는 JDK 17의 인큐베이터 단계에 포함됐었으며, 3월 22일 릴리즈될 JDK 18에서 다시 인큐베이팅될 예정이다. JDK 19에서 이 API는 피드백에 따라 개선 사항을 통합하는 프리뷰 단계로 이동한다. JDK 19는 6개월 동안 지원되는 자바의 단기 릴리즈다. 

이 밖에 JDK 19에서 지원할 가능성이 큰 기능은 벡터 API다. 이는 JDK 18에서 세 번째로 인큐베이팅되고 있으며, 네 번째 인큐베이팅이 제안됐다. 이 API는 최적의 벡터 명령어로 런타임에 컴파일하는 벡터 계산을 표현한다. JDK 18에서 두 번째 프리뷰를 진행 중인 스위치 표현식 및 문의 패턴 매칭도 제공할 가능성이 높은 또 다른 기능이다. 

오라클은 올해 자바에서 4가지 이니셔티브를 계속 발전시켜 나갈 것이라고 밝혔다. 여기에는 ▲고급 JVM 및 언어 기능을 인큐베이팅하기 위한 프로젝트 발할라(Project Valhalla), ▲네이티브 코드와 JVM 코드를 상호 연결하는 프로젝트 파나마(Project Panama), ▲동시성을 개선하기 위한 프로젝트 룸(Project Loom), ▲더 작고 생산적인 자바 언어 기능을 탐색 및 인큐베이팅하는 프로젝트 앰버(Project Amber)가 포함된다. 

현재 특정 버전의 자바를 대상으로 하지 않는 JEP 또는 JEP 초안의 주제인 다음의 기능들은 자바 19에 포함될 수 있다. 

• 발할라(Valhalla)의 범용 제네릭 프리뷰: 3개의 JEP에서 제안된 범용 제네릭은 자바 유형 변수가 2가지 유형의 범위를 포괄할 수 있도록 하여 일반 코드에서 참조 및 기본 유형 처리를 통합한다. 

• 발할라(Valhalla)에서 개선된 값 객체의 프리뷰는 최종 인스턴트 필드만 있고 객체 ID가 없는 클래스 인스턴스를 제공한다. 또한 ID가 없는 값 클래스가 선언된다. 

• 프로젝트 앰버(Project Amber)의 일부인 레코드 값을 분해하기 위한 레코드 패턴 프리뷰

• G1 가비지 수집기의 영역 고정: G1에 영역 고정 기능을 구축하여 대기 시간을 줄인다. 이에 따라 JNI(Java Native Interface) 중요 영역에서 가비지 수집을 비활성화할 필요가 없어진다. 

• 로열티 없는 오픈소스 명령어 세트 아키텍처인 RISC-V용 JDK 리눅스 포트

이러한 기능 중 일부는 JDK 19에 포함되지 않을 경우 표준 자바의 6개월 릴리즈 주기에 따라 2023년 3월 출시될 JDK 20에서 제공될 수 있다. 또는 다른 후속 릴리즈로 넘어가거나 아예 자바에 포함되지 않을 수도 있다. ciokr@idg.co.kr
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.