PHP

큰숲백과, 나무를 보지 말고 큰 숲을 보라.

PHP(PHP Hypertext Preprocessor)는 개인 홈페이지 등 웹페이지 파일을 제작하는데 쓰는 프로그래밍 언어다. 한때 Personal Hompage Processor라는 명칭으로 불렀던 만큼 개인 홈페이지를 타깃으로 하는 언어이다. 진입장벽이 낮은 편이라 한때 광범위하게 사용하기도 했으나 일관되지 않은 문법, 인터프리터 기반의 언어의 한계로 실시간으로 처리해야하는 작업에 불리한 점이 있어 예전민큼 광범하게 쓰지는 않는다. PHP를 고수했던 페이스북은 PHP를 어느정도 개량한 HHVM을 사용했다가, HACK를 사용하고 있다.

특징[편집 | 원본 편집]

언어 앞에 <?php 구문으로 시작해서 ?> 구문으로 끝낸다. 또한

프로그래밍 언어치고는 진입 장벽이 낮다고 흔히 알려져 있지만 사실 코딩을 최적화시키기는 쉽지는 않은 언어이다. 특히나 키워드들이 많은데 문법 방식도 일관되어 있지 않다는 것이 문제이댜. Hello World 프로그램을 보면 echo는 키워드로 출력하지만... 프린트 함수인 prinf는 반드시 함수 형태로 출력해야 한다는 이야기이다. 거기에 진입장벽이 낮은 점 때문에 최적화가 엉망인 웹사이트들도 많다.

<?php echo "Hello world!"; 
?>
<?php printf("Hello world!"); 
?>

분명 같은 결과를 출력하는데 한 쪽은 괄호를 안 쓰고 한 쪽은 괄호를 사용한다. 사실 php가 여러 키워드를 사용하기에 언어 자체가 상당히 무겁다고 볼 수 있다.

PHP의 속도를 높여주기 위해서는 캐싱이 필요하다. 캐싱이 되지 않은 웹 사이트들의 접속 속도가 시궁창인 것 보면 캐싱의 중요성을 알 수 있다. 미디어위키에서는 Memcached를 엔진 자체에서 캐싱으로 지원한다. 설치과정에서 Memcached 서버를 설정하면 끝. 이밖에

APCu, Xcache, Wincache 등을 사용하기도 한다. Wikipedia:List of PHP Accelerators 문서도 참고하자.

물론 캐시라는 가공을 거쳐서 속도를 어느 정도 높일 수는 있으나 근본적으로 php는 실시간으로 다수의 유저들이 참여하는 프로젝트를 수행하는 데에는 취약하다. 따라서 대규모 기업들은 대규모 프로젝트에 보다 더 최적화된 jsp[1]나 asp[2] 기반으로 웹페이지를 만든다. 문제는 이 언어들이 유지보수하기가 더 어렵다는 것.

php 기반으로 작동하는 사이트[편집 | 원본 편집]

PHP는 진입장벽이 낮고, C언어 등과의 호환성이 높기에 이곳저곳에서 많이 사용된다. 요새는 node.js가 무섭게 치고 올라고 있지만 워낙 PHP가 견고하게 체계를 갖추어 놓았기에 아직까지 완벽하게 대체하지는 못 하는 실정.

php 기반의 솔루션[편집 | 원본 편집]

같이 보기[편집 | 원본 편집]

각주

  1. java sever pojongjae
  2. active sever pojongjae