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

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

IT/모바일

새로운 PHP

한빛미디어

|

2016-01-13

|

by 한빛

16,964

제공 : 한빛 네트워크
저자 : 조시 록하트(Josh Lockhart)
역자 : 이대엽
원문 : The new PHP

지금 PHP는 르네상스를 경험하는 중입니다. 개선된 사항과 새로운 표준으로 말이죠.

많은 분들이 싫어하는 프로그래밍 언어가 르네상스를 경험하는 중입니다. 이 언어는 예전의 PHP가 아닙니다. 새로운 PHP는 커뮤니티 표준, 상호운용이 가능한 컴포넌트, 성능 향상에 대한 열정적인 움직임과 함께 더욱 성숙한 언어가 됐죠. PHP 사용을 고려해보지 않은 분이나 PHP의 최근 변화에 대해 모르는 PHP 고수라면 반드시 PHP를 다시 한 번 살펴볼 필요가 있습니다.

언어 특징

PHP 7.0(이 글을 쓰는 현재의 최신 안정 버전)은 이전 버전에서 크게 발전했습니다. 최신 PHP 릴리스에는 다음과 같은 강력한 새 기능 및 유용한 개발자 도구가 포함돼 있습니다.
  • 네임스페이스
  • 트레이트
  • 스칼라 타입 힌트
  • 반환형 선언
  • 안전한 의사 랜덤 숫자 생성기
  • 비밀번호 해싱 API
  • 새로운 오류 및 예외 처리 시스템
  • 내장 웹 서버
  • 내장 FastCGI 프로세스 관리자
  • 내장 phpdbg 디버거
이러한 특징 중 다수는 PHP 5.4부터 누적돼온 것들입니다. 그러나 PHP 7.0에서 가장 주목할 만한 특징은 성능일 것입니다. PHP 7.0에서는 이러한 강력한 특징들을 PHP 5.6에 비해 두 배나 빠른 코드 기반에 담았습니다. 워드프레스, 드루팔, 심포니, 라라벨, 그리고 그 밖의 PHP 프레임워크들은 모두 PHP 7.0 덕분에 엄청난 속도 향상을 보고 있습니다.

상호 운용 가능한 컴포넌트

Modern PHP: 네임스페이스, 트레이트, 클로저부터 모범 사례와 최신 도구까지몇 년 전까지만 해도 PHP는 사용 가능한 프레임워크가 별로 없었습니다(예: 케이크PHP, 코드이그나이터 등). 각 프레임워크는 서로 분리돼 있고 다른 프레임워크에 공통적으로 중복돼 있는 기능들을 자체적으로 구현했죠. 안타깝게도 이처럼 배타적인 구현체들은 서로 호환되지 않는 경우가 많았기에 PHP 개발자들은 프로젝트에 특정 프레임워크만 사용할 수밖에 없었습니다.

지금은 상황이 달라졌습니다. 새로운 PHP 커뮤니티에서는 패키지 관리와 컴포넌트 라이브러리를 사용해 가장 적합한 도구를 섞어서 씁니다. 저는 새로운 PHP 생태계를 장보기와 비유하곤 합니다. 만약 원격 API를 사용해야 한다면 3번 통로로 가서 Guzzle을 고르면 됩니다. 요청 라우터가 필요하다면? 4번 통로에서 Symfony, Aura, Slim, FastRoute를 고를 수 있습니다. 제 말의 요지를 이해하셨을 겁니다. 새로운 PHP에서는 상호 운용 가능한 컴포넌트의 비교우위를 이용해 프로젝트에 가장 적합한 재료를 조합할 수 있습니다.

PHP 컴포넌트를 사용하는 가장 쉬운 방법은 컴포저 패키지 관리자를 설치한 후 Packagist 컴포넌트 저장소를 살펴보는 것입니다.

커뮤니티 표준

새로운 PHP 커뮤니티는 규모가 크고 수많은 PHP 컴포넌트로 인해 다양하기 때문에 컴포넌트가 공유 인터페이스와 공통 코드 스타일 가이드라인을 따르는 것이 중요합니다. 공유 인터페이스는 PHP 개발자들이 바퀴를 다시 발명하는 일 없이 새로운 기능을 구현하도록 돕습니다. 공통 코드 스타일 가이드라인은 학습 곡선을 줄이고 다양한 개발자들이 공유 코드를 읽고 기여할 수 있게 합니다.

PHP 프레임워크 상호운용 그룹(PHP-FIG)은 비공식 그룹이지만 "프로젝트 간의 공통점을 이야기하고 함께 협업할 수 있는 방법을 찾는다"는 것이 목표인 PHP 개발자와 커뮤니티 대표들 사이에서 권위 있는 그룹입니다. PHP-FIG는 지금까지 다음과 같은 몇 가지 표준을 통과시켰습니다.
  • PSR-1 (기본 코드 스타일)
  • PSR-2 (엄격한 코드 스타일)
  • PSR-3 (로깅 인터페이스)
  • PSR-4 (자동 로딩)
  • PSR-7 (HTTP 메시지 인터페이스)
이러한 표준은 파일, 클래스, 네임스페이스 관례, 코드 스타일 가이드라인을 비롯해 컴포넌트와 프레임워크의 상호운용성을 증진시키는 공유 인터페이스를 제시합니다.

PHP-FIG는 전혀 반드시 지켜야 할 사항은 아니지만 대부분의 유명 PHP 프레임워크에서 채택하고 있는 제안 표준입니다. PHP-FIG의 목표는 훌륭하며, 여러분의 피드백을 기꺼이 받아들입니다. 여러분이 작성하는 PHP 코드에서 PHP-FIG 표준을 구현하고 향후 PHP-FIG 제안 의견에 피드백을 전달해주시길 적극 권장합니다.

성능

PHP 내부에도 흥미로운 변화가 있었습니다. Zend 엔진이 PHP 7.0에 포함되어 PHP 5.6에 비해 두 배에 달하는 성능 향상이 이뤄졌죠. 이것이 가능했던 이유는 줄어든 메모리 사용과 최적화된 힙/스택 활용 덕분입니다. 실제적인 관점에서 보면 오늘날 대부분의 PHP 프레임워크는 PHP 7.0을 통해 상당한 성능 이점을 공짜로 누릴 수 있을 것입니다.

페이스북은 계속해서 자사의 오픈소스 PHP 엔진인 힙합 가상 머신(HHVM; HipHop Virtual Machine)에 상당한 진전을 이뤄내고 있습니다. HHVM은 JIT(just-in-time) 컴파일을 통해 PHP 개발자들에게 익숙한 동적 인터프리트를 여전히 지원하면서도 높은 성능을 보여줍니다. 하지만 PHP 7.0은 HHVM과의 성능 격차를 좁히고 있으며, PHP 7.0과 HHVM은 서로를 발판 삼아 성능과 기능 측면에서 앞으로 나아가고 있습니다. PHP 개발자들에게는 아주 흥미진진한 시간이 될 겁니다.

참고 자료

다음은 PHP 7.0을 활용해 개발에 박차를 가하는 데 유용한 참고 자료 목록입니다다.***

조시 록하트(Josh Lockhart)는 Modern PHP의 저자이자 PHP를 위한 슬림 프레임워크의 제작자입니다. 또한 모범 사례를 독려하고 양질의 정보를 제공하는 것으로 PHP 커뮤니티에서 유명한 PHP The Right Way를 만들고 관리하고 있습니다. 조시는 노스캐롤라이나 주의 카보로에 위치한, 풀서비스 웹 디자인, 개발, 마케팅 에이전시인 뉴 미디어 캠페인에서 선임 개발자로 근무하고 있습니다.
TAG :
댓글 입력
자료실

최근 본 상품0