떠나세요, PHP 개발자여. 아니면 잘하든가!

PHP 개발자는 그 태생부터 죄에 속한 것과 같이 업을 쌓고 산다. 아무리 좋은 디자인과 아키텍처, 방법론으로 무장하고 있더라도 그 죄성은 쉽게 씻겨지지 않는다. 어디서든 PHP 개발자라는 얘길 하면 PHP: 잘못된 디자인의 프랙탈 링크를 받게 되고 공개 처형이 이뤄진다. 모던 PHP로 개발하면 된다지만 이전 PHP에 비해 그나마 모던한 것이지 다른 언어와 비교했을 때는 이제 시작한 수준에 불과하다. 개발과 아예 관련이 없는 모임이나 PHP 개발자 모임 외에는 PHP는 쉽고 편한 언어다, 같은 발언은 물론 대화에 PHP를 올리는 것 자체가 금기다. 언급 되더라도 마치 인종차별적 농담과 같이 지저분한 곳에만 사용된다.

어디 가서 PHP 얘기 꺼냈을 때

PHP를 새로 배우려고 하는 사람, 또는 2년 이하의 경력을 가진 사람은 이런 정신적 고통에 시달리지 말고 해방되길 바란다. 평생의 짐으로 껴앉고 살 필요 없이 더 멋진 언어를 선택하고 이 고통에서 벗어나자. 아래 내용도 더 읽을 필요가 없다.

하지만 3년 이상의 시간을 PHP와 함께 했다면 아무리 PHP가 최악이더라도 쉽게 벗어날 수 없다. 커리어를 이쪽으로 계속 쌓아온 사람이라면 마치 기차가 탈선하는 것과 같은 공포감을 느낄 수 밖에 없다. 그래도 갈아타는 것이 좋다. 3년은 크게 느껴지지만 100세 수명이라면 겨우 3%만 할애한 것이다. 물론 커리어 전환에서의 공포는 경력이다. 앞서 적은 것처럼 어디서도 PHP가 대접받지 못하기 때문에 그 전환에서 챙겨갈 수 있는 경력이 대체로 적다. (대부분의 경우, 신입 취급이다.) 경력을 인정 받지 못하면 자연스레 연봉이나 제반 사항이 발목을 잡는다. 그래서 떠나는 결정은 쉬운 일이 아니다. 내 경우는 호주에서 빨리 정착하기 위해 기존 경력을 살려야 했기에 여전히 PHP 개발자로 남아 있다. 새로운 언어를 배워 새 출발 하는 일은 쉽지 않지만 분명 가치 있는 일이고 나에게 있어서는 이후 과제 중 하나다.

반대로 다른 언어를 바꾸는 이득이 크지 않아서 계속 PHP를 사용할 것이라는 분들은 계속 이쪽 길을 가는 데 고민이 없다. 이득이 작다고 생각하는 사람이라면 PHP를 3년 이상 사용하면서 큰 문제를 느끼지 못해본 사람일 경우가 크다. 물론 언어에서 문제를 느끼지 못했다면 그냥 계속 사용하면 된다. 대체로 이런 케이스는 평생 쓴다. 가장 큰 문제는 이런 분들 중에 학습에 무딘 경우가 많아 잘못되고 오래된 지식을 경험이라는 이름으로 덮어서 오용하는 분이 꽤 있다. 이런 분들이 주로 코드의 정당성을 부여하기 위해서 페이스북이 PHP를 쓴다, 워드프레스가 점유율이 가장 높다는 등의 이야기를 끌어다가 쓴다.

페이스북이 PHP 쓴다고 말할 때

모르는 걸 아는 것은 좋은 일이지만 자신이 무엇을 아는지 알지 못하는 것은 병이다.1 PHP에서 문제를 한번도 느껴보지 못한 사람이라면 어떤 언어든 다른 프로그래밍 언어를 학습하자. 프로그래밍 언어는 다양한 문제를 위한 다양한 해법과도 같다. 각종 php 포럼에서 시시덕거리며 유물과 같은 코드 스니핏 공유하지 말고, 말도 안되는 코드를 블로그에 공유하지 말자. 사람보다 코드가 오래 간다. 그리고 다른 언어나 프레임워크를 비하하는 일은 제발 하지 말자. 본전도 못 찾을 뿐더러 정신승리만 남을 뿐이다. 그리고 제발 공부하자. 내가 대충 짠 코드가 다른 사람을 죽일 수 있다. PHP 코드가 레거시이기 이전에 개발하는 사람이 레거시면 어떡하나.

만약 앞에서 이야기한 모든 고통과 괴로움을 덮고서 PHP 개발을 계속 하려고 한다면 그나마 할 수 있는 조언이 몇 가지 있다. PSR 기반의 코딩 가이드, 네임스페이스 사용 등 모던 PHP라고 불리는 것들을 빠르게 도입하는 것이 그중 하나다. 기초는 PHP The Right Way 한국어판부터 시작하자. 패키지를 작성하는 방법이나 패키지 작성 체크리스트를 보고 모르는 부분이 있다면 심화 학습하자. 앞서 간략하게 설명한 글인 당신이 PHP 개발자라면 2016년 놓치지 말고 해야 할 것들을 봐도 된다. 실무에 빠르게 적용하고 싶다면 Laravel 튜토리얼을 살펴보자. PHP Storm과 같은 IDE를 사용하거나 에디터에서 제공되는 PHP를 위한 플러그인을 찾아 설치하는 것도 잊지 말자. 커뮤니티도 중요하다. 모던 PHP 사용자 모임에 가입해서 살펴보자.

PHP 글 더 읽기


  1. 노자 도덕경 71장 지부지상 중 

Published by

haruair

사소한 이야기를 많이 나누고 싶어하는 해커. 티끌 같은 기술들이 세상을 바꾼다고 믿습니다.

25 thoughts on “떠나세요, PHP 개발자여. 아니면 잘하든가!”

  1. 제목이… 아주 자극적이고 괜찮네요^^. 저도 상당히 공감하는 내용입니다.

    저는 반대로 다른 언어에서 비교적 최근에 PHP 세계로 들어 왔습니다. 해서, 특별히 거부감없이 시작하게 되었는데, 여기저기 다녀보면 말씀하신 것과 같은 PHP 에 대한 불편함을 많이들 보이더군요. PHP 가 Web 에만 특화된 템플릿 엔진처럼 시작했지만, 제가 느끼기에 지금은 다른 범용 언어 대비 뒤쳐질 것이 별로 없는 것 같습니다.

    PHP 는 진화했지만, 사람들이 관성을 버리지 못하는 것이겠지요. 관성을 가진 개발자가 많고 리거시로 짜 놓은 서비스가 많은 만큼 바뀌기는 더 힘들겠지요. 이렇게 널리 퍼져 있는, 즉 시장이 큰 PHP 세계에 들어와서 지낸 지 3년 정도… 저는 용 꼬리보다는 뱀 대가리가 낫다는 속물적인 생각으로 계속 여기에 머물러 있습니다 허허~

    주인장님의 계몽 운동을 응원합니다. 그나저나, 저는 한국과 중국만 PHP 에 대한 배척이 심한 줄 알았는데, 호주도 그런가요?

    1. 코드가 레거시라고 사람까지 레거시가 될 필요는 없는데 의외로 그런 분들이 당당하게 물을 흐릴 때가 많은 것 같습니다.

      호주에서의 생활이 짧아 호주 분위기는 이렇다 하고 단언하기에는 어렵습니다. 제가 웹에이전시에 있으면서 겪은 경험으로는, 클라이언트가 각 플랫폼에 대한 이해도도 높고 경험 있는 분들이 많아서 요구사항에 맞는 언어와 플랫폼을 결정하는 편이라 전적으로 배척하는 경우와는 조금 온도가 다른 것 같습니다.

      appkr님 활동을 멀리서만 팬심으로만 보고 있는데 좋은 커뮤니티가 빨리 성장할 것 같아 늘 기대됩니다. 감사해요 🙂

  2. 회사에서 오래된 PHP 를 조금 현대식으로 천천히 바꾸는 (업무지만 그렇게 급하지 않은) 일을 진행하고 있는데, PHP를 해보지 않았어도 저도 모르게 뭔가 PHP에 대한 거부감이 있더라구요.

    글에서 언급한것 처럼 다른언어를 하다가, PHP 를 개발을 하게 되는 분이라면 다른언어에서 개발해 왔던 잣대? 기준을 좀더 엄격하게 PHP에 들이대는것도 좋은 방법인것 같습니다. 예를 들면, 단순히 어떤 기능이 PHP 에서 구현하려면 어떻게 해야할까가 아니라(이런 경우, 구글검색하면 뭔가 현대적이지 못한 방법을 쓸수도 있기에), 코딩 스타일이나 그런것 부터 먼저 있는지 확인하고 PHP를 익혀나가는게 좋은것 같아요. 그래서 저도 THE RIGHT WAY 나 HARUAIR 님 블로그에 있는 PHP 관련 글을 추천합니다. ㅎㅎ

  3. 혹시나하고 들어왔는데 역시나.
    남자로 살아가는 것 보다 여자로 살아가는게 더 낫다
    따위의 글.
    이케아 가구 백화점을 가는 것 보다 한샘 가구 백화점을
    가는것이 더 낫다. 수준의 글

  4. 자신도 php기반의 사이트를 운영하고, 그 곳에 이런글을 올려 놓는다는 것은 개그.

    방법론, 보안을 떠나 글쓴이가 워드프레스를 선택한 이유가 php언어 철학 그 자체기 때문.

  5. 윗 댓글러들 수준 알 것 같군요. 이 글의 본질은 PHP 개발자에 대한 비판이 아니라 쓸려면 제대로 쓰자라는 건데

    1. 글쓴이가 주관적으로 가이드쳐논 방법론 아니면 떠나라는 식의 논조를 비판한 겁니다. 이를 이해못할 정도면 님은 아주 그냥 난독증 문제를 넘어 이해력 결핍이신거 같네요. 쯧쯧쯧 그 이해력으로 개발은 잘하고 계세요?

      1. 그 가이드가 쓸모가 없나요? 다른 언어에선 지극히 정상적인 개발방법론인데
        저도 PHP와 PHP 개발자들을 험담할 생각은 없습니다. 다만 PHP 진영은 사실 많이 늦은게 사실입니다.
        이걸 자각하지 못하고 있다면 당신도 위와 같은 부류겠지요.
        그리고 당신보다 개발 잘하고 잘 먹고 잘 사니까 걱정 안하셔도 될듯

      2. 본인이 귀하의 댓글을 볼 때 비판했다고 느끼기 보다 그냥 비하한다는 느낌을 받았습니다. 귀하가 처음 댓글을 달 때 정확히 의사표현을 하지 않아서 귀하의 댓글에
        댓글 단 분이 덮어놓고 비판한 것으로 밖에 판단치 않았을 겁니다.
        본인은 이곳 게시글의 제목은 표현이 다소 강하다고 느꼈습니다만 글 내용(주인장의 글 뿐이 아닌 공인된 것으로 보이는 구체적인 가이드라인)을 볼 때 제목에 대한 타당성을 입증하고 있다고 판단합니다.

        귀하의 첫 번째 댓글 표현을 귀하의 의도대로 이해할 사람이 많겠습니까? 귀하의 의도와 다른 댓글이 달렸다는 자체가 저로써는 제대로 의사표현을 못했다고 판단합니다.
        아래 댓글(December 22, 2016 at 1:08 pm) 달으신 것처럼 의사표현을 제대로 해야 제대로 의사전달 되지 않습니까!
        귀하의 댓글에 있는 “인터넷에서 이 글만 우연히 보러 온 사람이 글쓴이 배경을 알게 뭡니까? 딱 이 포스트만 보고 판단하는거지.” 이 글 대로 제가 보기에는 귀하의 처음 댓글은 단순히 폄하하기 위한 글로 인식하기 딱입니다. 글 표현 조차 상대롤 깔보고 있지 않습니까!

        저는 2001년 경에 PHP와 MySQL로 프로그램을 1~2년 했었고, 정보 정리가 필요하며,
        어디서나 접근이 쉬운 웹기반이 좋을 것 같아 다시 PHP를 사용하려고 하는 입장인데 이 게시글은 저에게 참고가 됩니다.
        이 글은 전체적으로 쭉 읽어 보고 자료 링크를 봤을 때 주장에 대한 근거를 제시하고 있습니다. 링크 자료를 숙지하지 못했기 때문에 얼마나 타당한 근거인지는 모르겠습니다.

        마이크로프로세서 프로그램(펌웨어)과 펌웨어와 연동하기 위한 윈도우프로그램을 작성하면서 체계적인 프로그램 작성을 위해 프로그램 틀 잡는 것이 얼마나 중요한지 많이 느끼고 있습니다.
        처음 보는 분들은 ‘이 방식 아니면 그만둬라’ 라는 식의 글이 매우 거부감을 느낄 지 모르겠습니다. 저 역시도 이 글의 제목이 지나친 일반화란 생각을 합니다만, 기존의 것을
        꼭 바꾸어야 한다는 것을 강조하기 위해 정하신 것이라 생각하고 있습니다.
        제가 댓글 적으면서 참고 링크를 약간 보니 여러 사람에게 서비스 하기 위해서는 분명 기존의 것을 개선해야 함은 알 수 있습니다.(보안 문제 등)

        아래 댓글을 보니 주인장님께서는 비판이 타당하면 잘 받아들이시는 것 같습니다.

        글 내용에서 주인장님의 주장을 뒷받침할 예를 들어주시고 PHP를 잘 하기 위한 구체적인 예를 들어주시면 더욱 좋겠습니다.

  6. A처럼 개발하자. 이게 대세다. 그렇지 않으면 떠나라.
    따위의 글을 두고 개발자 혹은 개발을 하는 사람들이 좋다고 공감! 공감! 이러는게 정상이십니까? 그럴꺼면 개발하지마시고 공식과 답이 정해진 산수 놀이나 하시던지요

    지금 이 글쓴이가 제시한 방법론 위에서만 인정 하고 나머지른 배척하는 논조 자체가 php를 언어로 보는 고찰이 없었다는 겁니다.

    아무리 엉터리로 짠 코드라도 잘 돌아가고 작동했기 때문에 php가 널리 보급되고. 쉽게 쓰였던 이유. 즉 php어떻게 생태계를 확장했는지 아실텐데요.

    그런 내용과 이해를 충분히 설명하지 않고 똥을 싸지르니 나를 낳게해준 부모님을 버리자! 따위의 글밖에 안되는 겁니다.

    인터넷에서 이 글만 우연히 보러 온 사람이 글쓴이 배경을 알게 뭡니까? 딱 이 포스트만 보고 판단하는거지.

    1. 제가 이 글을 작성할 때는 php를 더 좋고 편하게 사용할 방법도 있으니 기왕 사용하는 김에 새로운 개발 환경도 배워보고 기존 방법에 안주하지 말자는 취지에서 작성했습니다. 어떤 부분에서 php를 언어로 보는 고찰이 없다고 느끼셨는지, 배척한다고 느끼셨는지 솔직히 잘 모르겠습니다. 계속 해오던 방식대로 개발하더라도 새로운 방식과는 어떤 차이가 있고 장단점이 있는지 인지하고 있는 것과 그저 이미 잘 동작하니 새로운 방식은 관심도 갖지 않고 답습하는 것은 분명 다릅니다. 그것은 php가 아닌 어떤 언어/개발방법론이라도 언급할 만한 주제라고 생각합니다.

      그리고 이 글은 어디까지나 제 생각이고 의견이라서 부족한 부분이 많습니다. 다르게 생각하는 부분은 덧글로 알려주시면 저에게 많은 도움이 될 것 같습니다. 부족한 글 읽어주셔서 감사합니다.

  7. “반대로 다른 언어를 바꾸는 이득이 크지 않아서 계속 PHP를 사용할 것이라는 분들은 계속 이쪽 길을 가는 데 고민이 없다. 이득이 작다고 생각하는 사람이라면 PHP를 3년 이상 사용하면서 큰 문제를 느끼지 못해본 사람일 경우가 크다. 물론 언어에서 문제를 느끼지 못했다면 그냥 계속 사용하면 된다. 대체로 이런 케이스는 평생 쓴다. 가장 큰 문제는 이런 분들은 학습에 무딘 경우가 많아 잘못되고 오래된 지식을 경험이라는 이름으로 덮어서 오용한다는 점이다. 이런 분들이 주로 코드의 정당성을 부여하기 위해서 페이스북이 PHP를 쓴다, 워드프레스가 점유율이 가장 높다는 등의 이야기를 끌어다가 쓴다.”

    ————————————————————————————————
    가끔 좋은 정보 잘읽고 갑니다. 허나 글쓴이님 글중 윗글은 일반화의 오류라 보여지며 자신의 경험 내지 주위환경만으로 편견을 가지신건 아닌지 싶습니다.

    특히 php 를 오래 사용하면서 문제를 별로 느끼지 못하는 개발자들은

    “학습에 무딘 경우가 많아 잘못되고 오래된 지식을 경험이라는 이름으로 덮어서 오용한다는 점이다”

    라고 언급하신점은 매우 주관적(물론 글쓴이님 공간의 개인 포트팅이니 당연하겠지만)이며
    해당 개발자들을 매도하는것으로 비줘질만큼 자극적인듯 합니다.

    저또한 PHP 개발을 15년정도 하면서 여러가지 장단점을 느껴왔고 다른 언어를 만지면서도 역시 수많은 장단점을 느껴왔습니다.

    허나 PHP를 자주 접하고 애용하는것은 나름 장점들을 높이 평가하기 때문이죠.
    글쓴이님 언급대로 10년 이상 만지고 있어도 제가 학습이 무디고 잘못된 지식과 경험을 가지고 있을지 모르겠지만요.

    합당하고 정당한 근거없이 위처럼 자극적인 문구를 본 저로서도 기분이 썩 유쾌하지는 않습니다.

    개인 공간의 포스팅인데 트집을 잡는거 같아서 죄송스런 마음도 들지만 글쓴이님도 위에 언급된 관점을 전환해보시면 어떨까 생각됩니다.

    그럼 좋은 하루 되시고 언제나처럼 좋은 정보 부탁드립니다.

    1. 이 글은 다른 글의 반론 성격으로 작성한 글이었습니다. PHP는 오래된 코드를 사용해도 문제가 없다는 식의 표현에 대응해서 썼고 원 글의 표현에 맞춰 작성하니 그런 표현을 사용하게 되었습니다. 지적해주신 부분은 수정했습니다. 피드백 감사드립니다.

  8. 벌써 10년 이상 PHP 쓰고 있네요. PHP 프레임웤 쪽에서 좀 늦은 건 사실입니다. JAVA 쪽에서 이미 쓰던 DI 개념이 몇 년 후에 PHP 쪽에 도입되더라구요.(Java spring VS php symfony ) 요즘에 OOP 다들 비슷비슷하고 프레임웤들도 워낙 좋아서, 개인적으로 좋아하는 언어 쓰면된다는 생각이 드네요, 갈아타기도 쉽구요. 개인적으론 Python + Django + PyCharm 좋아합니다.

    아마 PHP 싫어하시는 분들은 이런 코드를 만나지 않았나 합니다.
    <?php
    include "i_hate_10_depth_include.php";

    정말 위 코드를 IDE 없이 관리하면 나중에 머리 터집니다 ㅋㅋ

    PHP 계속 하실꺼면 Symfony Framework 추천합니다. Laravel 보다 배우는데 시간이 좀 더 걸립니다. Laravel 도 Symfony 쓰고 있네요. TDD 도 좋습니다.

  9. 페북타고 와서 읽은 글입니다만 제목만 자극적인걸 떠나서 내용이 php개발자들에게 도움될만한 어드바이스를 주는 내용이 아니라 미천하고 한심한 상황이니 공부해서 본전이라도 찾아라라는 듯하네요. 태그만 봐도 그래요. 평생 까이는 php. 전 jsp, php 전부 하고 있습니다. 안드로이드 ios는 물론이고요. 소규모 si하면서 스타트업 아이템 하고 있는데요. Php가 왜 가루가 되도록 까일만한 물건인지도 전 잘 모르겠네요. 누군가에게 문제를 제시하고 바른 방향으로 인도하시려고 이런글을 쓰시는거면 기승전결이 명백해야합니다. 마지막에 글보면 아주 짧게 어떤 책봐라. 라라벨 한번 알아봐라. 이게 어떻게 해결책이 될 수 있을까요? 전 라라벨 4.버전대부터 써서 지금까지 쓰고 있고 주변인들한테 라라벨을 권유해주고 있는데도 불구하고 글쓴이의 라라벨 한번 봐라라는 결론이 뭘 근거로 도출되었는지 잘 모르겠습니다. 글쓴이는 타 언어에 비해 어떤 문제를 느끼셨나요? 이 부분에 대해 같이 설명하지 않으신다면, 일부 폐쇄적인 커뮤니티의 질문글에 “책보고 공부좀 하세요”라는 답글과 똑같다고 봐요. 우리가 스택오버플로우에서 많은 도움을 받는걸 생각한다면 이런 식의 접근은 옳지 않다고 봅니다. 비록 제 댓글이 공격적이지만 양해부탁드리고요, 배우고자하는 입장에서 글 남깁니다.

    1. 마지막 부분에는 가이드가 될 만한 부분을 충분히 레퍼런스로 남겼다고 생각하는데 많이 부족했나봅니다. 이 글은 php의 단점을 말하는 글이 아니라 php의 최근 개발 방식이나 도구를 안내하기 위해 작성된 글입니다. 저도 php로 10여년 이상 개발하고 있고요. 기승전결이 명확하지 않다면 제가 글을 잘 못쓰기 때문인 것 같아 죄송스럽습니다. 이 부분을 좀 더 설명해주시면 제게 도움이 될 것 같네요. 의견 남겨주셔서 감사드립니다.

  10. 읭.. 90년대에 C부터 시작해서 최근 파생된 신생언어 제외하고는 안해본 언어가 거의 없는데 php가 딱히 문제가 있다는 생각은 들지않던데. 언어야 목적에 맞춰서 선정하는거고.. 언어가 좋고 나쁘고를 따질게있나;

  11. CI 거쳐서 Laravel 학습 중인데 구글링 와중에 눈이 머물러서 들어와봤습니다.

    저는 Android Java를 공부하다가 뜻하지 않게 PHP 를 시작해서 현재 5년차 입니다.
    초안은 보지 못했지만 본문 내용에 굉장히 수긍하는 1인..

    배운게 도둑질이라고 ㅋㅋ 다른 언어로 갈아타보려는 마음도 많이 가져봤는데
    익숙하기도 하고 미숙하기도 한(?)지라 좀더 해보고 싶은 마음에 떠나지 못하고 있습니다.

    확실히 라이센스 비용도 들지 않고 초기 학습에 기간도 짧지만
    거기에 머무르면서 같은 패턴의 반복만 하며 숙달되고 이것을 ‘경험’ 이라고 하는 건 잘못된 것 같습니다.

    어쩌면 서로 요구하는 부분의 절충 때문에 수준을 더 끌어올리지 못했을지도 모르지요.

    이미 2년도 전에 이슈가 된 프레임웍을 이제서야 봇물터진 듯 배우는 것도 환경의 한 요소라고 생각됩니다.

    어쨌거나 ‘잘하면 된다’ 는 것은 언어의 문제가 아니라 개인의 의지와 노력에 달린 것 같습니다 ㅎㅎ

    * PHP의 천대받는 현실이 국내에 한정인지 알고 싶었는데
    아쉽게도 댓글을 봐도 그런 부분은 알지 못하겠네요.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.