내 주력 개발 언어는 PHP이다. ECMAScript, CSS, HTML은 당연히 웹 개발 필수 언어니 제외했다. 하지만, 가끔 주변에서 욕을 먹는다. 그게 내가 이 글을 쓴 이유이기도 하다.
야, PHP 한물갔어. Node.js가 대세라고. 언제까지 그런 구형 언어를 잡고 있으려고 해?
아무리 그래도 개발자는 트렌드를 따라가야지. 요즘은 React가 대세래.
그렇다. 요즘은 ECMAScript 기반 프레임워크들이 대세이다. 내가 왜 PHP를 좋아하는지, PHP의 장단점, PHP를 현명하게 사용하는 법을 알아보겠다.
내가 왜 PHP를 좋아하는지
- PHP는 매번 새로 컴파일된다.
PHP는 매 요청시마다 새로 컴파일된다. 이는 일반적인 서버 환경에서는 심각한 단점이 된다. 하지만 Vultr, Nginx, Opcache, PHP, Mysql, CloudFlare를 사용하는 나에게는 캐싱이 완벽하고 서버 사양도 좋으므로 매번 서버를 재부팅할 필요 없이 디버그를 할 수 있다는 점은 나에게 큰 매력으로 다가왔다.
- PHP는 간단하다.
PHP는 배우기 쉬운 언어에 속한다. 그 말은 진입 장벽이 낮기도 하다는 말이다. 새 기능을 빨리 쓰고 싶은 나에게는 쉽다는 특징이 큰 매력이었다.
PHP의 장단점
PHP의 장점
- 배우기 쉽다.
PHP는 진입장벽이 매우 낮은 언어에 속한다. 이건 새 기능을 익히기 쉽고, 처음 배우기도 쉬우며, 그 때문에 웹 개발을 처음 시작하는 입문자가 접근하기 쉽고 관련 레퍼런스 또한 어렵지 않게 찾을 수 있어 어렵지 않게 개발을 할 수 있다는 장점이 있다.
- 자료가 많다.
Wordpress, XpressEngine, MediaWiki... Node.js가 등장하기 직전까지 대부분의 웹 프로젝트들은 PHP 기반이었다. 지원하는 공유 호스팅도 많고, VPS에서 설치를 도와주는 자료들도 많이 있으니 이게 정말 꿀빠는 개발이 아닌가.
PHP의 단점
- PHP는 느리다.
PHP의 필연적인 문제인데, 서버 사이드 캐시가 없으면 정말 속 터지는 속도가 나온다. 나처럼 고사양 VPS를 쓰는 사람은 괜찮겠지만, 사양 낮은 호스팅을 사용하는 사람은 큰 불편을 겪게 된다.
- PHP는 부실하다.
원래 PHP는 간단한 웹사이트를 만들기 위해 만들어진 언어이다. 때문에 언어 구조 자체가 굉장히 부실하다. 하지만 5.4에서 객체지향이 도입되면서 이 문제점은 상당히 해결되었다.
PHP를 현명하게 사용하는 방법
- 캐시를 사용한다
나는 내장 Opcache를 통해 서버 사이드 캐싱을 사용중이다. PHP의 느린 속도를 해결하기 위해 꼭 캐싱을 사용하자.
- 객채지향을 사용한다.
객체지향은 PHP 5.4부터 추가되었다. 꽤 오래되었는데, PHP 객체지향을 사용하는 사람은 그리 많지 않다. 난 모든 개인 프로젝트에 객채지향을 사용중이며, 눈에 띄는 변화를 느낄 수 있었다.