m>제일한 미싸일 편집 요약 없음 |
각주 틀 |
||
| (사용자 3명의 중간 판 7개는 보이지 않습니다) | |||
| 1번째 줄: | 1번째 줄: | ||
'''PHP'''(PHP Hypertext Preprocessor)는 개인 [[홈페이지]] 등 웹페이지 파일을 제작하는데 쓰는 [[프로그래밍 언어]]다. 한때 Personal Hompage Processor라는 명칭으로 불렀던 만큼 개인 홈페이지를 타깃으로 하는 언어이다. [[진입장벽]]이 낮은 편이라 한때 광범위하게 사용하기도 했으나 일관되지 않은 문법, 인터프리터 기반의 언어의 한계로 실시간으로 처리해야하는 작업에 불리한 점이 있어 예전민큼 광범하게 쓰지는 않는다. PHP를 고수했던 [[페이스북]]은 PHP를 어느정도 개량한 [[HHVM]]을 사용했다가, HACK를 사용하고 있다. | |||
== 특징 == | |||
언어 앞에 <?php 구문으로 시작해서 ?> 구문으로 끝낸다. 또한 | |||
[[프로그래밍 언어]]치고는 진입 장벽이 낮다고 흔히 알려져 있지만 사실 코딩을 최적화시키기는 쉽지는 않은 언어이다. 특히나 키워드들이 많은데 문법 방식도 일관되어 있지 않다는 것이 문제이댜. [[Hello World]] 프로그램을 보면 echo는 키워드로 출력하지만... 프린트 함수인 prinf는 반드시 함수 형태로 출력해야 한다는 이야기이다. 거기에 진입장벽이 낮은 점 때문에 최적화가 엉망인 웹사이트들도 많다. | |||
<syntaxhighlight lang=php> | |||
<?php echo "Hello world!"; | |||
?> | |||
</syntaxhighlight> | |||
<syntaxhighlight lang=php> | |||
<?php printf("Hello world!"); | |||
?> | |||
</syntaxhighlight> | |||
분명 같은 결과를 출력하는데 한 쪽은 괄호를 안 쓰고 한 쪽은 괄호를 사용한다. 사실 php가 여러 키워드를 사용하기에 언어 자체가 상당히 무겁다고 볼 수 있다. | |||
PHP의 속도를 높여주기 위해서는 캐싱이 필요하다. 캐싱이 되지 않은 웹 사이트들의 접속 속도가 시궁창인 것 보면 캐싱의 중요성을 알 수 있다. [[미디어위키]]에서는 Memcached를 엔진 자체에서 캐싱으로 지원한다. 설치과정에서 Memcached 서버를 설정하면 끝. 이밖에 | |||
[https://pecl.php.net/package/APCu APCu], Xcache, Wincache 등을 사용하기도 한다. [[Wikipedia:List of PHP Accelerators]] 문서도 참고하자. | |||
물론 캐시라는 가공을 거쳐서 속도를 어느 정도 높일 수는 있으나 근본적으로 php는 실시간으로 다수의 유저들이 참여하는 프로젝트를 수행하는 데에는 취약하다. 따라서 대규모 기업들은 대규모 프로젝트에 보다 더 최적화된 [[jsp]]<ref>java sever pojongjae</ref>나 asp<ref>active sever pojongjae</ref> 기반으로 웹페이지를 만든다. 문제는 이 언어들이 유지보수하기가 더 어렵다는 것. | |||
== php 기반으로 작동하는 사이트 == | |||
PHP는 진입장벽이 낮고, [[C (프로그래밍 언어)|C언어]] 등과의 호환성이 높기에 이곳저곳에서 많이 사용된다. 요새는 [[node.js]]가 무섭게 치고 올라고 있지만 워낙 PHP가 견고하게 체계를 갖추어 놓았기에 아직까지 완벽하게 대체하지는 못 하는 실정. | |||
* 여기 [[큰숲백과]]를 포함한 [[미디어위키]] 기반의 위키들 | |||
** [[위키백과]] | |||
** [[리브레 위키]] | |||
** [[디시위키]] | |||
* [[디시인사이드]] | |||
* [[리그베다 위키]] | |||
* [[오늘의 유머]] | |||
== php 기반의 솔루션 == | |||
* [[XpressEngine]] ([[제로보드]]의 후신) | |||
* [[도쿠위키]] | |||
* [[모니위키]] | |||
* [[미디어위키]] | |||
* [[워드프레스]] | |||
* [[phpMyAdmin]] | |||
== 같이 보기 == | |||
* [[index.php]] | |||
{{각주}} | |||
[[분류:프로그래밍 언어]] | |||
[[분류:PHP|*]] | |||