Offcanvas

개발자

‘PHP 8’ 정식 출시, 유니온 타입 및 JIT 컴파일러 도입

2020.12.01 Paul Krill  |  InfoWorld
서버 측 웹 프로그래밍을 지원하는 동적 언어 ‘PHP 8’이 지난 11월 26일 정식 릴리즈됐다. 2015년에 출시된 이전 메이저 업그레이드 버전(PHP 7) 이후 무려 5년 만이다. 이번 업그레이드에서는 유니온 타입(union types), 명명된 인수 및 속성(named arguments and attributes), JIT 컴파일러(Just-In-Time compilation) 등이 도입됐다. 
 
ⓒGetty Images

유니온 타입은 여러 타입의 값을 허용한다. 이는 매개변수 위치가 아닌 이름을 기반으로 함수에 인수를 패싱할 수 있다. 또한 인수의 의미를 자기 문서화(self-documenting)하고, 인수를 순서 독립적(order-independent)으로 만들며, 임의로 기본값을 건너뛰는 것을 허용한다. 

기존에 PHP는 두 가지 특수 유니온 타입(Type 또는 Null, array 또는 Traversable)을 지원하긴 했지만 임의의 유니온 타입은 지원되지 않았다. 그 대신 PHPDoc 주석을 활용했다. 제네릭 다음으로, 유니온 타입은 PHP 타입 선언 시스템의 가장 큰 단점으로 꼽혔던 바 있다. 

이제 유니온 타입이 지원돼 더 많은 타입 정보를 PHPDoc에서 함수 시그니처로 이동할 수 있다. 이 밖에 타입은 상속 시 확인되며 리플랙션을 통해 사용할 수 있다. 구문은 PHPDoc 보다 표준 문안도 적다. 

PHP 버전 8.0은 이곳(php.net)에서 다운로드받을 수 있다. PHP 8.0의 다른 기능들은 다음과 같다. 

• 두 가지 JIT 컴파일러 엔진(트레이싱 JIT와 함수 JIT)이 추가됐다. 트레이싱 JIT는 합성 벤치마크에서 약 3배 향상된 성능을, 실행 시간이 긴 애플리케이션에서는 약 1.5~2배 향상된 성능을 보여줬다. 일반적인 애플리케이션 성능은 PHP 버전 7.4와 동일하다. 
• 클래스, 상수, 함수, 메소드, 매개 변수 등에 구조화된 구문 메타데이터를 선언할 수 있는 속성이 지원된다. 속성은 기존 토큰인 T_SL 및 T_SR을 재사용하여 << and >>로 묶인 특수 형식의 텍스트다. 
위크맵(WeakMap)을 사용하면 키로 사용되는 객체가 가비지 수집되는 것을 막지 않고 객체에서 임의 값으로 맵을 만들 수 있다. 객체 키가 가비지 수집되는 경우, 이는 맵에서 제거된다. 위크맵의 일반적인 사용 사례는 데이터는 유지하고 실행 시간이 긴 프로세스에서 효과적으로 메모리를 유출하지 않으면서 데이터를 개별 객체 인스턴스와 연결하는 것이다. 
생성자 프로모션(Constructor promotion)은 속성 정의와 생성자를 결합할 수 있는 약식 구문을 제공한다. 이는 모든 속성을 최소한 4번 반복해야 하기 때문에 단순 값 객체 정의에 많은 표준 문안 코드가 필요한 상황을 해결한다. 
Match 표현식(Match Expression)은 안전한 의미 체계 및 값을 리턴할 수 있는 기능 등을 제공한다. 
• Nullsafe 연산자


ciokr@idg.co.kr
 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국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.