PHP는 정말 배울 가치가 없을까?

주류 언어 중 PHP만큼 비판받는 언어도 없다. PHP에 대한 비판이 지나치다 못 해 인신공격까지 서슴치 않는 경우도 있다. 오늘도 가루가 되도록 까이는 PHP를 위해 해명을 곁드린 PHP의 효용 가치에 대한 내 생각을 이야기 해보려고 한다.

PHP는 다른 언어들처럼 뚜렷한 큰 목적이나 이론(사상)을 기반으로 만들어진 언어가 아니다. 초기 PHP의 약자는 Personal Home Page였다. 즉, 개인 홈페이지 만들려고 나온 언어다. 그런 언어가 이제는 웹사이트 서버사이드 프로그래밍 언어 중 점유율이 매년 늘어나 2013년에는 78.7%에 달하고 있다. 기술 수준과 완성도가 진리라 생각하는 개발자나 해커로서는 땅을 치고 통탄 할 일이 아닐 수 없을 것이다. 그들에게 PHP는 쓰레기 같은 언어고, 당연히 쓰레기로서 취급을 받아야 마땅한 일일테니까 말이다.

"오마이갓! 무슨 일이 일어난거죠?"

그분들은 이리 생각하시고 계시는 듯 하다.

1. PHP는 프로그래밍 언어로서 치명적인 기초 설계 결함이 있고, 그로 인한 한계가 너무나도 크다.
2. 보안 문제나 단점은 적기조차 버거울 정도로 많다.
3. 그런 PHP가 시장에서 널리 사용되는 것은 잘 못 된 일이다.
4. 새로 프로그래밍을 배울 때 PHP를 배우는 것은 잘 못 된 개발의 길로 들어서는 일이다.
5. PHP로 만들어진 기존 시스템도 훌륭한 다른 언어 - 아마도 그 분들이 쓰고 계신 각자의 언어로 - 다시 개발해야한다.
6. PHP를 프로그래밍 언어 시장에서 완전히 쫓아내 아무도 사용하지 않는 언어로 만들어야 한다.

PHP가 가진 문제점 자체를 부정하는 사람은 거의 없다. 대부분의 PHP 개발자도 사실 관계로서의 단점에 대한 지적은 수긍을 하는 편이다. 나 또한 그러하다. 그런데 우리는 많은 문제점과 낮은 기술 수준을 가진 제품이 오히려 시장에서 더 인정을 받고, 결국 더 오래 살아남는 경우를 종종 보아왔다. PHP는 정말로 하루라도 빨리 시장에서 사라져야만 하는 것일까? 아니면 단점과 낮은 기술 수준에도 불구하고 시장에서는 더 오래 살아남았던 것들 중 하나가 될 것일까?

개인적으로 몇 년 전까지만 해도 프로그래밍 언어를 추천 해 달라고 하면 일반인에게는 파이썬(Python)을 추천 해 주었다. 개발자를 지망하는 사람에게는 C 언어를 - 그리고 펄(Perl)도. 1999년 PHP를 처음 배울 때부터 여러 단점 때문에 짜증을 낼 때가 많았다. 아마도 이런 경험이 나로 하여금 PHP를 추천하지 않게 하였을듯 하다. 예를 들어 PHP 4의 클래스는 이걸 쓰라고 만든 것인지 의심스러울 정도였다.

그러나 PHP가 주류 언어 중 하나로 성장하면서 지적됐던 단점들이 하나씩 보완되고 있기 때문에, 여전히 남은 단점들에도 불구하고 시장에서 빨리 퇴출시켜야 된다는 주장에 무작정 동의하기 보다 몇몇 상황에서는 PHP를 배우길 추천하고 싶다.

1. 웹사이트가 일이나 취미에 보완적으로 도움이 되는 경우

프로그래밍 그 자체가 주목적이 아니라 마케팅과 같은 비기술적인 일이나 커뮤니티 같은 취미에 웹사이트가 도움이 될 것 같아 직접 만들거나 운영하려는 사람들에게는 PHP가 학습 비용 및 운영 비용에서 잇점이 있는 언어다.

PHP는 현재 PHP를 사용하지 않은 개발자들도 대부분 어느 정도는 알고 있을 정도로 - 심지어 PHP를 비판하시는 분들 조차도 - 주변의 도움을 얻기 쉬운 언어다. PHP를 모르더라도 숙련된 C/C++ 개발자라면 즉석에서 PHP 메뉴얼을 보고 답을 줄 수 있을 정도다.

또한 PHP는 웹호스팅 비용이 매우 저렴하다. PHP를 제공하지 않는 웹호스팅 업체는 거의 없을 정도고, 제공하는 서비스의 완성도도 높은 편이라 문제를 겪을 일도 적고, 발생한 문제에 대한 기술 지원도 잘 이루어진다. 웹호스팅 업체 직원도 PHP는 대부분 알고 있다. 적은 비용으로 하고자 하는 일이나 취미에 도움이 되는 웹사이트를 운영 할 수 있다.

2. PHP로 만들어진 도구를 이용해야 하는 경우

PHP가 높은 시장 점유율을 가진 것의 절반은 이런 도구들 때문이라고 생각한다. CMS 시장의 1, 2, 3위를 차지하는 워드프레스(WordPress)와 줌라(Joomla), 드루팔(Drupal) 모두 PHP로 개발되어 있다. 조그마한 소호(SOHO) 사업을 하거나, 쇼핑몰이나 커뮤니티, 소규모 미디어 사업 등을 위해 이런 도구들을 이용하는 경우 PHP를 배우는 것이 유리한 점이 많다.

각종 플러그인이나 기능들을 직접 원하는대로 수정하여 운영 할 수 있는 경우 다른 사이트에 비해 경쟁력을 갖추는데 도움이 된다.

3. 개인 또는 제한된 사용자 규모를 가진 웹페이지를 만들어야 할 경우

다른 언어(특히 C/C++) 개발자가 개인 또는 내부 직원들에게 배포 할 용도로 1 ~ 2 페이지 정도 규모의 웹페이지를 만들어야 할 경우 두 언어 모두 능숙하다는 가정하에 HTML과 로직을 마구 섞어서 사용 할 수 있는 PHP의 접근 비용이 더 적을 수 있다. 물론 이 때에도 기존에 다른 언어로 구축 된 라이브러리들을 이용해야 한다면 PHP는 선택 대상이 아니겠지만, 그렇지 않은 경우는 고려 해 볼만한 하다.

4. 이미 PHP로 구축된 시스템이 있는 경우

개인적으로 PHP를 사용하고 계속 공부하고 있는 가장 큰 이유다. 백만 라인을 가뿐히 넘는 PHP(+HTML) 소스 코드를 PHP가 단지 단점이 많고, 완성도가 떨어진다고 다른 언어로 재개발 해야 한다고 주장하려면 책상 위에 사직서를 올려놓고 이야기를 시작해야 할지도 모른다. 사업에 캐시카우인 시스템이 PHP라면 당연히 PHP의 단점을 잘 이해하고 해결(회피) 할 수 있는 방법까지 터득한 절정의 PHP 실력을 갖추도록 노력하는 것이 맞다. PHP를 버리고 다른 언어로 다시 재개발하기 보다 단점을 해결하는 수준을 넘어 안드로메다까지 끌어올린 회사를 우리는 알고 있다. 페이스북.

이제 이야기를 정리하고 마무리 하자.

PHP는 외부 라이브러리의 매개변수 순서를 자신에게 맞추지 않고, 원형 그대로를 유지 할 정도로 실용을 우선시 하는 언어다. 덕분에 체계적이거나 기술적 완성미와는 거리가 멀다. 그러므로 PHP를 선택하거나 배우려 할 때도 실용에 초점을 두는 것이 맞다. 프로그래머로서 해커로서 엔지니어로서 기술적 욕구에 대한 충족은 미안하지만 다른 언어로 채우는 것이 낫다. PHP는 분명 나아지고 있고 언젠가 그 단점들을 모두 해결해낼지 모르지만, 당분간 그게 이뤄질 가능성은 없어낮아 보인다. 몇몇 언어들처럼 PHP6가 하위 호환성을 버리고 단점들을 한 방에 정리 할 것 같진 않다는 이야기다.

한 마디로 정리하자면 이렇다.

PHP는 실용성이 중요한 상황이라면 배워 둘만한 실용적 가치 정도는 있는 언어다.

PHP는 정말 배울 가치가 없을까?”의 21개의 생각

  1. 구글에서 주식 실패담 보다가 엉뚱하게 이글로 넘어왔네요

    Php가 이렇게 까이는언언지는 몰랐군요…

    1. 현실에서 PHP를 극도로 비난하는 분들은 자신들이 쓰는 언어 외에 다른 언어도 비난하시긴 합니다.

      다만 PHP가 애초에 이론적으로 정립을 해서 만든 언어가 아니기에 일관성 같은 것이 다른 언어보다 많이 떨어지는데, 현실에서는 시장 점유율이 1위인 웹 서버 사이드 프로그래밍 언어다 보니 특히 더 비난받는 것이라 생각합니다.

  2. PHP 비난하는 넘들. 그렇게 대단하면 직접 만들어서 사용하셔~. X도 아닌것들이 까기는…
    아우~~ 짜증나

    1. 많이 화가 나셨나 보네요. ^_^;

      어제 지인이 그런 이야기를 하더군요. 기술이 성장한만큼 인격이 성장하지 못한 사람들이 많다라구요. 적당한 비판은 꼭 필요한 것이지만, 도에 지나친 비난은 삼가해야 하는 것인데 이 둘을 구별하지 못하는 개발자들이 가끔 보여 안타깝습니다.

  3. 좋은글 감사합니다.
    PHP개발자로서 고민했던 부분들에 대해 잘 정리해주셨네요.
    하루 빨리 PHP가 많은 부분을 보안했으면 좋겠네요 ㅠ

  4. PHP는 광범위하게 사용되고 인기가 있기 때문에, 단점들이 빠르게 보완되고 있지요!
    5.3버전부터는 OOP부분도 많이 보강되었고요~! 이전의 스파게티 코드 방식은 예전 모습이죠!
    서비스에 사용하기 위해서는 언어 자체도 휼륭해야 하지만, 그 언어를 뒷받침 해줘야 하는
    환경(미들웨어, 라이브러리, Framework)도 매우 중요하다고 생각합니다.
    그런면에서 웹애플리케이션 개발 시 PHP는 정말 좋은 언어라고 생각 되네요!
    Github에 올라가 있는 웹관련 프로젝트에서 가장 많이 사용하는 언어가 뭔지 보라고 하고 싶네요!
    참고로 해외에서는 아주 큰 서비스에서도 PHP 잘 사용하고 있습니다.

    1. 요즘 스크립트 언어 중에서 가장 핫하다고 생각합니다. PHP NG 이야기도 나왔고, 다음 PHP는 7으로 버전 넘버도 오늘 정해졌네요.

    1. 좀 어수선하긴 합니다. 초기에 대충 만들었던 것들이 호환성을 이유로 정리하지 못하고 지금까지 내려오고 있거든요.

      PHP로 그나마 좀 깔끔하게 코딩을 하려면 SPL 클래스들과 프레임워크를 써야하는데, 국내에서 이 둘을 쓰시는 분들이 많지는 않더군요.

  5. 가장 마음에 안드는 건 파이썬 유저들임 자기언어가 최고라고 선동하는게 너무 심하고 펄에서 많은 특징을 빌려왔으면서 펄을 한물 간 언어라는듯이 깎아내리는게 너무 마음에 안들음

    1. PHP를 나쁘게 보는 다른 언어 사용자 분들이 많지만, 유독 파이썬 사용자 분들이 극단적인 반응을 보이시는 경우가 있긴 하더군요.

    1. 저도 가끔 터무니 없는 비난에 좀 어이없을 때가 있지만, 이제는 조금씩 무뎌져 가는 느낌입니다. 익숙해진 것도 있지만, PHP가 더 나은 언어로 계속 변하고 있기 때문이기도 합니다.

  6. 라슘 = php는 내가 개인적으로 쉽게 쓰기위해 만듬.
    로섬 = Python은 내가 크리스마스날 심심해서만듬.
    고슬링 = Java는 많은 사람들이 쉽게 프로그래밍 하기위해.

    그밖에 많은 언어의 창시자들은 자기의 언어가 최고가되기위해 만든 사람은 아무도 없건만 유저가 이를 평가하고있으니.

    자기상황에 필요에따라 쓰면 되는게 문자그대로의 정답인데
    굳이 서열을 따지려드는 이런 언어신봉주의는 개발자들 사이에서 사라져야할 문화라고 봅니다. 정말 소모적이고 비생산적임..

    1. 프로그래밍 언어 가지고 싸우는 분들께 보여드리고 싶은 말이 하나 있지요.

      “There are only two kinds of languages: the ones people complain about and the ones nobody uses.”

      ― Bjarne Stroustrup, The C++ Programming Language

    1. PHP가 유독 너무 까인다는 느낌을 지우기 어렵더라구요. PHP도 도구고, 도구의 유용성이란 상황에 따라 쓰기 나름인 건데 말이죠.

  7. PHP 를 배우고 주력으로 개발하면 초보땐 금방 취직될지 모르지만 언젠가는 JAVA 로 갈아 타야 합니다.
    이게 한국의 현실입니다. 더 늦기전에 미리 갈아타는게 연봉 올리는데 도움이 됩니다.

  8. PHP는 초보때 주력언어로 쓰면 나중에 언젠가는 JAVA 로 갈아 타야 합니다.
    취미나 커뮤니티운영을 위해서는 좋은 언어인데 한국의 공공기관은 모조리 JAVA 더군요.
    더 늦기 전에 JAVA 로 갈아 타세요.
    나중에 팀장, 파트장, 사업부장으로 올라가려면 미리 JAVA 로 갈아 타십시요.
    초보자들에게 제발 부탁 드립니다. PHP 만 하다가는 올라가서 연봉에 타격이 큽니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다