이제와서 PHP로 개발해야 하는 이유

 In Programming

TL;DR

PHP는 언어 정책이 매우 보수적이기때문에 현재 개발하는 소스가 앞으로 버전업 되면서도 그대로 동작할 가능성이 높다. 요즘 웹은 성능이 상향 평준화되었기 때문에 굳이 신기능을 쓰기 위해서 다른 언어/프레임웍을 선택하는 건 의미없는 일이다. 그 시간에 본업에 집중하자. 보안이나 성능 관련 이슈는 PHP가 알아서 해 줄 것이다.

 

풀스택을 지향하는 잡식성 개발자인 저에게도 편애하는 언어가 둘 있는데 PHP와 Javascript입니다. Javascript는 요즘 대세라고 해도 과언이 아닌데다 node.js가 나오면서 서버 플랫폼으로도 각광을 받고 있습니다. 그에 비하면 PHP는 안티가 무척이나 많은데, 이렇게 인식이 안좋은 언어는 classic asp이외에 본적이 없습니다. 얼마나 인기가 없냐고 하면 예전에 이런 에피소드도 있었습니다. 협력회사 담당자가 저희 회사의 인력 구성이 어떤지 물어보면서, 그 회사에 웹개발자는 있나요? PHP 개발자 말구요. 라고 했었습니다. (PHP 전문가가 한명 있긴 있었죠. 바로 저..) 이 정도로 안티가 많으면 마켓쉐어도 미미해야 할텐데 2015년 12월 기준 서버사이드 언어로서의 사용률이 81.7%이고, 전 세계 사이트의 25.8%가 워드프레스를 쓰고 있습니다. 이런 걸 이율배반이라고 하던가요.

PHP만이 가지고 있는 언어적 특성이 이런 상황의 근본적인 원인이 아닐까 합니다. 개발용어로 설명하자면 컨트롤 로직과 프리젠테이션 레이어가 분리되어있지 않다는 것인데, 쉽게 말하면 PHP 코드와 html이 뒤섞여있다는 것이죠. PHP의 템플릿적인 특성덕분에 개발을 잘 모르고도 코딩이 가능하지만, 개발을 잘 안다면 안티패턴을 돌아가느라 코딩하기가 좀 귀찮아 집니다. 덕분에 다른 언어들 보다 잘못 설계된 코드와 만날 가능성이 높죠. 왜 PHP가 이런 – 매력적인 – 특징을 갖게 되었는지에 대해 이해하기 위해서는 html 초창기 시절의 분위기부터 설명해야 할 듯 합니다.

다들 아시다시피 html은 평범한 텍스트 파일이기에 초기에는 텍스트 에디터로 제작했습니다. vi나 emacs나 아마도 notepad같은 걸 썼겠죠. 시간이 지날수록 다이나믹한 컨텐츠에 대한 니즈가 커졌고 이때 등장한게 CGI(Common Gateway Interface)입니다.

CGI는 거의 모든 언어로 작성이 가능합니다. 심지어는 COBOL로도요.. 웹초기에는 개발자들이 DB나 텍스트를 다룰때 쓰던 C나 Perl로 개발하는게 일반적이였습니다. 90년대 후반에는 JAVA기반의 Servlet도 나왔습니다만 pro*c와의 연결이 여의치 않아서 결국 C로 데이터베이스를 다루던 기억이 있습니다. 아무튼 CGI를 설정하고 프로그래밍하고 컴파일하는 작업은 딱히 어려운 일은 아니지만, 어쨌든 무조건 개발자가 필요했습니다.  초창기에 웹을 다루던 사람들은 대부분 전문가라서 별 문제가 안되었지만 점점 한계에 부딪히게 됩니다. PHP는 이런 시대적 상황을 배경으로 탄생했습니다. html파일에 간단히 코드를 넣는 것만으로누구나 쉽게 동적인 웹사이트를 만들수 있게 되었습니다. 게다가 당시에는 CGI방식보다 월등하게 속도가 빨랐습니다. fastcgi를 설정해야 PHP와 비슷한 속도가 났는데, fastcgi는 문법이 달라서 개발이 상대적으로 까다로웠습니다.  지금에서야 fastcgi가 일반화되고, PHP는 성능문제로 까이고 있지만 그 당시에는 가히 혁명적이였죠. 폭발적인 PHP의 인기덕분에 CGI 방식에서 template을 이용한 방식으로 웹트렌드가 크게 바뀌게 되고 asp나 jsp같은 아류작이 나오는 계기가 됩니다. 사용하기 쉬운 템플릿이 웹개발의 필수라는 것을 모두가 알게 된 것이죠.

서버 프레임웍의 트렌드는 2000년대 초반 Java진영에서 Struts가 에 나오면서 MVC로 바뀌게 됩니다. MVC는 재사용성이 매우 뛰어났기 때문에 순식간에 엔터프라이즈 시장을 장악하게 됩니다. 2005년에 나온 Ruby on Rails는 Struts및 그전까지의 구세대 MVC프레임웍의 문제점이였던 복잡한 xml설정과 사용 방식을 Convention over Configuration으로 깔끔하게 해결한데 이어, 줄어든 복잡도만큼 다양한 최신 기술을 마구 구겨 넣어서 인기를 끌게 됩니다. 지금 생각해보면 어째서 그렇게 프레임웍의 설정이 복잡해야했는지 이해가 안가지만, 2000년대 초반은 정말 아무 것도 정해진게 없었던 웹개발의 매드맥스 시절이였습니다. RoR 이후로 시장에 수많은 유사 MVC프레임웍이 등장하고 서로 영향을 주는 상황으로 발전하게 되었습니다. RoR이 승승 장구하던 와중에 PHP는 4에서 5로 넘어가면서 스텝이 살짝 엉키더니 6.0을 만든다고 삽질하다가 시장의 흐름에서 완전히 소외되었습니다. 그런 이유로 2000년대 후반부터 PHP개발자에 대한 인식은 최악이 되었습니다.

한때는 어디가서 PHP 개발한다고 하기도 부끄러운 시절도 있었는데, 요즘 들어 인식이 조금씩 바뀌고 있습니다. 그렇게 된데는 페이스북과 워드프레스가 가장 큰 역할을 했습니다.

페이스북이 창립했을 당시인 2004년의 PHP는 완전 핫한 언어였지만, 회사가 세계규모로 커지고 그 사이 PHP의 인기가 식었음에도 페이스북은 꾸준히 PHP를 사용했습니다. IT 업계 큰형님이 PHP를 밀고 있으니 구글이 크롬을 통해 밀고 있는 Javascript만큼 백이 든든합니다. 이에 비하면 Ruby는 서포트가 많이 소박하죠. 게다가  페이스북은 PHP자체의 개선에도 많은 노력을 들여서 hack이나 hhvm같은 오픈소스도 만들었습니다. 그 결과로 나온  PHP7 덕분에 이제 PHP가 성능이 부족하다는 느낌은 없어졌습니다. 재밌게도 TechEmpower의 작년 framework benchmark를 보면 PHP+PHP-FPM+NGINX의 성능이 이미 스크립트 언어 중에 적수가 없을 정도로 좋았습니다. 이때의 PHP는 5.6인데도 말이죠. hhvm은 테스트 도중에 문제가 생겨서 결과에 반영이 안되었지만, PHP7으로 같은 벤치마크를 한다면 거의 탑텐 안에 들어가리라 생각됩니다. 이 정도 성능이 나오는 스크립트 언어가 지금까지 있었던가요. python이나 ruby는 GIL때문에 근본적으로 불가능한 일이죠.

워드프레스의 인기는 날이 갈수록 점점 더 높아만 가고 있습니다. 무료 플러그인과 마켓에서 60달러 정도에 살 수있는 테마를 사용하면 간단하게 프로페셔널한 사이트를 만들수 있고, 자동 업데이트 덕분에 – 커스텀 코드를 넣지 않는 이상 – 언제까지라도 무료로 서포트를 받을 수 있습니다. 최소 3~4명이 만들어야 할 사이트를 혼자서 고퀄로 뚝딱 만들 수 있으니 들어가는 비용이 1/3이하입니다. 이런 플랫폼이 인기가 없으면 그게 더 이상한 일입니다. 게다가 웹디자인도 플랫+반응형으로 통일되고 있고, 낮은 버전의 IE에 대응할 필요도 없어졌기에, 워드프레스로 제작한 사이트의 퀄리티는 나날이 눈부시게 높아지고 있습니다. 왠만한 기성품 웹사이트가 따라갈 수 있는 수준을 한참 뛰어 넘었습니다.

이런 워드프레스의 코어가 PHP 5.2를 기반으로 하고 있다는 것은 시사하는 점이 매우 큽니다.  5.2는 2006년에 발표되었고 5.3의 출시가 늦어지면서 웹사이트및 호스팅 업체에 광범위하게 채택된 버전이고, 현재도 12%의 점유율을 보여줄 정도로 바퀴벌레같은 생명력을 자랑합니다. PHP 5.2의 출시가 이미 10년전인데다 공식적인 서포트도 끊긴걸 생각하면 워드프레스의 개발 방법론은 매우 보수적입니다. 그런데 이런 보수성은 PHP라는 언어 자체의 특징이기도 합니다. PHP 5.2의 코드는 별다른 수정없이 7.0에서도 잘 돌아가니까요. 어떠한 언어의 웹프레임웍도 이렇게까지 다양한 버전을 서포트하는 경우는 없습니다. 예를들어 Java는 버전별로 클래스의 포맷이 달라서 Java8로 만든 라이브러리가 Java10에서 실행된다는 보장이 전혀 없습니다. PHP 보수성은 웹개발사에서 매우 예외적이고 PHP의 확고한 철학이 있기에 가능한 일입니다.

PHP의 아버지인 Rasmus Lerdorf씨는 무척 재미있는 분인데 한 컨퍼런스에서 이렇게 말했습니다.

I actually hate programming, but I love solving problems. 나는 프로그래밍은 싫어하지만 문제해결은 좋아한다.

이런 실용적인 철학은 PHP의 곳곳에서 발견됩니다. 예를 들자면 PHPDoc을 이용한 Type Hinting은 유용한 기능이지만 코드가 엄청 지저분해 보이는 단점이 있습니다. Python같은 언어는 이 기능이 없거나 일부분만 구현했는데, PHP에서는 그냥 지저분한 채로 구현합니다. 직접 써보면 역시 PHP는 짱이라는 걸 인정하지 않을 수 없습니다.

이제와서 PHP를 사용해야 하는 이유는 웹의 생태계에 있어서 더 이상 언어의 버전이라던가 프레임웍의 구조적인 아름다움이라던가 하는 요인이 개발자가 생각하는 것 만큼 중요하지 않기 때문입니다. 유저들은 보안적으로 완벽하고 속도가 빠른 사이트에서 양질의 컨텐츠를 다양한 디바이스를 통해 보고 싶을 뿐입니다. 10년전 기술인 PHP 5.2로도 충분히 그런 사이트를 만들수 있다는 것이 워드프레스를 통해 증명되었습니다. 비록 글로벌 변수를 쓰는 등 내부적으로 지저분한 부분이 있기는 하지만요. 게다가 같은 코드를 PHP 7.0에서 돌리기만해도 속도가 두배로 빨라집니다. 현 시점에서 일부러 5.2호환으로 만들 필요는 없지만, 지금 만드는 코드가 10년후의 최신 환경에도 동작한다는 건 PHP 생태계가 아니면 상상도 못할 일입니다. 영속적으로 발전하는 코드라니 완전 멋지지 않나요?

앞으로의 웹은 오랜기간 쓰여지면서 최대한 많은 사용자를 모으는 플랫폼이 주도하게 될 것입니다. 그런데 아직도 타 언어/프레임웍에서는 쿨한 신기능 추가에만 신경을 쓰고 있습니다. 대부분의 메이저 프레임웍이 1년에 하나씩 메이저 업데이트를 발표하지만(그보다 더 짧은 경우도 있습니다) 워드프레스처럼 버튼 하나만 눌러서 업그레이드 되는 경우는 없습니다. PHP가 아니니까, 철학이 다르니까 불가능한 것입니다. (그런 의미에서 기능을 최소한으로 줄이고 하위호환을 중시하는 GO는 PHP와 비슷한 철학을 공유하고 있습니다.)

이제라도 늦지 않았습니다. PHP로 개발자 중심이 아닌 사용자와 웹 생태계 중심의 개발을 시작해 보세요. 컨트롤 로직과 프리젠테이션 레이어가 혼합되어 생기는 문제는 MVC패턴을 적용하면 쉽게 해결됩니다. 아직 매뉴얼이 제작 중이지만 PHP 기반의 no-framework framework인  usa-framework으로 시작하는 것도 괜찮은 선택이 될 것입니다. 잘 모르는게 있으시면 저에게 연락주세요. 언제든 환영입니다!

 

Recent Posts
Showing 94 comments
  • 웅파
    응답

    양날의 검인 것은 확실합니다.
    어쩌니 저쩌니 해도 피해야할(?) 포인트 잘 알고 사용하면 개발속도 및 퍼포먼스를 따라오기가 힘들죠.
    기술하신 역사들을 알지 못하는 개발자들은 현상만으로 까죠. ㅎㅎ

    • 박 종희
      응답

      future-proof(미래 호환) 코딩이란 꽤 복잡하고 어려운 개념이죠. 어찌보면 점성술에 가까운 이야기인데..
      이해 못하는 분들도 많은 듯하지만 앞으론 이런 분야도 중요하게 생각하는 분들이 생기리라 믿습니다.

    • 응답

      웅파님 안녕하세요~~!

  • 이명성
    응답

    아주 잘 읽었습니다.
    오랫동안 깊게 관찰하신 것을 명료하게 적어 주신 글이군요.
    감사합니다. ^^

  • 이지호
    응답

    저는 PHP로 작성된 애플리케이션이 버전이 높아져도 그대로 동작한다는 의견엔 동의할 수 없네요.

    PHP 5.2 버전 기준으로 작성된 애플리케이션이라고 해도 PHP 7에서 코드의 수정없이 완전히 동작한다고 보기 어렵고 특히나 PHP 4 버전 기준으로 작성된 애플리케이션은 심각한 하위 호환성 문제를 겪을 수 밖에 없습니다.

    저는 PHP에서 파이썬으로 건너온 개발자이지만 PHP를 선택하지 않게된 큰 이유는 몇 개가 있습니다. 대표적으로 버전별 문서가 제공되지 않는다는 겁니다. 이 덕분에 함수를 사용하려고 할 때마다 PHP 사이트를 확인해보면서 해당 함수가 어느 버전에서 유용한지 확인해야 합니다. 2번째 문제는 PHP를 컴파일 할 때 활성화해야지만 사용할 수 있는 기능들이 있으며 PHP로 개발된 애플리케이션 자체를 테스트하기 위해서 nginx가 됐든 아파치가 됐든 연동 절차를 한번은 구성해야 한다는 겁니다.

    이 부분에 대한 해결책으로 APM 같은 솔루션을 반론으로 제기하실 것 같은데 APM 솔루션이 비교적 괜찮다는데는 동의합니다. 그러나 이들 프로그램을 사용후 제거해야 함은 물론 특정 PHP 버전과 특정 Database와 특정 웹 서버에 묶어 개발자에게 그리 좋은 영향을 미친다고 보기 어렵습니다.

    최근의 PHP는 언어 자체적 특성 뿐 아니라 객체지향에 있어서도 뚜렷한 변화를 보이고 있다고 보입니다만 여전히 PHP를 웹 프로그래밍 언어로 선택해야 하는가는 좀 다른 논의로 보여지네요.

    그리고 자바 스트럿츠나 스프링은 본질적으로 서블릿이 밑에 깔린 구현체입니다. 말씀하신 것과 같이 MVC 패턴을 적용하는 것이 PHP에서 어려운 일은 아니지만 글로벌 변수를 남용하는 일이 높은 사용률(페이스북과 워드프레스에 의해)에 의해 가려지긴 어려운 단점이기도 합니다.

    또 서버측 언어를 선택하는 일은 사용하기 쉬운 언어에서 정해진다고 보여집니다. 성능을 예로 든 결과 문서에도 테스트 가능한 모든 조합을 사용해 결과를 뽑아낸 것 같진 않더군요. 즉 어느정도 신뢰가능한 자료이긴 하겠으나 PHP가 완전히 우수하다고 보기 어렵고 성능상의 비교를 행한 것 뿐 어떤 코드가 사용되었는지 알 수도 없습니다.

    사실 이제와서 PHP로 개발해야 하는 이유보다 이제와서 PHP를 들여다볼 수 있는 이유가 더 적합하지 않나 싶네요.

    • 박 종희
      응답

      PHP4는 잊어주세요. PHP는 5.2에서 그나마 쓸만해졌고 5.3에서 closure가 생기면서 제대로 된 모던 언어의 기능을 갖게 되었다고 봅니다. wordpress에서 closure를 안쓰는건 좀 아쉬운 일이지만 직접 진행하는 프로젝트에서는 잘 쓰고 있습니다. APM솔루션이야기를 하셨는데 5.4에서부터 성능은 좀 떨어지지만 built-in web server가 사용이 가능합니다. 여차하면 VM에 docker같은 걸로 환경을 잡아서 개발하면 되는 일이기도 하고요. 글로벌 변수의 남용은 언어의 문제라기보단 개발자의 문제겠죠. 성능 문제는 PHP도 나쁘지 않다, 정도로 이해해주세요.
      스프링이나 장고같은 웹 프레임웍으로 오랫동안 개발하다보면 레거시 문제에 봉착하게 됩니다. 예를 들면 지금와서 django 1.4나 Spring 2.5로 개발한 코드를 수정한다고 생각해 보세요. mybatis도 아니고 ibatis를 썼던 시절입니다. 수정이고 뭐고 그냥 새로 만드는게 더 빠를껍니다. 만약 비슷한 시기에 PHP 5.3으로 작성한 코드라면 어떻게든 개선의 방법을 찾아낼 수 있었을껍니다. PHP로 타 언어만큼 생산성있게 개발하면서 future-proof(미래 호환)까지 고려하는게 절대로 쉬운 작업이 아닙니다. 오히려 무척 어려운 작업입니다. 하지만 해볼만한 가치가 있는 일이라고 생각합니다.
      끝으로 한마디 더하자면 제가 PHP를 쓰자는 것은 오랫동안 검증되어온 과거의 코딩방식으로 가자는게 아닙니다. 개발의 다양한 생태계에서 봤을때 서버의 언어를 보수적으로 잡는게 클라이언트를 비롯한 전반적인 개발 환경을 좀 더 자유롭게 할 수 있다는 것입니다. 앞으로는 클라이언트쪽이 발전하면서 서버에서는 모델과 컨트롤러만 담당하게 될 것입니다. 그런 트렌드에 PHP가 잘 맞습니다. GO도 좋고요.

      • 이지호
        응답

        서버의 환경을 잡는 일에 VM에 도커를 올린다는 말이 PHP로 개발을 시작하는 이에게 그리 적합한 방법이라는 생각은 들지않네요. 좀 더 프로그래밍을 만든이에게 접근이 쉬운 방법일 순 있겠습니다. 그리고 서버의 언어를 보수적으로 잡는것에 대해 말씀하셨는데 PHP나 Go만큼 보수적인 언어가 없는 것도 아닙니다. 파이썬도 2에서 3으로 올라오기까지 꽤 오랜시간이 걸렸습니다. 그만큼 변화의 폭도 크지만요.

        저도 앞으로 클라이언트쪽이 지금보다 더 발전하리란걸 부정하지 않습니다만 손에 익은 도구을 잠시나마 내려놓고 PHP를 쓰자는게 다른 진영에 있는 개발자에게 설득력이 있지 않을 것 같습니다.

        아, 그리고 PHP를 쓰자는게 과거의 코딩 방식으로 가자고 말하는거라고 이해하진 않았습니다. 웹 애플리케이션 아키텍처가 MVC로 돌아선지 오래됐고 자바스크립트 덕분에 MVVM에 맞게 기능하기도 하니까요.

        개인적으로 여전히 스프링 3에 iBatis를 사용하는 프로젝트를 하고 있지만 한마디로 작업량만 많지만 이런 구성 방식조차도 생각보다 많이 사용된다는 것도 문젭니다. PHP4를 잊는 일은 당연히 해야겠지만 개발자들 생각만큼 PHP를 호스팅하는 회사들이 능동적으로 움직이고 있지 않다는 것도 단점입니다.

        말씀하신 것처럼 개발의 다양한 생태계를 고려했을때 개인적으론 자바스크립트의 약진을 좋게 볼 수도 있지만 전통적인 언어를 다시 볼 필요성도 있겠습니다만 하나의 대안 정도로 보는게 좋지 않나 싶네요.

        • 박 종희
          응답

          저는 새로 시작하는 분이 아니라 저처럼 오랫동안 웹개발을 해온 분들이 고민하고 있을만한 문제에 대해 이야기하는 것입니다. PHP라고해서 초보자들이 쓰는 언어라고 생각하셨나 보네요. 그리고 2016년 현재 PHP4를 채용한 웹 호스팅 업체는 거의 없는 것으로 알고 있습니다. 전세계적으로 보면 1.2%정도 되네요. http://w3techs.com/technologies/details/pl-php/all/all 4.x지원 보다는 몇년안에 5.2 지원이 필요없어지게 되는 순간이 더 기대가 됩니다.

          • 이지호

            PHP라고 해서 초보자를 생각했던 건 아닙니다. PHP로 만들어진 고급 프로그램도 많으니까요. 저도 오랫동안 웹 개발 변두리에서 웹 개발을 해왔다보니 저 역시도 같은 고민을 해보지 않은게 아닙니다.
            저는 그런면에서 파이썬을 선택했던 거구요. 분명히 PHP가 좀 더 약진하겠죠. 그렇다고 해서 PHP 버전이 올라가기 때문에 영속성 있는 개발이 될것이라는 생각은 안합니다. 위에서 언급하신 것과 같이 5.3이라면 어찌해볼 방법이 있다고 말씀하신 것처럼요.
            파이썬 flask로 3년째 개발하고 있는 지금도 앞서 언급한 매뉴얼이나 개인적으로 불편하다고 생각했던 문제가 있었구요. 어찌됐든 PHP를 깍아내리고 싶은 생각은 없습니다. PHP가 웹 애플리케이션 마켓에서 선호도가 높은 것도 사실이니까요.
            어디까지나 취향 문제라고 언급하고 싶은 것 뿐이고 이 글의 타이틀도 웹 개발에서 PHP를 다시 살펴봐야 할 이유 정도로 보고 있는 것입니다.

          • 박 종희

            분명히 PHP에 불편한 점은 있죠. 황당한 부분도 있구요. 하지만 PHP의 실용적인 철학이 저는 좋습니다. 그런 면을 다시 봤으면 하는 마음에 제목을 그렇게 지은 거고요. 라스무스 러도프씨가 한 이야기를 보시면 PHP의 철학이 대충 어떤 건지 아시리라 믿습니다. https://en.wikiquote.org/wiki/Rasmus_Lerdorf 찬성하지 않는 분들도 많겠지만요.

  • 박민권
    응답

    쉽게 꺼내기 어려운 글을 쓰셨군요.
    어느정도 경력이 있는 개발자라면 이 글의 의견은 ‘틀렸다’라고 말할 것 같습니다.
    저는 전반적으로 공감 합니다.
    좋은 글 잘 읽었습니다. 감사합니다.

  • dlaky
    응답

    아 이런 떡밥은 물면 안되는 것을 알면서 물게 되네요. 워드프레스가, 페이스북이 php 를 사용하는 것, 그리고 php 언어의 점유율이 높은 것은 php 를 사용해야 하는 이유의 근거가 전혀 될 수 없습니다. php 라는 언어가 욕을 먹는 이유는 그런 겉보기 식 문제가 아니라 언어 디자인 자체가 문제가 있기 때문입니다. 다른 언어를 사용하는 개발자들은 이미 인지하고 있는 문제점이지만 php 를 사용하는 개발자들만이 그것을 인지하지 못하기 때문에 이것은 비극이라기보다는 희극에 가까운 일입니다.

    php, 잘못된 디자인의 프랙탈이라는 문서 일독을 권해 드립니다.

    http://noraesae.github.io/PHP-a-fractal-of-bad-design-kr/

    • 박 종희
      응답

      떡밥을 물어주셔서 감사하고요, 저는 ASM, C, C++, Java, VisualBasic, Perl, Javascript, PHP, Python, Ruby, Lua, Objective C, swift, Go…로 프로그래밍 경력이 있습니다. 올려주신 문서는 이미 예전에 읽었습니다. 제가 말하고 싶은건 PHP언어 설계가 문제가 없다는 이야기가 아니라, 타 언어의 레거시를 생산하는 업데이트 정책에 문제가 있다는 것입니다. 말하자면 이런 것입니다. 중고 혼다 시빅으로 충분한데 왜 매년 BMW를 바꿔타려고 하는가? 개발 프레임웍을 선택할때 들어가는 비용뿐만이 아니라, 다년간의 운영 관리 비용을 생각해보면 보수적인 PHP가 훨씬 경제성이 있다는 이야기입니다. 물론 거기엔 잘못된 디자인의 PHP 문법에서 best practice를 찾아내야 하는 리스크가 분명 존재하지만요.

      그리고 솔직히 Python의 람다는 짝퉁이잖아요. 요즘 같은 비동기가 지배하는 세상에 람다를 지원 안하는 언어가 존재한다는게 무척 신기한 일입니다. PHP는 2009년에 나온 5.3에서부터 제대로 지원하고 있습니다. Java는 JVM버전이 바뀌면 class를 아예 인식을 안하는데다, Oracle이 인수한 이후로 Java 6,7은 이미 서포트 및 보안패치가 끊겼고 Java8은 내년에 끊기는데 아직까지 Java9가 안나오는 상황입니다. Javascript의 콜백지옥은 겪어보셨는지 모르겠네요. 대부분의 언어의 상황이 이런데 PHP가 어디가 안좋다는 건지 저로서는 이해가 잘 안가는군요.

      • dalky
        응답

        댓글 잘 읽었습니다. 논점을 굉장히 재미있게 흐리시는 것 같아서 저도 댓글 남깁니다. 레거시의 관점으로 php 를 본다면 사실 fastcgi 기반의 c 코드로 서버 코드를 작성해도 무방할 것이라 봅니다. ansi c 코드로 작성한다면 레거시라는 말 자체가 무의미 해지겠지요. 혹은 단순 jsp 로 작성되어도 크게 차이는 없을 것입니다. jvm 이 플랫폼 독립성을 보장해 주고 java 역시 레거시를 지원해 주니까요. 영속성은 php 만 가지고 있는 장점이 아닙니다.

        지금 말씀하시는 레거시, 혹은 지나치게 트렌디에 집중리는 현상에 대한 비판은 잘 이해하겠습니다. 하지만 그것은 언어의 문제가 아니라 프레임워크, 혹은 개발 방법론에 대한 이야기입니다. 워드프레스가 클릭 한 번에 마이그레이션이 부드럽게 진행될 수 있는 이유는 그것이 php 로 작성되어서가 아니라 well-designed 된 응용프로그램이기 때문입니다. 좋은 소프트웨어는 어떤 언어로도 만들 수 있습니다. 언제나 문제는 소프트웨어를 만드는 사람입니다.

        필자께서는 지금 워드프레스와 페이스북의 성공의 근거를 뛰어난 개발자와 그들이 이룩한 아름다운 디자인 패턴이 아닌 php 라는 언어가 가지고 있는 철학이라고 정의하고 계십니다. 제가 지적하는 부분이 그 부분입니다. php 는 철학이 없습니다. 제가 먼저 댓글에 언급한 링크를 보셨다면 누구나도 이해할 수 있습니다. 변하지 않는다고 해서 거기에 레거시를 유지하고자 하는 그들의 철학이라는 해석을 덧붙이는 것이 과연 맞는 말이냐 이거죠. 하다못해 php 가 이렇게 변하지 않는 이유가 그 철학 때문이라면 php 언어를 개발하는 사람의 입에서 나와야지 워드프레스 구축 사례를 봤을때 이런 것 같다, 는 아닌 것이지요.

        필자께서 글과 댓글에 언급하신 다른 언어들의 단점에 대해서는 굳이 재반론 하지 않겠습니다. 전형적인 피장파장의 오류를 범하고 계신대요, 설령 말씀하신 다른 언어들의 문제점이 있다 하더라도 php 란 언어에 내제되어 있는 문제점이 없어지지 않습니다. php 에 대해서만 이야기 해도 충분할 거라 생각합니다. 이 글은 php 를 쓰자고 주장하시는 글이잖아요.

        • 박 종희
          응답

          제가 말하는건 그런 디자인 패턴이 PHP였기때문에 가능했다는 것입니다. 타 언어에서 워드프레스처럼 성공한 예를 알려주시면 이것이 PHP만의 장점이 아니라고 인정하겠지만 짧은 웹의 역사상 이런 경우가 언제 또 있었던가요? 설마 딴 언어에는 지금까지 well-design할 능력있는 개발자가 없었던 것일까요? 그리고 제가 타 언어에 대해 말한건 언어 디자인이 문제라고 한다면 그런 문제는 대부분의 언어가 가지고 있기 떄문입니다. PHP가 좀 더 집중적으로 까일 뿐이죠. 람다없이도 Python이나 Java7로 개발 하는데 전혀 불편함이 없으신 분들은 앞으로도 그렇게 개발하시면 됩니다. 다만 저는 더 쿨한 PHP를 쓰겠습니다. 장점이 단점을 상쇄할 수도 있는 것이죠.

          PHP는 실용주의 철학을 가지고 있습니다. 따로 광고를 하는게 아니니 직접 써보지 않으면 느끼기가 어렵겠지만요. PHP정도 되는 언어에 철학이 없다고 단언하시는 자신감이 대단하신데, 그런 자신감의 근거가 무척 궁금합니다. 평소에 사용하시는 언어가 어떻게 되시나요?

          그리고 좀더 덧붙이자면 ANSI C에 대한 이야기를 하셨는데, ANSI C야말로 아주 까다로운 언어죠. C에서는 string이 그냥 char의 배열일뿐인데, 별다른 기능도 없는데다 관리가 만만치 않습니다. 배열에 값을 쓸때마다 bufferoverflow걱정도 해야하고, 포인터관리도 귀찮고, malloc으로 잡은 메모리를 풀지 않으면 바로 memory leak이 일어나죠. 하드웨어에 따라 int의 사이즈가 다른건 알고 계시는지 모르겠네요. 헤더 관리도 귀찮고 define때문에 코드가 아주 지저분해진답니다. 요즘 나오는 모든 언어가 ANSI C의 이런 문제를 해결하기 위해서 독자적인 해결방식을 내놓았습니다. 포인터를 직접 쓰는 언어도 얼마 안되구요. 웹에서 ANSI C로 작성해도 무방하다는건 대체 무슨 의미인지 모르겠네요. 지금 시점에서 ANSI C로 뭔가 할꺼면 Rust나 Swift를 쓰는게 낫죠. 그리고 오라클이 인수한 뒤로 Java는 더이상 레거시를 지원하지 않습니다. Java 6, 7은 현재 코드는 동작하지만 더이상의 기능 향상도 보안 패치도 없습니다. 단순 JSP도 결국 라이브러리로 Jar파일을 쓰는데, 이게 JVM의 버전에 따라 동작하지 않습니다. 그리고 단순 JSP를 쓸꺼면 PHP의 기능이 훨씬 뛰어납니다. 혹시 더 궁금하신 언어가 있으시면 제가 그 언어의 단점을 소상하게 알려드리겠습니다. PHP만 문제라는 이야기는 이제 좀 그만 듣고 싶네요.

    • john kim
      응답

      전 미국에서 프로그램하다 한국으로 와서 일해본 결과 언어 디자인 운운하는 자바개발자들의 결과물들이 항상 좋은 결과였다면 모르겠지만, 대부분 한국에서 경험한 자바 개발자들은 작업시간은 엄청 오래 걸리고 기획은 엄청 쪼다가 결과물에는 에러 투성이더군요. 그놈의 언어의 디자인을 얘기할만한 실력의 개발자들이 과연 있는지 모르겠습니다.

    • 윤종원
      응답

      링크해주신 글은 지극히 주관적인 관점에서 바라본 글이지만 설득력있는 근거들도 많네요. 많은 고민을 하는 중 읽어볼만한 자료였습니다. 감사합니다.

  • 권남
    응답

    문제가 많아 보이지만 저는 주로 자바 기반 개발자라서 ” Java는 버전별로 클래스의 포맷이 달라서 Java8로 만든 라이브러리가 Java10에서 실행된다는 보장이 전혀 없습니다. “요것만 집고 넘어가죠.
    클래스 포맷이 다른 것이랑 하위호환성은 아무 상관없습니다. 그리고 Java가 지금까지 1위 언어로 군림하는 가장 큰 이유는 하위 호환성입니다. 당연히 잘 돌아가고요. Java 5용으로 만든 코드들 Java 8에서 잘 돌아가고 있습니다. 클래스 포맷은 상위 호환성의 문제입니다.
    아직 나오지도 않은 java 9, 10 얘기는 그때가서.

    • 박 종희
      응답

      제가 자바버전하고 톰캣하고 헷깔린것같습니다. Java6 + Tomcat6나 Java7 + Tomcat7을 주로 사용해서 양쪽이 호환이 잘 안되었거든요. 일반적인 자바라면 상위호환에 문제가 없을 수도 있겠네요.

    • 님프
      응답

      클래스 포맷 변경으로 컴파일러가 이해할수 없다라고 하는것 자체가 하위 호환성이 없다라고 할 수 있는거 아닌지… 그럼 인간이 컴파일러에게 하위호환성을 보장하도록 코딩할 수 있는 노릇도 아니지 않습니까.. 거기다 자바가 지금까지 1위 언어로 군림하는 이유는 스펙 문제겠지요.. PHP는 아직까지 그게 안되니까…

      • 박 종희
        응답

        자바는 오라클이 인수한 이후로 앞날이 좀 불투명합니다. 자바 프로젝트 안한지도 한참 되었네요.

  • ixodium
    응답

    (disclaimer: 전 아마추어이며 컴퓨터 관련 전공이나 관련 교육을 받은 사람은 아닙니다.)
    글 잘 읽었습니다.
    PHP가 거센 비판을 받으며 많은 사람들에게 꺼리는 이유 중 하나는 PHP로 좋은 프로그램을 만들 수 없다기 보단, PHP 특유의 결함을 피해가며 “잘” 쓸 줄 아는 사람이 드물어서 코드가 잘못되기 쉽다는 점인 것 같습니다.
    네이버 같은 곳을 둘러보면 (2014~2015년에 작성한 글에) 아직도 예전의 mysql_* 함수를 쓴다던가, escape하지 않은 채로 출력하고 ==를 쓰는 등 잘못된 방식을 쓰는 코드가 상당히 많은 걸 보면서 그런 생각이 들더라구요.

    • 박 종희
      응답

      네이버 검색을 하면 2000년대 초/중반의 소스코드가 튀어나오는 경우가 많더군요. 서점에서 파는 초보자용 책에서도 예전 코드가 나와서 깜짝 놀라는 경우가 있습니다. 2005년도에 나온 PHP 5.1에 기본으로 들어간 PDO를 안쓰는 개발은 있을 수 없는 일인데, 11년이 지난 지금에서도 아직 안쓰는 프로젝트가 있다는게 매우 아쉬운 상황입니다.

  • jogun
    응답

    뭐… 제가 하고싶은 이야긴 위에 얼추 다 있어서 구구절절 쓰진 않겠습니다.
    … 안좋은 언어는 없는게 맞습니다만,
    PHP는 좋은 방향으로 짜기 어려운 언어는 맞다고 생각하는 사람인지라, 반대 하나 투척하고 갑니다. (PHP가 언어가 맞다면요)

    • 응답

      @jogun
      안녕하세요 PHP를 까셨는데, php의 단점인 인터프린터 언어이다 내용을 보면 요것때문에 까는 것이라고 보여지네요.
      phper로서 hhvm(페이스북에서 만든)으로 갈아타면 자바처럼 컴파일 언어로 변신할 수도 있습니다.
      최소한 php를 까시기전에 php를 조사해 보고 까셔야 할거 같네요. php를 한줄이라도 작성해 보셨나요?
      (php는 언어가 맞다면요) 이부분에 대한 근거가 뭔지요?

      • PHP자영업자
        응답

        PHP는 컴파일 언어가 아닙니다. 인터프리터 언어이고 최근에야 JIT을 결합해서 퍼포먼스적 이점을 보고 있는 언어죠.

  • 읙명
    응답

    눈물나네요. 저 댓글의 내용을 다 이해하고 싶은데요. 무슨말인지 하나도 몰라서 공부를 더해야하나봅니다. 유익해보이는 글 (?) 잘 읽었습니다.

  • hax0r
    응답

    상당이 흥미로운 얘기네요.

  • appkr
    응답

    PHP 는 웹을 위해 태어난 플랫폼이라 알고 있습니다. 순혈주의 개발자들은 PHP 언어의 ‘예측 가능성’ 과 ‘비일관성’ 을 비판하는 것을 봅니다. 그러나, 단점을 커버할 수 있을 만큼의 장점이 있기에, 그리고 웹 이라는 목적에 적합하기 때문에 죽지 않고 현재까지 살아 있다고 생각합니다.

    그간의 비난들을 극복하기 위한 PHP 커뮤니티의 자구적 노력과, 문제점들을 커버해 주는 걸출한 프레임웍들이 이미 나와있습니다. 도구는 이미 변했습니다, 그것을 사용하는 사람들의 관성이 바뀌지 않았을 뿐이죠~ 모두의 발전을 위해 도구를 비난하지 말아주셨으면 합니다. 도구를 잘못된 방법으로 사용하고 있는 사람들을 욕해 주세요.

    앞으로 어떻게 될지는 계속 지켜봐야지만, 다른 언어들과 Coopetition 하면서 이제까지 그래 왔듯이 잡초 같은 생명력을 유지하지 않을까 생각합니다.

  • 스컬핀
    응답

    말씀해주신 내용들이 흥미롭지만, 그럼에도 불구하고 PHP를 굳이 선택해야 하는 이유가 되기엔 충분하지 않다고 생각됩니다. 언급해주신 장점들에도 불구하고, PHP는 여전히 득보다는 실이 더 많은 언어라고 생각합니다.(특히 입문자들의 선택지에 관한 측면에서… 입문자는 더 좋은 디자인을 가진 언어로, 더 좋은 코드를 접해야 합니다..)

    • noproblemo
      응답

      PHP가 득보다 실이 더 많은 이유가 무엇인지 알고 싶습니다.
      그리고, 입문자는 더 좋은 디자인, 더 좋은 코드를 접해야 한다고 하셨는데요.
      더 좋은 디자인이라는게 선뜻 이해가가지 않습니다.
      더 좋은 코드도 마찬가지 이구요.

      제 주관적인 생각엔 다 좋은 디자인이나, 더 좋은 코드는 스스로 만들어지는 것 이라고 생각합니다. 더 좋은 디자인, 또는 더 좋은 코드를 누군가 만들어 준다고 제것이 되진 않겠지요.
      특히 더, 어떤 언어든 인프리터이든 입문자에게 강조하고 싶은건 간단한 스택이나 큐는 한번쯤 스스로 만들어 보는 연습을 하라고 말하고 싶습니다.
      그리고, 더 좋은 스택 디자인을 입히고, 저 좋은 코드를 생각하면서 버전업을 하라고 말하고 싶네요.
      제 경험상으로 win32api오 개발하다 mfc로 넘어올땐 엄청난 충격이었습니다.
      모든 클래스들이 다 구현되어있었으니까요! 그냥 갔다쓰기만하면 됩니다.
      win32api디자인이, 코드가 나쁘다고 할 수 없지 않을까요? 다만 생산성이 안좋았을 뿐이지 않겠습니까?

  • J
    응답

    역시 구경중에는 쌈구경이 짱이네요ㅎㅎㅎ 재밋고 유익하게 잘읽었습니다.
    PHP포레버ㅋㅋㅋ

  • Aiden
    응답

    좋은 글 잘 읽었습니다. 저도 ‘시간 나면 정리해봐야지’했던 내용인데 완벽(!)하게 정리 해 주셨네요.
    저 역시 Perl로 웹개발을 시작하여 PHP란 것이 나오면서 ‘만세’를 불렀다가 그 이후 PHP4를 버리고(?) ASP, JSP 등등을 거쳐 2016년 현재 다시 PHP를 메인으로 다루고 있습니다.
    개발팀이나 회사 전체적인 관점에서 지속적인 개발환경에 대한 통합을 고민 하는 포지션에서도, 말씀대로 PHP는 상당히 ‘실용적’인 언어임에 틀림 없습니다. 잘 설명 해주셨기에 부연이 필요 없겠지만 기본적으로 타 언어와는 달리 ‘Web이라는 명료한 Target’를 언어 탄생부터 지금까지 줄 곳 견지 해 왔기 때문이라 생각합니다.
    또한 말씀하신 PHP의 고집스런 하위호환성의 이면에는… 순혈주의자들의 언어구조에 대한 지속적인 비난에도 불구하고 타 언어처럼 하위호환성은 포기하며 언어전체를 뒤집는 (달콤한) 리뉴얼을 하는 대신, 점진적이면서도 꾸준한 개선을 해오는 철학이 숨어있음의 반증인 것이죠. 어느 언어가 20년가깝게 하위호환성을 유지 해왔습니까? 아니 20년의 역사를 가지는 언어조차 드물죠. 그러면서도 2016년 현재에도 최상급 속도와 이식성 및 생산성 그리고 절대적인 유저Pool을 유지하고 있습니다. 미래를 보려면 역사를 공부해야 하는 것처럼 PHP의 지금까지의 역사가 PHP 미래 영속성의 가능성을 매우 높게 증명하고 있죠.

  • 응답

    와 진짜 아직도 이걸로 티격태격 ㅋㅋㅋ 개떡같이 만들어도 돈벌어다 주는 소스가 최고입니다.

  • 두덕리온라인
    응답

    저도 웹개발자는 아니지만 PHP를 2000년부터 사용해온 개발자입니다.
    Python, Java, Ruby 같은 언어들은 시작할 때부터 뭐 그렇게 셋팅할 것들이 많은지…
    한번에 딱 셋팅이 끝나는 ASP.NET과 PHP가 저는 제일 사용하기 편하고 좋네요.
    취미로만 개발한 사람도 아니고 금융권에서 JAVA/Oracle로도 개발했었습니다.

    그렇다고 PHP가 ASP처럼 지원이 끝난 언어이냐? 그것도 아니구요
    다른 언어 보다 성능이 느리냐? 그것도 아니고…
    점유율도 80% 넘고, 성능도 세계 최상위권이고
    PHP로 상용 서비스에 사용해도 뭐하나 문제를 못겪어 봤네요.

    그리고 페이스북에서도 사용하는 PHP를 왜 다들 욕해서 안달인지 모르겠네요
    여기서 페이스북 개발자들 보다 실력이 있는분들이 얼마나 될런지…
    원글 저작자 분들이 다른언어를 욕한것도 아니고…

    저는 클라이언트 개발자인데 어떻게보면 웹개발자들은 맨날 언어를 바꿔타고 언어를 가지고서 왜 그렇게 전쟁인지 모르겠습니다.
    클라이언트 개발은 목적에 맞는 언어가 딱 한가지 밖에 없어서 그런지는 모르겠는데 윈도우 개발에는 C++/MFC, 안드로이드는 Java, 아이폰은 ObjectiveC/Swift 딱딱 정해져 있거든요.

    • 박 종희
      응답

      언어 전쟁, IDE전쟁은 언제나 있어왔기에 그러려니 하는데 PHP는 유독 심한 듯하네요. 사실 PHP를 욕하는 분들이 많을수록 신규 진입하는 개발자가 줄기 때문에 저같은 전문가가 밥먹기 편하다는 아이러니가 있지요..

      • 두덕리온라인
        응답

        안녕하세요.
        제가 작성한 댓글에서 Swift가 오타가 나서요.
        시간이 괜찮으실때 수정을 부탁드립니다.
        오늘도 좋은하루 되세요.

        • 지나가다가...
          응답

          딴지 거는 것 같아 좀 그렇지만… MFC는 언어가 아니라 라이브러리로 분류하는게 맞는 것 같습니다.

  • 응답

    저도 처음엔 JAVA (JSP) 쪽을 공부 했던 학생이고, 그쪽으로 취업을 하려고 하였습니다.
    실제로도 그렇게 취업했지만, 회사에서 갑자기 상의도 없이 SI 로 돌리는 바람에 퇴사를 하였지요. 그리고 나서
    학창시절에 PHP를 조금 다뤄본적이 있었기에, PHP 쪽으로 SM 회사로 들어 갔습니다. 처음에 접한게 5.3 이었습니다.

    한 회사에서 1년하고 회사가 너무 거짓말만 하길래 같이 들어왔던 동기들하고 모두들 퇴사를 하였지요.
    그리고 지금 회사에 들어와서 PHP 를 계속 쓰고 있습니다.

    저도 처음엔 JSP 에 비해 일자리 찾기도 힘들고, 돈도 조금 주고 어디가서 PHP 웹 개발자 라고 하기 창피할 정도 였습니다만,
    2~3년이 흐른후에 이 것 저 것 해외 이직도 해볼겸, 다른 공부좀 해볼까 찾아 보다 보니, 해외에선 정말 많이 PHP 를 쓰고 있었습니다.

    대우도 괜찮은 편이였구요. 그리고 또 1년여가 지나, 이제 PHP 로 경력이 5년 정도 되었네요. 가끔 한국에서 회사 찾아볼려고
    심심해서 찾아 볼때면 아직도 한국에선 JSP 가 대세고 JAVA 를 많이 사용 하기 때문에 그쪽에 비해 형편 없어 참 안타 깝기도 합니다만,

    확실히 저희 선배님들이 하실 적인 4버전 때 많금 버그나, 보안 이런게 취약하지 않습니다. 라이브러리도 강력해 졌고, 여러가지 좋은 것들이 많아 졌지요.

    • 박 종희
      응답

      Java는 Oracle이 인수한 이후로 미래가 매우 불투명해졌습니다. 개발자들은 자신이 선택한 개발스택이 그대로 경력이 되는지라 나중에 빼도박도 못하게 될수도 있으니 항상 트렌드를 읽어야 하는데, 초보 개발자들에겐 그런 눈이 없는게 좀 안타깝죠. 지금부터 경력을 쌓으려는 개발자가 있다면 일단 Javascript를 추천할 것같습니다. 그 담이 PHP..

  • swkim
    응답

    장인(匠人)은 자기가 오래 사용하던 연장을 능수 능란하게 사용하여 최고의 작품을 만들어 냅니다. 제품의 퀄러티 만을 생각하며, 아무리 좋은 연장이 나온다 하더라도 퀄리티에 마이너스가 된다면 연장을 쉽게 바꾸지 않습니다. 연장을 판매하는 판매상의 입장에서는 연장의 우수성과 편리성을 이야기 하며 사용을 권하겠지만, 장인의 입장에서는 본인이 하던 방식대로 하는 것을 좋아합니다. 왜냐하면 모든 것이 익숙하고 불편함이 없으니까요.
    프로그래밍 언어의 여러 면모에서 장단점을 비교하는 것은 바람직하나 어떤 언어를 써야 되는 것을 판단하는 것은 전적으로 프로그래머의 자유라고 생각됩니다.
    저도 PHP를 좋아하는 한 사람입니다.

    • 박 종희
      응답

      요즘 개발은 구글이나 페북같은 테크 자이언트가 뭔가 개발하면 그걸 바탕으로 어플리케이션 개발자가 적용하는 식으로 바뀐거 같습니다. 연장이 자기 멋대로 바뀌고 있다고나 할까요. 풀스택 개발을 하면서 서버쪽 언어만은 최대한 보수적으로 가려고 생각했기에 PHP를 주로 쓰고 있는데, 올바른 선택이였던거 같습니다.

  • bugmaker
    응답

    글 잘읽었습니다. 그리고 다른 분들 댓글도 잘 읽었구요. 많은 참고를 하고 갑니다. 저는 java를 주로 쓰지만 워드프레스 신봉자라 php에 대한 관심도 지속적으로 갖고 있는데, 애초에 라스무스가 php를 만든 계기부터 태생적 한계가 있다 보니, 그리고 그 목적에 따라 수단이 정해진 사례이다 보니 결코 잘 디자인된 언어라고 보기는 힘들것 같습니다. 앞으로도 그렇구요.
    하지만 시장경제 측면에서 보자면 디자인 패턴이야 어쨌든 낮은 비용에 높은 효율을 가지고 있으면 더 없이 좋은 재화가 되는 거고 PHP는 분명 거기에 부합되는 언어인 것만은 틀림없는 것 같습니다. 어차피 잘 디자인되고 프랙탈을 지키며 성능이 뛰어난 언어나 프레임워크를 만든다고 한들 그것은 개발자 입장에서나 환영받을 일이죠. 높은 비용에 레거시로서의 존립을 유지하기가 힘들다면 시장에서는 생명주기가 짧을 수밖에 없겠죠.
    매트 뮬렌웨그가 워드프레스를 만들면서 php를 주 언어로 채택한 것은, 어찌보면 당연한 선택이었을 겁니다. 애초에 PHP도 웹을 지향하고 그에 충실하고자 만들어진 것이니 웹의 개념이 재정립되지 않는 한 앞으로 사라질 일은 없을것이라 생각합니다.

  • 박종윤
    응답

    제 php경력에 대한 고민이 참 많았는데 많은 부분을 속시원하게 해주는 사이다 같은 글 이었습니다. 정말 감사합니다.

  • Jayden
    응답

    호주에서 개발회사를 운영하고 있는 1인입니다. 한국에서 Java만 하다가 해외나와서 PHP만 열나게 보고 있네요. PHP 꼭 알아야 되는 언어입니다. 특히 한국을 제외한 나라에서는 요. 혹시라도 해외취직 생각이 있으시면 PHP는 기본입니다.

  • 강동혁
    응답

    잘 읽었습니다. 제목이 “이제와서 PHP로 개발해야 하는 이유” 보다는 “웹개발할 때 PHP를 버리지 않아도 될 이유” 정도가 적당하지 않나 싶습니다.
    1. 워드프레스가 CMS 중 절대적인 마켓쉐어를 가지고 있긴 하지만, 워드프레스 사용자 중 PHP의 P자도 모르는 사람이 대부분입니다.
    2. 페이스북이 만든 HHVM 에 쓰이는 Hack 이란 언어는 PHP와는 문법이 다릅니다. 페이스북이 PHP 로 개발을 시작했으니 HHVM 에서 PHP를 지원하는 정도지, 페이스북이 계속해서 PHP 를 주로 쓸 거 같지는 않고 Hack 을 주로 쓰지 않을까 싶습니다.
    3. PHP에도 라라벨 같은 MVC 프레임웍들이나, 워드프레스 같은 CMS 가 많이 쓰이면서 사이트가 점점 무거워지는데(수많은 include 들로 인해 한 페이지를 로딩하는데 실행하는 파일의 수가 급증), PHP 성능이 이를 받쳐주지 못 하는 문제점이 있었고, HHVM 의 등장으로 위기감이 있지 않았나 싶습니다. 만약 PHP7이 나오지 않았으면 PHP 는 워드프레스 생태계를 제외하고는 거의 도태되지 않았을까 싶습니다.
    4. wordpress.com 을 서비스하는 Automattic 에서도 서버 사이드에서 Node.js 를 도입하기 시작했습니다.
    5. PHP는 여전히 웹개발에서만 주로 쓰이고, 최근의 빅데이터나 인공지능, 모바일, 멀티프로세싱 등의 트렌드에서는 비껴 있습니다.

    • 박 종희
      응답

      제가 주장하려는 내용이 거의 전달이 안된 듯한데, 짧게 줄여서 말하자면 서버 프로그래밍의 발전은 이제 끝났다. 그러니 기능많고 쓰기 편하고 레가시 대응이 편한 PHP가 좋은 솔루션이다, 라는 것입니다. 풀스택 개발자로서 요즘 서버로 하는 일이 JSON 만드는 것 밖에 없어서요. 저는 제 철학에 맞는 PHP프레임웍을 개발해서 쓰고 있는데 이부분에 대한 정리도 시간 나는대로 해보겠습니다.

  • 이재욱이
    응답

    PHP로 꼭 개발해야할 필요는 없구요, 상황에 맞춰서 언어를 선택해야할것같네요.
    잘 읽었습니다.

  • kororo
    응답

    이거와 같은 글을 크롬에서 볼 때와는 좀 다른 것 같습니다. 전체적으로 컬로도 좋고, 다음 글 읽으려고 화살표에 마우스 갔다데면 뭔가 신기한 동작도하고….. 제가 어제 늦게 이 글을 봐서 실수 한게 아닌가 생각이 드네요. ㅎㅎㅎ 그냥 흘려 읽으세요.

  • 최승우
    응답

    한 언어를 오랫동안 사용한 개발자에게는 어느새 그 언어를 종교처럼 여긴다는 말이 있지요. 언어의 장단점을 이야기하는 글에는 언제나 일종의 종교논쟁과 흡사한 댓글들이 보이는 것 같네요. 어차피 처음부터 옳다 그르다 확실하게 정할 수 없는 문제를 가지고 싸우는 걸 보는 느낌 같은거요. (그와중에 Php는 뭔가 이단 취급..) 개인 취향을 떠나서 현실적으로 많은 사람들이 이용하고 있다면 장단점을 떠나서 인정해줘야 한다고 생각합니다. 그걸로 밥벌어 먹는 사람이 얼마나 많은데..(저도 그 중 1인이고요)

  • 개발자
    응답

    아직 개발경력은 15년밖에 되진 않지만 업무상 좋든 싫든 대부분의 언어를 다루어야했고.. PHP만큼 매력적인 언어는 웹에서는 없었습니다. 열심히들 PHP를 까고 문제가 있다곤 하지만 개발하면서 문제가 발생한적은 한번도 없네요.. 아니 문제가 발생하더라도 모두 해결이 가능하다고 해야하나..? 문제 해결이 불가능한 신입 개발자라면 문제가 될수도 있겠지만..

    • 박 종희
      응답

      저도 수많은 프로젝트를 해봤지만 PHP가 가장 자유도가 높더군요. 심지어 자바 프로젝트에 생긴 문제도 PHP코드를 넣어서 해결한 적도 있었네요.

  • 여행객
    응답

    우연히 구글링하다가 이 페이지에 오게되었는데, 좋은 글 잘 읽고갑니다. 인문학적 소양이 꽤나 높으신걸로 보입니다. 이정도의 글을 쓴다는건, 직접 써보지 않은 사람말고는 감히 알수조차 없습니다. (댓글이나 몇개 다는건 엄청나게 쉽지만) 저는 좀 다른 이야기를 하겠습니다.

    개발자 라는 직업은 분명히 – 다양한 사고를 해야하며, 머리를 쌩쌩 굴려야며, 다양한 시각을 갖고…등등 – 해야 할 직업임에도 불구하고, 어느순간에는 자기만의 사고에 갇히는, 자가당착에 부딪히게 될 위험이 굉장히 높은 직업입니다. 꾸준히 자기자신을 스스로 매질하지않으면 안되는 직업중에 하나이지만, 실제로 그렇게 하는사람은 굉장히 드뭅니다(…) 찾기어려워요. 아니라고 생각하시는 분들도, 자기자신을 투명하고 냉정히 마주 해 보시길 바랍니다.

    이말인 즉, 개발자로써 지내온 시간이 길어지고(경력이 쌓이고), 프로젝트를 해치우고, 후배가되어보고 선배가되어보고 IT업계라는 생태계에 몸담고있다보면 버그, 오류라면 자기자신보다 몸과 머리가 먼저 치를 떠는지라, ‘안정화상태’를 추구하게되며, 이 상태가 되면 변화를 두려워하고 – ‘다른 것’- 들을 배척하는 습성이 점차 몸에 스며듭니다.

    웹 사이트를 항해하다보면, 우리나라에서 PHP를 까는 글은 굉장히 쉽게 접할수있습니다. (그것도 극성으로 까는.. )

    그들은, PHPer를 개발자라고 하는것도 보기싫고, PHP를 언어라고 부르는것도 너무 싫습니다.
    PHP가 시장을 점유하는게 너무 싫습니다. 이 생태계에서 꾸준하게, 그리고 오랫동안, 지속적으로 강하게 점유율을 올려가는게 너무 싫고 ‘두렵습니다’.
    왜냐. 난 PHP를 까는사람이니까. 난 그렇게 배웠으니까. 그렇게 PHP를 난 버렸으니까.
    계속 까여야하는데, under여야 하는데. 자꾸만 거론되고 수면위에있으니까.

    그들은 말합니다.
    페북, 워드프레스가 심사숙고 끝에 PHP를 ‘선택’ 했음에도 불구하고, ‘PHP가 아닌 다른언어로 개발했다면, 더 잘 빠졌을텐데..’ 라고.

    그럼 저도 이렇게 말할수있겠네요.

    http://noraesae.github.io/PHP-a-fractal-of-bad-design-kr 사이트 외,
    PHP turtles
    PHP Sadness
    PHP WTF
    – 기타등등등

    “PHP를 까는글이아니고 다른언어를 까는 글이라면, 나도 더 잘 빠지게 쓸수있었을텐데..”

    • 여행객
      응답

      분명 문단과 단락을 나누어 썼는데 이렇게되었네요.. ㅋㅋㅋ 이곳에 댓글을 처음써보는지라..

    • 박 종희
      응답

      PHP를 까는 글의 문제점은 PHP는 시간이 지날수록 자체적으로 문제점을 차곡차곡 개선해 나가고 있다는 걸 무시한다는 것이겠죠. PHP-a-fractal-of-bad-design 같은 글은 PHP 5.3 기반으로 작성되었는데 글쓴이가 제기한 문제중 많은 부분이 현재 해결된 상태인데다 PHP 5.3은 이미 단종된지도 오래되었죠. 그에 비해 파이썬의 2.7의 메인테넌스 연장은 정말 최악의 결정인데, PHP의 단점 전부를 합쳐도 파이썬의 잘못된 결정에 못미칠 정도죠. 파이썬 업계는 3.x을 만든 것도 2.7을 단종시키지 못한 것도 부끄러워해야 합니다.

      PHP의 노력과 철학은 정말 훌륭합니다. 이에 대해 설명한 라스무스 러도프씨의 인터뷰가 좋은 내용인데 조만간 번역해봐야겠습니다.

  • 행인
    응답

    보통 자신의 메인스트림언어와 비교하며 타 언어들을 비하아닌비교를 하는 개발자들은 새로운걸 배우기 싫어하거나, 개으르거나, 정치적이거나, 경험이없거나, 또는 잘못된 경험이거나, 아니면 자신의 언어에 정말로 자부심이 있는경우일탠데 뭐든 좋은상태는 아닌걸로 보입니다. 언어싸움은 종교싸움이다라는 말을 새삼 복습하네요.

    • 박 종희
      응답

      자기가 쓰는 언어가 좋다고 하는건 이해가 가지만, 남이 쓰는 언어를 일부러 그 언어가 좋다고 하는 사이트에 방문해서까지 문제삼는건 차별이나 헤이트 스피치의 영역이죠. 헬조선의 다른 모습이 아닐까 합니다.

  • 김현수
    응답

    PHP는 필수아닌가요? 이제와서가 아니고..
    요즘 자기 메인스트림 1랭귀지 만으로 어떻게 살아남나요?…
    즉 프로젝트에 따라 비즈니스로직에 따라 언어를 유연하게 사용해야 한다면 모든 언어들은 단순히 옵션이 되는것인데
    이 옵션들에서 PHP는 당연 3손가락 안에 들어갑니다.

    • 박 종희
      응답

      요즘 PHP보다 다른 언어를 쓸 기회가 더 많아지긴 했지만, 간단한 프로젝트를 시작할때 젤 먼저 손에 가는 건 역시 PHP입니다. 프론트엔드와의 궁합을 생각해보면 이 이상이 별로 없습니다. 심지어 자바스크립트보다 더 편해요.

  • whydo
    응답

    PHP 좋은 언어입니다. 아직도 ‘PHP: 잘못된 디자인의 프랙탈’ 떡하니 던져 놓고 가는 분들 있네요. 저 문서의 상당 부분은 이미 해결되었거나 각종 포럼에서도 지양되는 방법으로 점철되어 있습니다. 당시 저 문서가 쓰여졌을 때도 PHP의 장점과 타 언어의 단점은 철저히 가리고 PHP의 단점은 모두 PHP만의 단점으로 둔갑시켜 버리는 행태에 할 말을 잃었던 기억이 있네요. 비하도 부심도 적당할 필요가 있어요.

    • 박 종희
      응답

      PHP는 시대의 변화에 적응해가는데 반대론자는 예전 그대로 머물러 있는 듯 하네요. 몇년 지나면 모든 사람들이 PHP의 장점을 더 확실히 알게 되지 않을까 합니다.

  • LeeHo
    응답

    저는 이제 자라나는 컴퓨터 전공학생인데… 이해가 안되는 글들이 많지만 잘 읽었습니다. 그저 학생의 눈으로만 바라본 생각은 큰 물줄기가 흐르면 모난돌은 깎여나가기 마련입니다. 조그마한 군집을 이루는 생명체도 그 안에서 적응하거나 퇴화 혹은 사라지기 마련입니다. PHP를 배우면서 PHP는 어쩌면 꾸준히 흘러서 이미 흐르는 길이 만들어진 물의 흐름과도 같다고 생각됩니다. 그래서 사용률이 80%를 넘는것이겠지요? 그것은 굳이 많은 말을 하지 않아도 ‘어떤 이유에서건’ PHP가 선호된다는 것이겠죠. 이곳에서 아무리 아무리 많은 분들이 토론을 한다 한들 이것은 기원에서 바둑을 한판 두는것과 크게 다를 것 없다고 생각합니다. 글쓰신분께서 써주신 글을 다 이해했다고 생각하진 않지만 좋은 글 잘 읽었습니다. 큰 물의 흐름은 그것이 집단 의사결정의 오류 혹은 군중심리라고 할지라도(말도 안되지만) PHP가 대단한 것 같습니다. 좋은 PHP 개발자가 되어서 선배 개발자들을 위협해야지 다들 열심히 하시겠군요…ㅋㅋㅋ 추운데 건강관리 잘하십시오.

  • PHP욕하지마
    응답

    좋은 글 읽고 갑니다. 댓글도 하나하나씩 읽으면서 아쉽네요.
    php가 언어가 맞다면? 이란 댓글도 참 웃음밖에 안나오네요.
    그리고 더 좋은 디자인언어가 신입개발자에게 좋다하신분도 참 신입개발자에게 언어를 가르켜본적이 있으신건지
    여행객님에 대한 댓글 개사이다!!!
    전 현재 java/jsp쪽을 많이하지만 처음배웟던 언어가 php였고 아직도 php가 생산성이 높고 자유도가 높으며
    문제해결점에 가장 빠르고 손쉽게 해결할수 있는 언어로 생각하는 1인입니다.
    어떤 언어이든지 안좋은면은 있습니다.
    단지 안좋은면만 보고 까는분들 발라 버려주세요.
    글쓴이님 화이팅

  • Jeon
    응답

    질문 있습니다. PHP언어로 잘짜여진 코드를 보려면 어디가 가장 좋은가요?

    C++이나 C#을 사용하다 어찌하다보니 이젠 웹쪽 언어도 공부하려고 하는데 국내에선 자료찾기가 힘드네요.

    • 서대운
      응답

      잘 짜여진것 까지는 잘 모르겠지만,
      저는 보통 Sourceforge를 주로 봅니다.

      위에 다른 분들도 많이 말씀 하셧지만
      PHP가 자바에 비해 상대적으로 낮은 인기도여서.

      예전엔 PHP공부할때 제로보드 많이 봤었던 기억이 나구요.
      phpBB 많이 분석햇던 기억이 나네요

  • Shawn
    응답

    문제는 PHP로 안되는게 별로 없을 뿐더러 구글링등을 통해서 얻을 수 있는 팁이나 문제해결 방법은 PHP가 꽤나 많은 편에 속한다는 점인 것 같습니다.
    그리고 까는 사람 대부분이 찬양하는 언어로도 뭐 그닥 훌륭하게 만들지 못하는 경우도 많구요… 도구일 뿐이라는거죠.
    어쩌구 저쩌구 원론적인 (심지어는 철학적인) 이야기들을 장황하게 늘어놓는 사람이 많지만 막상 현업에서의 필요성은 제대로 설명못하는 경우가 대부분입니다.
    글쓴님과 같이 PHP의 경우는 이런저런 이유로 쓴다.. 고 말하는 사람들은 좀 있는데 말이죠.

    참고로 저는 처음 밥벌어먹기 시작할때 C와 C++ 둘다 사용했는데 당시에는 좀 정통한 C개발자들은 C++마저도 까는 분위기였어요.
    Basic 언어같은건 어린애들이 실습하는 정도 취급받았고.. 비슷한 맥락으로 Java가 처음 나왔을때도 비슷한 반응이었죠.

    Visual Basic으로 만든 어플리케이션이 그렇게 많았다는건 최근에 알았습니다. 저도 안쓰니 몰랐던거죠.
    제가 잠깐 Visual C++ 6 를 쓰며 ‘이게 진짜지..’ 하는 동안 돈은 VB가 벌고 있었네요 ㅋㅋ
    지금은 뭐.. C/C++.. 보수적인 분야를 빼고는 쓰는데 어디 있나요..

    PHP로 웹개발(정확히는 풀스택)을 시작한지 어언 7,8년 되어 갑니다면 아직 그다지 바꿀만한 이유는 못찾는 중입니다.
    그다지 고집스러운 꼰대타입은 아니라고 자부하는데 말이죠.. 그냥 계속 PHP만 하다보니 잘먹고 잘살고 있어요.
    밥줄이 끊긴다거나 다른 이유가 생긴다면 저도 바꾸겠죠?

  • Newbie821
    응답

    C C++ JAVA C# 써 봤고 요즘 PHP와 WordPress에 푹 빠져 있습니다. 모든 것이 중요하지만 가장 중요한 것은 가장 저렴한 비용으로 사용자가 원하는 최대의 효과를 내는게 아닐까 싶습니다. 하드웨어의 발전 덕분에 퍼포먼스가 큰 문제가 아닌 지금 시점에서 PHP가 다른 언어에 비해 그리 부족한 점이 없는 반면 장점은 매우 많은 언어라는 것에 동의하지 않을 수 없네요. 개발자들은 개발적인 측면만을 너무 강조하는 경향이 있는데 사실 가장 중요한건 사용자 관점이죠.

    잠깐 알바로 WordPress로 만든 웹사이트를 모바일 환경에 최대한 동작할 수 있도록 봐주었는데 그러면서 자세히 들여다보니 무료로 제공되는 플러그인들만 사용해도 매우 강력한 웹사이트를 만들 수 있더군요. 개발을 전혀 모르는 사람도 딱 한달만 마음 먹고 집중하면 필요한 기능들을 다 갖춘 훌륭한 웹사이트를 만들 수 있을 겁니다. 거기에 PHP에 대한 기본 지식만 탄탄하다면 혼자 필요한 플러그인을 개발도 하고 수정도 할 수 있겠죠.

    큰 기업일수록 회사 구성원의 인적 네트워크 때문에 비싼 회사의 제품이나 속칭 잘나간다는 언어를 제대로된 냉정한 “비용적” 평가 없이 사용하는 경향이 있습니다. 낭비죠. 가끔 작은 회사의 고객들이 저에게 물어오면 스몰 비지니스를 위해서는 블로그만으로 충분하고, 그 다음 좀 더 기능이 필요하면 워드프레스나 CMS를 사용하고, 정말 많은 비지니스 프로세스를 웹상에서 처리해야 한다면 개발을 검토하는데 장기적으로 매우 많은 비용이 발생하니 신중히 검토하라고 얘기해 줍니다. 보안 문제도 비슷한 관점에서 설명해 주고요.

  • 22년차
    응답

    이글을 처음부터 끝까지 읽어보았는데…이러한 분쟁은 항상 끊이지가 않는군요.
    저같은 경우는 PHP/JSP/ASP와 C++/C# Perl 등으로 다양한 어플래케이션을 만들어보았지요.
    근데 PHP가 최악이다. PHP가 언어냐? PHP는 지금도 늦지 않았으니 버려한다는 등의 의견들을 늘 보게되는데
    “왜?”라는 생각은 늘 떠나지 않습니다. 개발을 22년차 하는데도 불구하고 PHP를 버리기 힘들정도로 웹 영역에 많은 점유율을 가지고 있는데다가
    그다지 불편하거나 번잡하고도 껄끄러운 에러리포팅을 발견한 적이 없어서 입니다.
    또한 우리나라에서만 PHP를 천박한 찌그레기마냥 취급하고 있는데 그것또한 “왜?”라고 반복하고 싶습니다.
    저는 PHP만 다뤄본것이 아닌 다양한 서버사이드를 접했고 그에 따라 장단점을 확실히 이해하고 있다고 자신합니다.
    ASP와 같은 언어도 현시대에 개발자가 없을정도로 거의 데드랭입니다. 하지만 저는 합니다. 왜냐하면 그것또한 클라이언트가
    원하면 해줘야한다는 것이죠. 그리고 PHP로 꼭 전향해야한다는 것보단 PHP를 알고 그에 맞는 프로그래밍과 그에 알맞는 알고리즘,로직 등의
    기본적인 틀을 깨지않는 디자인이 가장 그언어를 잘활용하는 개발자라 판단됩니다.
    우리나라 웹솔루션 업체의 89%는 PHP인데다가 가장 널리알려진 오픈빌더들도 모두 PHP입니다.
    그만큼 접하기 쉽고 에러리포팅에 대한 대응력도 뛰어나며, 유연성이 높아 다른 어플리케이션과도 쉽게 동화됩니다.
    그리고 저의 경우는 대규모 오픈마켓을 엔터프라이즈 서버를 이용하여 개발하였는데 무리없이 잘 돌아가는 것으로 보면
    PHP가 최약체 언어는 아닌 것만은 확실합니다.

  • 응답

    멋진 글과 멋진 댓글들입니다.
    각자 자신의 의견을 피력하고 또 보완하는 모습이
    고수들의 한 바탕 검무를 보는 듯 하네요 (뜬금 없는 무협 ㅈㅅ)

    B급 개발자인 저로써는 많은 선배 개발자분들의 이러한 의견들이
    저의 앞날에 많은 영향을 미치는 것 같습니다.

    PHP가 가지는 철학과 자신감을 보는 한편
    개인적으로 왜 PHP는 다른 언어(web)들과 대결구도로 전개되는지에 대해
    한번 고찰해볼 필요가 있을 것 같습니다.

    종종 들러 유익한 내용 얻어 가겠습니다.
    감사합니다

    프레이 포 피에치피

  • ㅎㅎㅎ
    응답

    글 보며 예상하긴 했지만 역시나 자바탈레반들의 테러가..

    • catalina
      응답

      아 미치겠다 자바탈레반 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 자바개발자지만 현웃터졌네요 ㅋㅋㅋㅋ

  • yundream
    응답

    저 역시 언어의 아름다움 같은 건 됐고, 문제를 해결 할 수 있다면 된다. 라는 입장이라서.

  • 박성원
    응답

    점심먹고 올라와서 리드트렌드 보다가 들어왔네요. PHP의 뭐가 좋다. 뭐가 안좋다의 문제가 아니라 결국엔 비즈니스 어플리케이션의 문제해결을 위한 최선책이 무엇이냐에 집중하면 비용측면에서 PHP를 선택하게 되더라구요. 많은 분들이 PHP의 언어적인 결함?을 많이 지적하시는데, 저는 결함이 없는 언어는 없다고 봐요. 최근에 대형 프로젝트들을 몇 건 마쳤는데.. 결국엔 발주처의 마감때문에 (이것도 비용이 이슈지요.) 글쓴 분께서 언급하신 PHP와 자바스크립트로 프로젝트를 완료했었습니다. 그렇다 다른언어로 했다면 프로젝트 기간을 초과하고 사업비용을 탕진하고 실패했을꺼다라고 뭐 이렇게 말씀드리는건 아닙니다. 다만, 직접 겪어보니 다시 보게 되더라 라는 부분에 있어서는 공감합니다.

  • Tamm
    응답

    이야.. 이 떡밥을 이제야 물게되다니 안타깝군요(?) 저 역시 학창시절부터 20대 초반까지 PHP를 주력으로 사용했던 입장으로 글/댓글에 모두 공감합니다. 다만 PHP가 가진 단점에 대해 이해하되 모던 PHP라 불리는 방법론대로 사용한다면 전 아직도 PHP가 타 언어들에 비해 밀리지 않는다고 생각합니다. 최근에는 서버 사이드를 Node.js를 주력으로 사용하는 입장으로 프로그래밍 언어는 결국 “얼마나 원하는 결과물을 빠르고 유지보수가 쉽게 만들 수 있느냐”에 달렸다고 생각합니다. 그런 관점에서 올바르게 사용한 JavaScript와 PHP는 최고가 아닌가 싶습니다.

  • 목마
    응답

    접근성이 얼마냐 좋으냐?

    얼마나 편리하냐?

    답은 나왔음.

  • 서대운
    응답

    DKAN을 검색하다가 우연히 이글을 읽었습니다.
    재밋에 한참을 읽었네요..
    쭉 읽다보니 11월엔 아직 리플이 없어서(^^) 댓글 하나 늘려봅니다..

    경력이 모든걸 말해주진 않지만
    이글의 저자님과 위에 22년차님처럼 긴 시간동안 시장의 흐름에 따라
    ASM 부터 java,node.js 까지 흘러오게 되었습니다.

    모든 언어의 장단점은 다 있지만,
    프로젝트가 인력/기간등의 여유가 있을때는 Java로 진행하고,
    속도전을 빠르게 해야 할때는 PHP로 진행하고 있습니다.

    주제와 좀 다른 내용일 수 있으나,
    언어를 장단점을 논하기 이전에 개발자의 인성이나 케릭터의 문제가 더 크지 않을까 싶습니다.
    Java가 아무리 재사용성이 높다고 하더라도, PHP가 속도전에 강하다고 할지라도
    언어를 재대로 이해하지 못하고 개발 한다면 언어의 장단점은 무의미 해지지 않을까요?

    전 개발자(관리자/의사결정권자) 케릭터의 문제이지 언어의 문제는 아니라고 봅니다.
    이 포스팅이 PHP의 고찰정도로 생각해본다면 PHP의 손을 들어주고 싶네요.

    혹시, 개발자 새내기가 이글을 읽으신다면, 이 한마디를 해주고 싶습니다.
    현재 JAVA가 대세이긴 합니다만, 개발자는 한가지 언어만을 해선 안됩니다.
    여러가지 다양한언어의 사상을 이해하고, 공부를 개을리해서는 안됩니다.

    나중엔 위에서 말한 관리자/의사결정권자가 되었을때
    수평적인 폭넓고 다양한 경험을 기반으로 안정적인 의사결정을 해야 하는데
    이러한 기반이 없이, 수직적인 하나에 대한 깊이만 있다면 자가당착에 빠지게 되고
    심지어 조직을 위험에 빠트리는 오류를 범할 수 있습니다.

    우리 후배님들은 위 선배님들께서 하신 말씀을 잘 보시고
    필요한 부분을 취하시기 바랍니다.(사자성어로 멋지게 마무리 하고 싶었는데. 기억이…..)

  • 득득이
    응답

    안녕하세요.
    올 여름부터 뜬금없이 웹 개발을 공부하고 있는 학생입니다.
    웹 개발을 위해 데이터베이스는 어떤 언어로 만드는 것이 좋을까 궁금해 검색을 하다가
    이 글을 보게 되었습니다.
    제가 배우는 학원만해도 과정 마지막에 php와 mysql을 배웠는데요
    배우면서도 선생님도 그렇고 php잘 안쓴다고 이야기를 하면서 가르쳐 주더라고요
    위에서 말씀하신 점들을 보면 저는 php가 어떻게 보면 실용적이고 나쁘지 않다고 생각하는데 말입니다.
    이 글과 위 선배님들의 의견을 보고 php를 파보려고 합니다. ㅎㅎ

  • 응답

    그냥 자신에게 맞는 언어를 선택하면 되지.
    전부 다 하나같이 자기중심적 사고를 가지고 말을 하고 있구먼.

    저 위에 어떤 양반은 PHP를 까 내리면서도 왜 까 내리는지 이유 하나 없고.
    아래쪽에서 2번째 위에 양반은 PHP를 칭하면서도 왜 칭하는지 이유 하나 없고.

    그냥 자기들이 써보지 않았으면 입을 다물고 있으면 되는데.
    뭐라도 아는 척하려고. 어떻게든 자신의 과시하려고.

    언젠간 불순분자 놈들의 인생에 피눈물 흘릴 날이 꼭 오리라.

  • 지나다가
    응답

    PHP로 짤경우 대부분 예외처리 디버깅 유닛테스트를 전혀 고려하지않습니다. 게다가 PHP로된 라이브러리 예제가 안좋은 구현이 너무 많습니다.

    서버 메모리에 죄다 박은다음에 파일이 쓰거나하는 등…

    스트립트 언어상 IDE에서 제대로 지원하는 것도 힘들고, 그러니 메모리리크 엉터리 프로그램을 짜놓고도 부하테스트도 전혀 하지않고 납품하는 경우가 많습니다.

    PHP할바에 파이선이나 노드, 스칼라 보는게 훨씬 이득입니다.

  • 게임개발자
    응답

    저는 웹개발자는 아니지만 한 때 웹개발을 했던 사람입니다.
    php java를 둘 다 써본 경험으로 당프로젝트에 효율적인 언어를 쓰면 된다가 제 생각이고요 양질의 빠른 아웃풋이 장땡이니까요
    소규모 찍어내기 에이전시라면 두말필요 없이 php를 쓰겠습니다.
    플젝을 진행하다보면 중간에 개발자가 바뀌고 개발자 특성상 수정보다 다시 만들자 이런 쪽으로 갈 가능성이 크므로 그럴 바엔 첨부터 java보다 php가 유리하지 않겠나 해서 php에 한표입니다.

  • 블랙이
    응답

    좋은글 잘 읽었습니다.제가 생각하는 PHP는 낮은 학습시간 대비 빠른개발과 높은 생산성에 최고의 언어중 하나 라고 생각 합니다.
    저도 SI자바 개발로 먹고 살고 있습니다만, 왜~ 교모가 크기 않은 기업에서 자바로 개발하는지 의문이 많이듭니다.
    다들 자바가좋다고 하니까 그런것도 있고, 또 대부분의 개발업체에서는 자바로 개발해야한다고 떠들고 다닙니다.예전에 어디서 들은말이 있는데.
    한참 정부프로젝트가 많은 시절에 개발단가를 산정할때, 업체에서 정부쪽에 개발비용을 많이 받기위해 나름 외국에서 고급기술이라고 하는 것들과,비싼 장비및 소프트웨어를 납품하기우해 자바와 자바 관련 개발장비, 소프트웨어를 정부에 권유 했다고 하더군요.
    물론 해외에서도 보안및 성능이 좋다는 말들이 여기 저기서 이야기 하니까. 국내도 그냥 그런것을 받아 들인것이겠죠.
    마치 국회의원들이 무조건 선진국들이 하는건 무조건 다 따라하듯이요. ㅋㅋ

    하여간, 지금은 사실 언어 따위는 별로 중요 하지 않다는 거죠.누가 빨리 자기가 운전할줄 아는 걸로 서울까지 가느냐가 중요 하죠.어짜피 큰차던 작은차던 기름(학습곡선) 먹는 것들 유지비 차이라 생각 합니다. PHP는 상당히 유지비가 적고 오픈소스 소프트웨어가 많다는 장점이 아주 많고,오래 됐지만 게시판등, 기능이 다 구현되어 설치하고  그냥 사용해도 될만큼 좋은 소스들이 많아요. 개발 서버 셋팅도 아주 쉽습니다.
    물론 앞으로는 nodejs 가 좀 php의 영역을 상당수 대체 할것이라 생각 됩니다만, 그래도 예전에 만들어 놓은 오픈소스 소프트웨어(워드프레스)수정 해서 사용하려면 역시 PHP를 써야 합니다.개인 개발자나 중소기업에서는 PHP가 메인으로 사용되어야 한다는 저는 생각 합니다.아주 범용적이고, 인터넷 돌아 다니다 고객이 원하는 기능이 있는 소프트웨어 찾다 보면 이미 PHP 되어 있는 것이 상당이 많아요.머 멀리갈 필요도 없이 워드프레스가 대표적이네요.
    아~요즘 SI자바 개발 셋팅을 64비트에서 원도우7 이상에서 하시려면 적어도 cpu i5 + 8G 램이 최소 개발 사양이구요.기본은 cpu i5 + 16G 이상
    이 되어야 개발 하는 그나마 컴퓨터 던지고 싶지 않더군요.
    저는 다음 프로젝트에서 cpu i7 + 32G 로 개발 노트북을 사야 겠어요.자바 기반의 개발은 편리함도 주지만, 정말 고사양 개발환경을 원합니다.
    그에 비해 PHP는 정말 낮은 사양으로 개발을 할수 있더군요.
    하여간 저는 이글을 쓰신 분의 말에 많은 공감이 갑니다.

  • 10년은되었나
    응답

    php가 문제가 아니라 개발자 커뮤니티 분위기, 수준?이 문제 인것 같습니다.

    다른 언어 커뮤니티들은 아무리 보수적인 분위기의 언어라도 새로운 기술이나, 기법등이 검증이 되면 나름 빠른속도 소개되고 정착되는데요,
    해외는 어떨지 모르겠지만, 유독 php쪽만 그렇지 못하고 있어요.

    페북 커뮤니티 등에서 몇년째 모던 php 캠패인(?)을 하고 있지만… 글쎄요, 솔직히 아직도 대부분은 옛날 방식으로 하고 있는것으로 보입니다.
    mvc패턴만 써도 정말 양반이죠.

    개발자 모임, 행사등에 대해서도 할말이 많습니다.
    자바스크립트, 스칼라, 스프링 심지어 국내에선 개발자도 적은 파이썬은 코엑스 행사장까지 빌려가며 할 정도로
    각 언어, 프레임워크 커뮤니티등에서 규모 관계없이 주기적, 비주기적이든 상당히 자주 각종 행사 모임등이 열리는데요,
    php는 그렇게 개발자 풀이 많으면서도 정기적으로 대규모 행사 모임이 있다는 얘기를 거의 듣지 못했습니다.
    그나마 최근에 들었던 소식은 xe쪽이였는데, 이마저도 개발자위주가 아니였다는 얘기를 들었습니다.

    아무리 소수의 몇몇 개발자들이 아무리 좋다고 하면 뭐합니까. 좋은걸 줘도 그것만 버리고 쓰는걸요.
    이쪽 개발판은 xe와 워드프레스가 죄다 망쳐놓은것 같아요.

    • PHP자영업자
      응답

      국내에도 있어요. 근데 PHPCon은 없고 네이버 지원받는 XE가 여는 연례행사가 가장 큰 규모일거예요. 모던PHP와 라라벨에 관해서 가장 한국에서 진보적인 제스처를 취하는 커뮤니티일 겁니다.

      글쎄요… 한국에 워드프레스 개발자가 있긴 한가요? 영미권이야 워드프레스가 버려놨다고 할 만 하지만 한국은 워드프레스 플러그인 만들 수 있는 개발자도 얼마 없을거예요. 정확히는 제로보드와 그누보드가 다 버려놓은거죠. XE는 그래도 객체지향적인 접근을 꽤 오래전부터 했던 툴입니다. 한 2009년에 처음 나왔던걸로 기억하는데 말이죠.

  • 응답

    완전 싸구려 혹은 무료 웹호스팅에서조차도 지원을 해주고, 15분이면 게시판 내지 홈페이지를 만들 수 있는 무료 CMS도 존재하고, 실시간으로 답변이 달리는 커뮤니티도 있는데, 개인 사용자가 이용하기에는 php만한 언어가 없습니다.

    타언어 사용하는 분들은 애써 이런 장점은 장점이 아니다라고 하며 언어구조가 어떠니하는데, 그런 분들 업체에서 작은 게시판 하나 달아달라고 하면서 그래도 요즘 어지간한 게시판에 다 있는 스크랩이랑 쪽지보내기랑 좋아요 버튼 넣어달라고 했을 때, 본인이 사용하는 언어로 커스텀 하시나 봅니다. 얼마나 삽질하며 만들지 정말정말 궁금하네요.

    php7 이후 옛날 이야기가 되어가고 있는 잘못된 디자인의 프랙탈을 아직도 들먹는 그런 분들은 도대체 얼마나 아름답고 이상적인 코딩을 할 수 있는 분들일까요? 다들 os라도 만드는 분들이신가. 적어도 웹에 있어서만큼은 HTML과 CSS와 자바스크립트의 발전으로, 점점 서버단에서 무슨 언어로 돌아가는지가 중요해지지 않고 있습니다. 그저 값싸고 빠르면 됩니다.

    공학에서 가장 큰 가치는 코스트. php 비판하는 분들 글을 읽어보면 이 분들은 엔지니어가 아니라 마치 과학자 같다는 느낌을 받는 건 저 뿐일까요….

  • 잡식개발자
    응답

    단기적이고 소규모에서는 php 가 좋죠.
    node.js 가 더 좋다고 생각합니다만은…
    장기적이고 대규모라면 java 같은 oop 가 좋죠.
    전 mvc 마저 부정하는 개발자를 만나봤는데… 그 분이 양산하는 코드는 오로지 그분만 수정 가능하죠…
    그런 코드는 팀프로젝트에서 암이죠.

  • 안성주
    응답

    잘 읽었습니다. 한 사람의 PHP 개발자로 저와 같은 생각을 하고 계신분이 있다니 너무 반갑습니다.
    댓글들마저 하나하나 다 읽어보게 되더군요.
    비록 저는 워드프레스는 사용하지 않지만 PHP라는 언어의 최고 장점은 빠른 생산성에 있다고 생각합니다.

  • PHP자영업자
    응답

    업종 변환을 앞두고 있는 조그만 구멍가게 사장입니다. 웹에이전시였구요, PHP 썼습니다. 한국에서 사업하는 사람중에 젠드 시험 패스한 사람은 몇 안될겁니다.

    길게 적었다가 뭐 이렇게까지… 라는 생각이 들어서 그냥 단도직입적으로 말씀드립니다. (한국에서) PHP에는 미래가 없습니다. 일단 PHP 쓰는 에이전시들 요즘 많이 망하거나 문닫기 직전까지 몰리는거 아시는 분들은 아실겁니다. PHP 시장 자체가 불경기에 영향을 민감하게 받는 구조고 뭣보다 매출액이 적은 언어입니다. 그러다보니 인건비도 적습니다.

    저도 고용주 입장이지만 PHP하는 사람들 참 인건비 싸게 부려먹힙니다. 우리나라에서 PHP는 경력 인정도 제대로 못받는 후진 언어입니다. 워드프레스 쪽을 파시는게 그나마 가망이 있습니다. 그런데 모던PHP가 대세가 되면 뭐 좀 달라질까 하는 분들 계신줄로 압니다.

    한마디만 할게요. 택도 없습니다. 일단 모던PHP, 라라벨 이런게 갑자기 튀어나온 줄 아시는 분들이 계시는데 천만의 말씀입니다. 심포니2같이 라라벨의 기반이 되었던 프레임워크들, 유럽 미국에서 널리 쓰이면서 PHP 개발자들이 억대 연봉 땡겨갈때 한국에서는 고작 제로보드, 그누보드로 푼돈이나 만지던게 불과 몇년 전입니다.

    라라벨은 어디서 새로 만들어진게 아니라 그냥 well-designed된, 기존의 프레임워크들의 개선 판이었을 뿐이에요. 근본적으로는 그렇습니다. 한국에서는 쓰일 일이 요원한 프레임워크입니다.

    • 행인
      응답

      네. 이게바로 PHP가 아무리 발전하고 성장해봤자, 한국에서 온전할수 없는 이유죠. 당신같은 분들이 PHP한답시고, 어디가서 이렇게 말하고 다니고, 그렇게 해왔기때문에 PHP 바닥이 이렇게 되어버렸고, 또 아직도 많은 잔해들이 남아서 발목을 잡고있죠. 저는 당신같은 분들이.. 왜 아직 다른걸로 넘어가지않고 PHP를 사용하고 있는지 모르겠습니다. 도저히 모르겠어요 ㅎㅎ P7 이상의 환경으로 업그레이드는 하셨으며, 아니 그전에 PHP THE RIGHT WAY 정도는 다 외우고 다니시는지 궁금하네요. 뭐 얼마나 넓은 시장에서 활동하시면서 PHP는 미래가 없고 망했다고 호언장담하는지는 모르겠습니다만 빨리 은퇴를 해주시는게 한국 PHP시장에 도움이 될것같네요 아저씨.

      • PHP자영업자
        응답

        워낙 수준떨어지니 다 접어두고 한가지만 여쭐게요. 뭐 PHP the right way같이 나온지 꽤 된 자료 끄집어오는거 보니까 견적나오긴 하지만. 한국어 번역은 꽤 최근에 됐나봐요? 님 같이 콩고물이나 줏어먹고 아는체 하는 사람 한둘 본게 아닙니다.

        바로 당신같이 개구리 우물 안 인줄 모르고 아는척 하는 스크립트 키드들때문에 한국 PHP 시장이 이렇게 된거니까 엄한 사람 비난하지 마세요. 외국에서도 PHP하면 보안 문제, 스파게티 코드,기본적인 지식이 결여된 저급 개발자라는 인식이 어느정도 있지만 한국만한 곳은 없어요. 이렇게 PHP 커뮤니티에 기여 안하는 나라도 드물고, 또 모던PHP에 대해서 이상한 자부심갖고 설쳐대는 사람들이 있는 나라도 없습니다. PHP7 설치하고 속도 빨라지니까 신문물 처음 접한 조선인처럼 막 오르가즘 느끼나요?

        저급하게 떠들고 다니지 좀 맙시다. 루비 개발자들이 보면 얼마나 우습겠어요.

        모던PHP가 협업, 생산성, 퍼포먼스 측면에서 큰 개선이 된 건 사실이지만, 그렇다고 무슨 없던게 갑자기 생겨난게 아니라는 점을 지적한겁니다. PHPNG로 방향성이 잡히면서 커뮤니티에 활력이 생기기 시작했고 기존에 점진적으로 논의되고 개발되던 것들이 주류로 힘을 받기 시작한겁니다. 애초에 근본이 없다가 갑자기 모던PHP로 넘어가는 추세인 한국에서 지금 상황이 게임체인저가 될거라고 생각하는건 여기 실정을 고려한다면 우스운 얘기예요.

        이것도 못알아먹으니까 그런 엉뚱한 소리나 하고 있겠지만 ㅉㅉ

        • 박 종희
          응답

          제가 루비 개발도 하고(심지어 현재도 루비 개발로 꽤 벌고 있습니다), 모 회사의 CTO를 했을때는 파이썬이 주 언어였습니다. 그런데 그때도 지금도 PHP로 개발하는 것을 선호합니다. 현재 legacy문제를 심각하게 생각하는 언어는 Go와 PHP밖에 없습니다. 하나 더 추가하면 Javascript겠지만, 아직 module 스펙이 혼돈이라서요.

          님이 무슨 소리를 하시는지 전혀 이해를 못하겠지만, 세상에 이런 분이 있다는 것을 알리기위해 댓글을 삭제하지는 않겠습니다.

  • 지나가던개발자
    응답

    글하고 댓글들을 읽으면서 많은 생각이 드네요.
    올해로 PHP 사용 9년차인데 아직까지 “PHP라서 불편했다”라는 생각은 들지 않았습니다. (Node.js나 Python으로도 개발했었습니다.)
    사실 무슨 언어로 만들든 그 목적이 달성되기만 한다면 충분하다고 생각합니다.
    개발하는 과정에서 코드의 일관성도 중요하고 협업하기 좋아야 한다는 것은 당연하게 생각하지만, 그건 어느 언어로 개발하더라도 신경써야할 문제이지 PHP의 문제는 아니라는 점이지요.
    다른 설정을 크게 고려할거 없이 쉽게 설치할 수 있고, PHP7이 되면서 속도도 2배가까이 빨라지고, Nginx + PHP-FPM + PHP7 조합을 같은 사양의 서버에서 퍼포먼스로 이길 언어 찾기 쉽진 않을 겁니다.

  • 춘삼이
    응답

    1년된 글이 아직도 댓글이 ㅎㅎㅎㅎ

    가장 좋은 언어는 돈버는 언어입니다.
    돈버는 언어는 클라이언트의 요구사항을 빠르게 개발할 수 있어야 하며, 오랫동안 (유지보수 하는동안) 오류가 가장 적게 나는 언어입니다.
    그것은 바로 개발자에게 가장 최적화된(개발자가 가장 잘아는) 언어라는 것입니다.
    PHP가 되었건 JAVA가 되었건 다른 어떤것이 되었던간에 말이죠.

    저는 웹 개발을 하다가 시스템 엔지니어로 업종변경한 뒤로도 SE 일하면서 필요한 어플들은 직접 개발해서 사용하는것을 선호하고 있습니다.
    회사의 사항에 맞춰 플랫폼 사항에 맞춰 필요한 사항에 맞춰서 개발하고 있고요.
    특정 사항이란 회사나 프로젝트의 특성 및 규모에 따라 Windows가 될 수도 있고 Linux가 될 수도 있는 것이구요.
    특성에 맞는 OS에 따라서 PHP가 될수도 JAVA가 될수도 GO가 될수도 Python이나 Ruby가 될 수도 있는 것이지요.

    시국도 거지같은데 정치인들처럼 누가 잘못햇네 누가 병맛이네 내가 잘낫네 하지 마시고
    좀 더 흥미롭고 생산적인 토론의 장이 열려야만 더 가치 있는 개발민국이 될 것 같다고 생각 드네요.

    • 박 종희
      응답

      Legacy기술은 결국 유지보수시에 문제가 생길 수 밖에 없습니다. 기능 추가를 아예 안하고 maintenance만 한다면 모르겠지만요. 그런 의미에서 PHP나 GO와 같은 언어가 유리하다는 것이죠. 이제와서 JAVA6는 좀 애매하죠.. 토론자체는 좀 비생산적인 부분이 있고 제가 전달하고자 하는 본래의 목적보다 PHP혐오자들의 성토의 장이 되어서 아쉬운 점이 있습니다.

  • PHP철학
    응답

    PHP의철학

    I actually hate programming, but I love solving problems.
    저는 정말로 프로그래밍을 싫어해요. 하지만 문제를 처리하는 것은 좋아하죠.
    -> 프로그램을 만든다기보다는 문제 해결을 위한 코드 뭉치가 필요했다

    I really don’t like programming. I built this tool to program less so that I could just reuse code.
    저는 정말로 프로그래밍을 싫어해요. 저는 코드를 다시 써서 프로그래밍을 덜 하게 만들기 위해 이 툴을 만들었어요.
    ->묻지마 재활용. PHP에 전역적으로 배치된 천여개3의 내장 함수입니다.

    I was really, really bad at writing parsers. I still am really bad at writing parsers.
    저는 예전에 정말 파서를 잘 못만들었어요. 그리고 지금도 저는 파서를 잘 못만들어요.
    ->그는 PHP 파서를 잘 못만든다고 합니다. 다행히도 지금은 그의 말대로5 PHP를 그가 혼자서 만들진 않습니다. PHP 7에선 AST도 도입되었죠. 하지만 그는 PHP라는 문제 해결에 있어서 파서를 막 만들었습니다.

    I’m not a real programmer. I throw together things until it works then I move on. The real programmers will say “Yeah it works but you’re leaking memory everywhere. Perhaps we should fix that.” I’ll just restart Apache every 10 requests.6
    ->저는 진짜 프로그래머가 아니에요. 다 던져두고 돌아가게 되면 그때 행동해요. 진짜 프로그래머들은 말하죠. “그래, 돌아는 가, 하지만 당신 코드는 산지사방에서 메모리가 새고 있어. 어쩌면 우리가 그걸 고칠 수 있을지도 몰라” 저는 그냥 Apache를 요청 10회마다 재시작할 뿐이에요.

Leave a Comment

Contact Us

We're not around right now. But you can send us an email and we'll get back to you, asap.

Not readable? Change text.

Start typing and press Enter to search