메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

새로운 PHP : PHP는 개선사항들과 새로운 표준들로 부흥기를 맞이하고 있다.

한빛미디어

|

2014-06-27

|

by HANBIT

21,704

제공 : 한빛 네트워크
저자 : Josh Lockhart
역자 : 유형진
원문 : The new PHP

PHP 많은 사랑과 미움을 받았던 프로그래밍 언어는 부흥기를 맞이하고 있다. 이것은 부모 세대의 PHP가 아니다. 새로운 PHP는 지역(단체) 표준, 상호운용 가능한 컴포넌트에 대한 성장선호도, 그리고 성능향상을 위한 격정적인 변화를 지닌 더 원숙해진 언어다. PHP를 다른 언어의 대안으로만 사용해왔다면, 또는 최근 변경사항들에 대해 알지못하는 PHP 전문가라면 PHP의 다른 면모를 확인해 보기 바란다

언어 특징(추가된 기능)

PHP 5.5(이 글에 쓰인 최신 안정 버전)는 이전 버전부터 중요한 변화를 만들어오고 있다. 최근 발표된 PHP는 강력한 새로운 기능들과 유용한 개발 툴(내장 웹 서버, 이터레이션과 네임스페이스 생성기와 같은)들을 포함하고 있다. PHP 5.4의 특징(스칼라 또는 펄 양식으로)은 Closures에서 제공하는 함수형 스타일로 PHP 코드를 작성하게 해주는 기능 뿐만 아니라 단일 상속 언어에서 코드를 재사용할 수 있게 하는 내용을 소개했다. 다른 중요한 기능으로 내장 FastCGI 프로세스 관리자와 phpdbg 디버거 그리고 PHP에서 Password 관리에 있어서 보안과 더 쉽게 해쉬를 사용할 수 있게 해주는 새로운 Password Hash API를 포함하고 있다.

상호 운용 가능한 컴포넌트

몇 년 전, PHP는 몇개의 커다란 프레임워크(CakePHP, CodeIgniter 등)를 가지고 있었다. 각각의 프레임워크는 독립적이고, 다른 프레임워크에 공통적으로 존재하는 기능들을 자체적으로 구현하여 제공했다. 불행하게도 이 개별적으로 구현된 기능들은 서로 호환되지 않았고 그래서 개발자들은 특정 프로젝트를 위해 특정 프레임워크를 사용할 수 밖에 없도록 강요받게 되었다.

오늘날, 그 이야기는 달라졌다. 새로운 PHP 커뮤니티는 가장 적합한 툴들을 찾기위해 패키지 관리와 컴포넌트 라이브러리를 사용한다. 나는 이 내용을 식료품을 쇼핑하는 것과 비교하고 싶다. 내가 원격 API를 사용하고 싶다면 나는 3번 매장에 가서 Guzzle을 집을 것이다. 라우터가 필요한가? 4번 매장에 SymfonyRouting, AuraRouter, Slim, Pux, 그리고 nikic/fast-route가 있다. 위 예시에 대한 요점을 알겠는가? 새로운 PHP는 당신의 프로젝트에 최상의 조합을 제공하기 위해 그들의 비교우위(이점)를 사용하는 상호 운용가능한 컴포넌트를 제공한다.

가장 쉽게 PHP 컴포넌트들을 사용하는 방법은 Composer package manager를 설치하고 Packagist component repository를 찾아보기 시작하는 것이다.

지역(단체) 표준

DEVBLOG 새로운 PHP 커뮤니티는 대규모이고 아주 다양하기 때문에 공유 인터페이스 그리고 코드 스타일 가이드라인을 잘 지켜주는 것이 중요하다. 위에 언급한 내용들은 개발자가 낮은 학습 곡선을 가지고도 새로은 컴포넌트들을 사용할 수 있게 해주고, 공유 인터페이스를 통하여 더욱 쉽게 컴포넌트간 동작을 할 수 있게 한다.

PHP Framework Interop Group(PHP-FIG for short)는 비공식 그룹이지만 권위있는 프레임워크 개발자 그룹이며 우리의 프로젝트 사이에서 공통점에 대하여 이야기하고자 하는 것과 우리가 함께 할 수 있는 것을 찾는 것을 목적으로 하는 PHP 커뮤니티를 대표한다. PHP-FIG는 지금까지 PSR-0, PSR-1, PSR-2 그리고 PSR-3의 총 4가지의 표준을 통과시켰다. 이 표준들은 컴포넌트와 프레임워크 상호운용성을 장려하기 위해서 파일 클래스, 네임스페이스 규약, 코드 스타일 가이드라인 그리고 공유 인터페이스 집합을 제안한다.

PHP-FIG는 결코 법적 의무를 내포하는 것은 아니다. 그러나 제안된 표준들은 가장 유명한 PHP 프레임워크에 의해 사용되고 있다. 그것들의 목표에 감탄하며, 피드백에 대해서 환영한다. 나는 당신이 PHP 코드를 작성함에 있어서 PHP-FIG 표준들을 구현하는 것에 대해서 매우 장려하는 바이다. 그리고 향후에 PHP-FIG 제안서들에 대하여도 피드백을 보내주었으면 한다.

성능

또한 PHP 내면속에는 재미난 것들이 있다. 최근에 PHP Zend Engine라는 메모리 사용 최적화 엔진이 소개되었다. PHP 5.5에서 메모리 사용은 이전 버전보다 훨씬 적다. 또한 PHP Zend Engine은 보통 Reverse Proxy (예. nginx)를 사용하는 내장 FastCGI 프로세스 관리자를 제공하며 프로세스 생성과 관리를 할 것 이다. 이것은 Apache의 mod_php Module을 사용하여 각 Apache 프로세스에 새로운 PHP 인스턴스를 내장해야 하는 필요성을 완화시켜준다.

Facebook은 또한 자사의 다른 오픈소스 PHP engine(HipHop Virtual Machine(HHVM))에 대하여 커다란 발전을 이루어 오고 있다. HHVM은 여전히 사용자 편의성에 익숙한 PHP 개발자들에게 놀라운 성능을 제공하기 위해서 JIT 컴파일 기술을 사용한다. PHP Zend Engine처럼 HHVM 또한 FastCGI를 지원한다. 2014년 초 HHVM의 목적은 탑 20개의 PHP 프레임워크에 대해서 유닛 테스트를 100%로 통과하는 것이다. 그리고 최근에 향후 6개월에 대한 개발 로드맵을 발표했다. HHVM을 눈여겨 봐야 한다. 나는 향후 몇 년 후 PHP 진형을 철저히 변화시킬 것이라고 생각한다.

자료

PHP에 대하여 습득하는데 더 도움이 될만한 자료가 여기 있다.
TAG :
댓글 입력
자료실

최근 본 책0