PHP
패러다임 | 명령형 프로그래밍, 객체 지향 프로그래밍, 절차적 프로그래밍, 반영 |
---|---|
설계자 | 라스무스 러도프 |
개발자 | 젠드 테크놀로지스 |
발표일 | 1995년 6월 8일 |
최근 버전 | 8.0.7 |
최근 버전 출시일 | 2021년 6월 3일 (3년 전) |
라이선스 | PHP 라이선스 |
파일 확장자 | .php, .phtml, .php3, .php4, .php5, .php7, .phps |
웹사이트 | http://www.php.net/ |
주요 구현체 | |
젠드 엔진, HHVM, 팔라겔, 퀀스, 프로젝트 제로, 패럿 가상 머신 | |
영향을 받은 언어 | |
C, C++, 자바, 펄, Tcl | |
영향을 준 언어 | |
팰컨, 해키 |
대표적인 서버 사이드 언어 중 하나. 풀네임은 PHP: Hypertext Preprocessor 이며, 원래 Personal Home Page Tools 라는 풀네임을 사용했다가 현재의 재귀 약자로 변경되었다. 중소규모 사이트에서 많이 사용하며, 웹 호스팅/공유 호스팅은 거의 이 언어 기반이라도 봐도 무방하다. 또한 이곳에서 사용되는 미디어위키를 포함하여 수 많은 오픈소스 CMS가 PHP로 제작되었다. 소규모로 사용할 시에 생산성이 압도적으로 높아 중소규모 서비스에서 많이 사용하고 있으며, 위키백과 등 PHP 기반의 대형 사이트들도 있다.
특징[편집 | 원본 편집]
<?php echo "hello world!";?>
헬로 월드를 구현하는 소스코드.
PHP는 오픈소스이며, 왠만한 웹 서버에 설치가 가능하다. 또한, 서버에 배포하는 것이 타 언어에 비해 간편한 특징이 있다. 예를 들어 최근 뜨는 node.js의 경우 express같은걸 돌리려면 그에 맞는 NPM를 깔아줘야하고, 기본 포트가 80/443이 아니라서 리버스 프록시로 포트를 설정해 줘야할 필요가 있지만[1], PHP는 웹서버에서 PHP연동 설정만 해준다면, 그런거 없이 FTP/SFTP 등으로 파일만 올리고 사이트에 들어가서 잘 작동하는지 확인만 하면 끝이다. 이러한 특징은 PHP 기반의 웹호스팅이 많이 늘어나게 된 계기가 되었으며, 공유 호스팅의 대부분은 거의 PHP를 사용한다.
PHP는 C언어랑 펄의 영향을 많이 받은 언어라고 많은 사람들이 평가한다. 그리고 ASP, JSP 등과 같이 <?php ?>
로 이루어진 실행 영역이 있다는 것이 특징이다.
장점[편집 | 원본 편집]
- 언어 자체는 쉽고 생산성이 높은 것으로 알려져 있다.
- 전술했다 시피 서버 배포가 간단하다. 서버에서 APM을 셋팅해주면 거기에 PHP파일을 올리기만 하면 끝. 타 서버 사이드 언어는 PHP 만큼 간편하지 않다.
단점[편집 | 원본 편집]
- 보안 문제. PHP가 대형 사이트에서 입지가 낮은 이유. 물론 보안 문제는 개선이 되고 있지만, 타 언어도 마찬가지겠지만 PHP는 특히 코딩하는 과정에서 보안 문제가 없나 면밀히 검토해야 한다. 다만 PHP가 보안을 어그러뜨리는 코드를 짜기 쉬울 뿐이지 자바 같은 타 언어도 보안을 신경쓰지 않으면 보안이 개판난다는 점에 유의하자.
- 속도 문제. PHP 7 이후로 개선되고 있는 문제지만, 인터프리터 언어라는 태생적 한계 및 여러가지 문제로 인해 속도나 효율성이 썩 좋지 못하다.시간당 처리 할 수 있는 요청이 타 언어 대비 압도적으로 밀리는 밴치마크가 있을 정도. 다행인건 PHP 개발팀 측에서 해당 문제를 해결하기 위해 많은 노력을 한다는 것. PHP 7에서는 이전 버전 대비 비약적으로 속도가 향상되었으며, 최신 버전인 PHP 8에서는 JIT가 도입이 되어 다시 한번 속도가 향상되었다. PHP 5 시절에는 많은 업체들이 속도와 보안 문제 때문에 타 언어로 마이그레이션을 많이 했다. PHP 쓰는 것으로 유명한 페이스북도 HHVM 등의 자체 인터프리터를 만들고, 이에 모자라서 HACK이라는 새로운 언어를 만들었다.
- 페이스북 같은 먼치킨은 전술하다시피 아예 새로운 런타임을 만들었지만, 그럴 능력이 없는 국내 IT 기업들은 자바 같은 타 언어로 넘어가기도 했다. 네이버가 대표적인 사례로 원래 PHP를 사용했으나 2010년대 초반 쯔음 자바로 갈아탄 것으로 알려져 있으며, 2021년 현재 네이버는 자바 기반으로 웹 서비스를 운용하고 있다.
사용처[편집 | 원본 편집]
서버 배포가 간단하고, 수 많은 오픈소스 CMS가 존재하기 때문에 거의 절대다수의 웹호스팅(외국에서는 Shared hosting, 즉 공유 호스팅)이 PHP를 포함한 LAPM[2]/LEMP[3]조합으로 서비스 되고 있다. 이런 점 때문에 중소규모의 쇼핑물이나 커뮤니티는 절대다수가 PHP를 사용한다. 특히 한국 같은 경우에는 중소규모 사이트는 웹호스팅을 쓰는 경우가 많은데 PHP 외의 언어를 지원하는 호스팅이 드물어서 결국 PHP를 선택하게 된다.
그렇다고 해서 대형 사이트에서 PHP의 입지가 낮은건 아니다. 메이저한 커뮤니티 사이트들 또한 거의 PHP로 이루어져 있는게 태반이며, 위키백과 등 PHP 기반의 대형사이트들 또한 존재한다. 물론 대형 사이트에서의 입지는 PHP 소형 사이트에 비해서는 낮으며, 대형 사이트의 경우 PHP를 사용하는 비율이 낮아진다. 특히 한국의 정부/기업 SI 시장은 JSP가 강세이다.
위키 사이트 또한, PHP가 강한 종목 중 하나. 공개된 위키 엔진의 태반이 PHP 기반이기 때문이다. 당장 서비스형 위키에서 압도적으로 많이 사용하고 있는 미디어위키가 바로 PHP 기반이며, 이 때문에 대형 위키의 경우에는 미디어위키를 사용하게 되면서 자연스레 PHP를 사용하는 케이스가 많다. 도쿠위키, 모니위키 등 소형/개인 위키에 특화된 엔진 또한 PHP 기반이다. 이곳 L위키도 PHP 기반의 미디어위키를 사용하고 있다.
PHP를 사용하는 사이트[편집 | 원본 편집]
주로 대형 사이트 중에서는 커뮤니티 사이트가 주를 이룬다.