2021.03.25

오픈JDK 커뮤니티, 새 제안 공개··· “자바 패턴 매칭 개선한다” 

Paul Krill | InfoWorld
자바에서 패턴 매칭의 표현력을 개선하는 것 그리고 데이터 지향 쿼리를 활성화하는 것을 목표로 하는 2가지 개발 제안서 초안이 오픈JDK 커뮤니티에서 제기됐다. 

자바 프로그래밍에서 레코드 패턴과 배열 패턴 그리고 스위치 표현식 및 구문의 패턴 매칭을 개선하는 기능이 제안됐다. 하지만 이 기능들이 언제 지원될지는 아직 정해지진 않았다. 
 
ⓒMae Mu (CC0)

지난 3월 23일 온라인 프레젠테이션에서 오라클의 기술 부문 컨설팅 담당 개빈 비어맨이 2가지 오픈 JDK 프로젝트 제안을 공개하면서 이러한 기능들을 언급했다. 이들은 앞으로 출시 예정인 (하지만 정확하게 결정되진 않은) 자바 릴리즈에 프리뷰 단계로 포함될 예정이다. 올해 9월로 예정된 JDK 17 릴리즈에 포함될 것으로 예상되고 있다. 

제안서 초안에 따르면 자바에서 유형 패턴(자바16부터 지원)과 함께, 레코드 패턴 및 배열 패턴을 지원하면 패턴 매칭의 표현력과 효용성이 크게 향상되며 더욱더 정교하고 구성 가능한 데이터 쿼리를 활성화할 수 있다. 레코드 패턴, 배열 패턴, 유형 패턴은 패턴 내의 패턴처럼 중첩될 수 있다. 유형 패턴의 구문 또는 의미는 변경되지 않는다고 제안서는 덧붙였다. 

패턴 매칭은 프로그램의 공통 로직, 즉 객체에서 구성 요소의 조건부 추출을 허용하는 메커니즘이다. 해당 제안서는 지난 3월 16일에 발표된 JDK 16에서 Instanceof 연산자가 유형 패턴을 취하고 패턴 매칭을 수행하도록 확장됐다고 설명했다. 이번 레코드 패턴 및 배열 패턴 제안은 Instanceof의 패턴 매칭(JEP 394)을 기반으로 한다. 

한편 스위치에 대한 패턴 매칭을 제기한 제안서 초안에 따르면 이를 사용해 각각 특정 작업이 있는 여러 패턴에 대해 표현식을 테스트할 수 있으므로 복잡한 데이터 지향 쿼리를 안전하고 간결하게 표현할 수 있다. 

이 제안의 목표는 스위치 패턴이 케이스 레이블에 표시되도록 하고 원하는 경우 널-호스틸리티(null-hostility)를 완화하도록 해 스위치 표현식 및 구문의 표현력과 적용 가능성을 확장하는 것이다. 

또한 제안서 초안은 임의의 부울(Boolean) 표현식으로 패턴 매칭 논리를 개선하는 보호된 패턴 그리고 괄호로 묶인 패턴을 새롭게 도입한다고 설명했다. 기존 스위치 표현식은 변경 없이 컴파일되며 동일한 의미 체계로 실행된다. 

지금까지 공식적으로 JDK 17에서 릴리즈 된다고 알려진 기능들은 향상된 유사 난수 생성기(PRNG)새로운 맥OS 렌더링 파이프라인이다. 앞으로 몇 개월 동안 JDK 17에는 더 많은 기능이 제안될 예정이다. ciork@idg.co.kr
 



2021.03.25

오픈JDK 커뮤니티, 새 제안 공개··· “자바 패턴 매칭 개선한다” 

Paul Krill | InfoWorld
자바에서 패턴 매칭의 표현력을 개선하는 것 그리고 데이터 지향 쿼리를 활성화하는 것을 목표로 하는 2가지 개발 제안서 초안이 오픈JDK 커뮤니티에서 제기됐다. 

자바 프로그래밍에서 레코드 패턴과 배열 패턴 그리고 스위치 표현식 및 구문의 패턴 매칭을 개선하는 기능이 제안됐다. 하지만 이 기능들이 언제 지원될지는 아직 정해지진 않았다. 
 
ⓒMae Mu (CC0)

지난 3월 23일 온라인 프레젠테이션에서 오라클의 기술 부문 컨설팅 담당 개빈 비어맨이 2가지 오픈 JDK 프로젝트 제안을 공개하면서 이러한 기능들을 언급했다. 이들은 앞으로 출시 예정인 (하지만 정확하게 결정되진 않은) 자바 릴리즈에 프리뷰 단계로 포함될 예정이다. 올해 9월로 예정된 JDK 17 릴리즈에 포함될 것으로 예상되고 있다. 

제안서 초안에 따르면 자바에서 유형 패턴(자바16부터 지원)과 함께, 레코드 패턴 및 배열 패턴을 지원하면 패턴 매칭의 표현력과 효용성이 크게 향상되며 더욱더 정교하고 구성 가능한 데이터 쿼리를 활성화할 수 있다. 레코드 패턴, 배열 패턴, 유형 패턴은 패턴 내의 패턴처럼 중첩될 수 있다. 유형 패턴의 구문 또는 의미는 변경되지 않는다고 제안서는 덧붙였다. 

패턴 매칭은 프로그램의 공통 로직, 즉 객체에서 구성 요소의 조건부 추출을 허용하는 메커니즘이다. 해당 제안서는 지난 3월 16일에 발표된 JDK 16에서 Instanceof 연산자가 유형 패턴을 취하고 패턴 매칭을 수행하도록 확장됐다고 설명했다. 이번 레코드 패턴 및 배열 패턴 제안은 Instanceof의 패턴 매칭(JEP 394)을 기반으로 한다. 

한편 스위치에 대한 패턴 매칭을 제기한 제안서 초안에 따르면 이를 사용해 각각 특정 작업이 있는 여러 패턴에 대해 표현식을 테스트할 수 있으므로 복잡한 데이터 지향 쿼리를 안전하고 간결하게 표현할 수 있다. 

이 제안의 목표는 스위치 패턴이 케이스 레이블에 표시되도록 하고 원하는 경우 널-호스틸리티(null-hostility)를 완화하도록 해 스위치 표현식 및 구문의 표현력과 적용 가능성을 확장하는 것이다. 

또한 제안서 초안은 임의의 부울(Boolean) 표현식으로 패턴 매칭 논리를 개선하는 보호된 패턴 그리고 괄호로 묶인 패턴을 새롭게 도입한다고 설명했다. 기존 스위치 표현식은 변경 없이 컴파일되며 동일한 의미 체계로 실행된다. 

지금까지 공식적으로 JDK 17에서 릴리즈 된다고 알려진 기능들은 향상된 유사 난수 생성기(PRNG)새로운 맥OS 렌더링 파이프라인이다. 앞으로 몇 개월 동안 JDK 17에는 더 많은 기능이 제안될 예정이다. ciork@idg.co.kr
 

X