IT이야기/입코딩2017. 4. 20. 09:59


-PHP란 무엇일까요?



2000년도 초반에 제가 처음으로 접한 웹 언어이며, 현재까지도 취미(?)로 가지고 노는 언어입니다.

Rasmus Lerdorf (라스무스 러돌프)에 의해 최초개발되어졌으며, 오픈소스입니다. 공식사이트 링크

대표적인 서버사이드 스크립트 언어로 한국을 비롯한 전 세계 수많은 웹 시스템의 기반이 되는 언어라고 합니다. 

비슷한 언어로는 ASP, JSP, CGI, ROR 등이 있습니다. 

C-like 문법(이전 버전에서는 C언어와 유사한 문법이라 써있었으나 php 해보면 C보다 오히려 perl과 유사함을 알 수 있다. 다만 C언어 문법에서 파생된 문법을 사용하므로 C-like로 바꿈.)을 사용합니다. 

소규모 웹 페이지 제작시 쉽고 빠르다는 점에서 사용자, 사용처가 많다고 합니다.

PHP라는 이름은 원래 Personal Home Page Tools이나, 지금은 PHP: Hypertext Preprocessor라는 재귀 약자를 사용하고 있습니다.

워드프레스, 미디어위키 등의 많은 애플리케이션이 PHP로 짜여져있습니다. 

의외로 웹서핑을 해보면 쓰이는 곳이 많습니다. 우리나라 한정으로 엄청난 점유율을 보이는 XpressEngine과 그누보드 역시 PHP로 된 CMS 솔루션입니다. 

한때 포털사이트나 기업이 운용하는 웹사이트에서도 PHP를 사용하긴 하였는데, 속도면이나 협업이 힘들다는 이유로 현재는 Java 계열의 JSP나 C# 계열의 ASP.NET으로 옮겨갔습니다. 

참고로 JSP나 ASP.NET은 로드 밸런싱 기능이 포함되어 있어서 상대적으로 웹 서버의 부하를 줄여주는 효과가 있으며, PHP에 비해 협업환경에서 사용이 유용하도록 설계되었습니다. 

이러한 단점 때문에 IT관련 기업 외부노출 페이지를 PHP로 짠다면 제대로 된 회사가 아니라는 얘기까지 있을 정도이더군요. 

페이스북은 이전에는 PHP를 주 언어로 사용하다가 2014년 자사에서 PHP 기반으로 개발한 Hack이라는 언어를 사용합니다. 

링크


PHP의 문제점 중 가장 큰 문제는 언어 구조 및 설계상 안정하지 않다는 점입니다. 

대표적으로 표준 라이브러리의 함수 이름에 일관성이 없는 점이 있습니다. 

이는 PHP가 처음부터 면밀한 디자인적 고려 없이 개인 웹페이지만을 위해 만들어진 언어였기 때문이라고 합니다. 

설계 당시 협업환경을 고려하지 않은 채 설계해서 생긴 문제인 것이라고 하네요.

개인 웹호스팅 쪽으로 내려오면 여전히 PHP가 강세 입니다. 

JSP의 경우에는 아파치 HTTP 서버나 IIS말고도 톰캣이란 별도의 서버툴을 설치해야 되는데 설치는 둘째치고 코드가 갱신될 때마다 톰캣 서버쪽에도 반영을 해줘야 합니다. 

이게 서버 관리자 입장에서는 은근히 귀찮습니다. 

ASP.NET은 일단 .NET이 기반이라 마이크로소프트의 운영체제와 IIS를 설치해야 되는데 문제는 이게 다 라이센스비 깨지는 것들입니다.

본인이 꼭 필요하다면 지원하는 곳을 찾을 수는 있는데 비용이 꽤 많이 든다는 점을 염두에 두어야 합니다.

예전에는 협업이 쉽지 않은 언어였습니다.

MVC 패턴을 적용하기에는 PHP가 주로 사용되는 개발 환경상의 난점이 있었고, 프레임워크도 그동안 변변치 않았기 때문입니다. 

물론 이건 모두 과거형으로, 2010년 이전의 내용입니다. 

당연한 이야기지만 시간이 지나면서 꽤 많이 해결된 문제로, MVC 패턴은 Codeigniter와 Laravel이 나오면서 거의 대부분 해소되었습니다. 

적용 문제는 상술했듯이 개발 환경과 개발자들의 문제가 대다수이고 언어 자체에 결함이 있는 것은 아닙니다. 

특히 Laravel 프레임워크가 대중화되면서 가장 많이 사용되고 있습니다. 

XE도 이번에 개발되는 버전 3부터 적용한다고 하네요. 

추가로 Framework Interop Group에서 제안한 PSR 규칙으로 인해 많은 프레임워크들이 정규화되어가는 추세입니다.

종종 JSP와 비교되기도 하지만 PHP와 JSP는 둘 다 태생적 한계가 있으므로 각 언어의 특징 정도로 알아두는 것이 좋습니다. 

한국 한정으로 PHP 개발자에서 JSP 개발자로 넘어가는 일이 상당히 많은데, 이는 돈 많이 주는 정부가 JSP로 만들어진 사이트를 시스템 통합 업체에 요구하기 때문이라고 하네요. 

덕분에 영향을 받은 많은 회사들이 JSP로 개발을 하다 보니 PHP 개발자는 찬밥신세를 못 면하고 JSP로 넘어가는 것입니다.

나무위키에 적힌 예전 글들을 보면 JSP 예찬론자가 작성한건지 의심될 정도로 PHP의 단점만 상당히 부각시키고 심지어 있지도 않은 단점을 만들기까지 해놓았더군요. 웹 상에 올라와 있는 PHP 비판 문서는 유심히 봐야 합니다. 

잘못된 내용을 기재하는 경우도 있고, 현 시점에서 해결된 문제도 떡하니 올려놓는 경우도 많습니다. 4.x때 버전들의 문제점들이 대부분입니다. 

후자는 대부분 최신 버전이 5.x 대였을 시절에 작성된 글이 대다수입니다. 

날짜를 잘 보고 현 시점에서 2년 이상 지난 글이라면 무시하는 편이 낫다고 이야기하네요.

출처 : 나무위키

Posted by Joseph514