자바가 좋냐 PHP 가 좋냐?
2000 년대 초반 PHP 가 뜨기 시작하면서부터 있어왔던 이 질문은 무려 10년이 넘은 현재까지도 풀리지 않는 난제로 남아있는 듯하다.
여태까지 그 질문에 대한 명백한 해답이 없다는 것은 그만큼 양 진영의 장단이 뚜렷하다는 반증일테고, 트렌드가 급변하는 “웹” 이라는 분야에서 10년넘게 주류로 살아남았다는 것을 봤을때 “둘다 대단하다” 라고 결론내도 부족함이 없을것이다.
이 글의 목적은 php 와 자바간의 성능차이를 말하고 싶은건 아니고, 두 언어중에 하나를 선택해야만 하는 사업가나 개발자를 위한 글이다. 당연히 개인적인 의견이고, 일반화나 비약이 있을 수 있다. 참고로 필자의 개발경력은 php 5년, 자바 5년이니 참고하시면 좋을듯하다.
일단 결론
긴글 읽기 싫은 분들을 위해 결론부터 얘기해보면 아래와 같다.
1) 블로그/게시판/포럼 형태의 프로젝트 – php
2) 좀더 복잡한 기능의 프로젝트 – java
3) 개발을 업으로 삼고 싶다면 – 둘다
1) 블로그/게시판/포럼 형태의 프로젝트
블로그나 게시판등 오픈소스로 구현할수 있는 수준의 프로젝트라면 단연 php 다. 굳이 있는걸 다시 만들 필요는 없기 때문이다. 일례로 간단한 블로그를 구축하는데 드는 시간과 돈을 측정해보자.
php 로 블로그를 구축
개발용 APM 원클릭 설치 (5분)
넘쳐나는 오픈소스 블로그 중 택일해서 다운로드 (5분)
브라우저를 통한 간단한 설치 (5분)
저가 호스팅 구매 (월 천원)
소스 업로드 (5분)
끝
자바로 블로그를 구축
개발용 mysql 및 웹서버 수동설치 (30분)
오픈소스 블로그 검색 (하루)
좋은게 없어서 직접 개발 (이틀)
저가 JVM 호스팅 검색 (하루)
좋은게 없어서 VPN 구입 (월 5천원)
리눅스, 웹서버, DB, 배포 script 등 세팅 (하루)
소스 배포
끝
물론 웃자고 쓴 내용도 있지만 여러가지 면에서 php 가 훨씬 쉽고 간단한게 사실이다.
php 진영에는 쉽게 설치해서 사용할수 있는 오픈소스 CMS 들이 너무나도 풍부하다. 물론 자바진영에도 훌륭한 오픈소스들이 많지만, php 처럼 설치만 해주면 돌아가는 stand-alone 형태 보다는 개발중에 활용가능한 라이브러리나 프레임워크인 경우가 많다. 무료에 퀄리티 높은 CMS 는 거의 전무하다고 봐도 좋다.
실제로 자바로 서비스를 구축한 대부분의 회사들이 포럼이나 게시판에 한해선 php를 사용하는 일이 다반사일 정도다.
요새 CMS 들은 어지간한 커뮤니티 기능은 다 제공한다.
개발 환경구축, 실서버 환경구축 적인 면에서도 php 가 훨신 간단하다. 호스팅을 받아서 아무것도 하지않고 그냥 php 스크립트만 올리면 되는 경우가 대부분이다. 사이트 규모가 커져서 직접 서버를 구축해야된다면 또 다른얘기지만 , 규모가 작을때도 서버를 직접 구축해야하는 자바에 비하면 큰 장점이라고 볼수있다.
2) 좀더 복잡한 기능의 프로젝트
자바가 답이라고 생각하지만 php 로도 복잡한 기능을 충분히 구현할 수 있다. 단, 훌륭한 개발자가 있다는 전제하에다. 큰 규모의 홈페이지를 만들때는 php 보다 자바가 낫다라는 말을 쉽게 듣는데, 사실 이런 말을 하는 이유는 php 가 자바보다 떨어지는 언어라서가 아니다.
모든 개발물들은 복잡하고 규모가 커지게 되면 안정성, 보안, 효율성.. 특히 유지보수와 확장성(expandability, reusability) 등의 요소가 중요해진다. 자바로 개발된 웹프로젝트는 이런 요소들을 기본적으로 충족시킬 가능성이 크다.
우선, 자바 개발을 위해선 기본적으로 j2ee 스펙과 이를 구현한 한가지 이상의 framework 을 알아야 한다. 즉 초보자가 hello world 정도만 찍어보고 뚝딱! 웹페이지를 만들어 낼 수 없다는 것인데 이게 왜 중요하냐면, 어느정도 스펙과 framework 을 숙지한후에 만들어 내는 결과물은 일정수준의 코드 퀄리티를 보장할수 있기 때문이다. 또한 JSR 로 통칭되는 자바진영의 공통스펙과 유명 framework 들은 개발자들간의 용이한 협업을 가능하게 해준다. 이말은 결국, 협업의 효율이 좋고 사람이 나가서 새로 뽑아도 코드를 파악하고 이해하는데 시간이 적게 걸린다라는 이야기다.
이 부분에 대해서 제발 오해가 없었으면 하는것이, php 로도 충분히 고레벨의 프로젝트를 구현할 수 있으며 유명 framework 들이 존재한다는 사실이다. 다만 java 계열보다 무수히 많은 framework 들과 cms 들이 공존하고 있고, 두명의 PHP 개발자를 무작위로 뽑았을때 아마도 다른 플랫폼에서 개발해왔을 가능성이 농후할 것이라는 얘기다. 그리고 PHP 는 간단한 홈페이지를 만드는데 필요한 모든 기능을 자체 라이브러리에 가지고 있는데 이는 배우기 쉽고, 또 결과물을 만들기 쉽게 하지만 역설적으로 쉽기 때문에 전체적인 개발아키텍쳐에 대한 큰 고민없이 뚝딱 무언가를 만들기 쉬우며 실제로 이런 코드들이 빈번하게 발생한다. (후임자를 분노하게 만드는 일명 ‘발코딩’ 혹은 ‘똥’ 이라는 전문용어가 존재한다). 이러한 연유로 초급개발자 풀도 넓은 편이고 “php 로 개발된 무언가는 코드의 재활용성이 떨어지는 경우가 많다”라는 오해가 생긴 것이다.
다시 말하지만 이 모든것은 허접한 일반론일 뿐이니 실력파 php 개발자 분들이 분노하시는 일은 없길 바라고, 개인적으로 자바의 spring 이나 struts 와 같이 통일된 framework 이 없다는것이 더 큰 이유라고 생각한다.
3) 개발을 업으로 삼고 싶다
웹개발을 업으로 삼고 싶다면 자바와 php 를 모두 배울 것을 추천한다. 그리고 자바를 더 깊게 팔것을 추천한다.
자바를 알아야 하는 이유부터 보자. “일반적”으로 자바 개발자들의 수준은 꽤나 높은 편이며, 이는 많은 회사에서 인지하고 있다. 자바웹개발이 상대적으로 어렵고, 일정수준에 도달하지 않고서는 퍼포먼스를 내지 못하는 점도 있고, 계속해서 발전하는 프레임워크와 스펙을 알지 못하고는 현업에 남아있을수 없기 때문에 울며겨자먹기로 열공하는 경우가 많기 때문일지도 모른다. 대체자가 많은 php 개발자보다 ‘고급개발자’로 우대받을 수 있을 가능성이 높고 봉급도 더 높은 편이다. 얼마전 유명 스타트업이 사이트의 급성장과 이를 어떻게 대비했는지를 공유한 블로그가 있었는데, php 에서 자바로 옮긴 이유중 하나가, 새로 뽑은 우수인력들이 자바를 선호해서라는 글도 있었다. 아쉽게도 어떤 회산지 기억이 나지 않아 링크는 불가 (지어낸거 아님 ㅠ.ㅠ)
그러나 php 도 소홀하지 않는것이 좋다. 일단, php 는 구직의 문이 넓다. 중소규모의 회사라면 자바보다는 php 가 부담이 덜하기 때문에 (또 친숙도가 높기 때문에) 직업도 많고 프리랜스 기회도 많다. 또한 php 의 넓은 오픈소스풀 때문에 어쩔수 없이 php 를 건드려야 하는 경우도 많기도 하고.
PHP 보다는 자바가 공부할게 많다. framework 이나 라이브러리를 쓸때도 몇개를 다 써보고 비교해봐야하고, 트렌드가 어떻게 바뀌는지도 따라가기 더 힘들다 (더 자주 바뀌기 때문이다). 열공하자..
4) 부록
최근들어 자바진영에는 JVM 을 기반으로한 스크립트 언어들이 양산되고 있다. php 는 스크립트 언어라며 무시(?)하던 소수의 자바개발자들도 있는걸 생각하면 스크립트 언어들이 우후죽순 생기는 것이 의아하기도 하다. Groovy, JRuby 그리고 Scala 로 대표되는 이런 언어들은 php 와 같이 접근성이 뛰어나고 간단한 사이트들을 만들기에 적합하게 되어 있다. 또한 스크립트 언어이면서도 JVM 을 기반으로 하기 때문에 java 로 제작된 library 들을 사용할수 있다는 장점도 가지고 있다. 메인웹은 자바로 제작하고 관리툴을 스크립트 언어로 작성하는것도 하나의 큰 트렌드인듯 하니 관심을 가져볼 만 하다.
http://itwire.tistory.com/entry/%EB%B3%B8%EA%B2%A9-%EC%9E%90%EB%B0%94-PHP-%EB%B9%84%EA%B5%90%EA%B8%80