2011년 2월 20일 일요일

jsp,python, django,php

현재 제타길드의 주요 개발은 모바일 앱이다. 문제는 모바일 앱만으로 우리가 원하는 서비스를 제공하기에 미흡한 점이 있다.

따라서 모바일 앱 연동 웹 서비스를 구축하려고 준비 중이다.

문제는 지난번 포스팅에서도 언급한 바와 같이 웹쪽 개발에 너무 오래 손을 놨다는 것이다.

기술적/경영적 판단을 하기 위해서는 충분한 사전 지식이 있어야 하는데, 불행히도 제타길드는 웹 분야 쪽으로 경험이 별로 없다.

즉, 올바른 판단을 내리기 어렵다는 의미이다. 그래도 가야될 길이기 때문에 하는 수 없이 기존 오픈소스 플랫폼과 웹 기술의 검토를 하였다.

검토 조건은 다음과 같고, 검토 후보는 JSP, PHP, RoR, Python, XE, KimsQ 였다.

  • 서비스의 하부 구조까지 100% 컨트롤이 가능할 것
  • 서비스 요구가 있는 경우에 1달 이내로 서비스 구현이 가능할 것
  • HTML 디자이너와의 협업이 쉬울 것

하나씩 검토해보자.

1번 항목의 목적은 상용 서비스를 하는 것이 목표이기 때문에 외부 개발 일정이나 환경에 영향을 받는 것은 문제가 있다고 판단해서 넣은 항목이다.

지난번 텍스타일에 게시판 붙이는 닭짓을 해보고나서, 남의 손에 운전대를 맡기는 것이 얼마나 위험한 일이라는 것을 다시 한번 깨달았다.

그런 점에서 XE는 제외되었다. 물론 오픈 소스이기 때문에 소스를 마음대로 컨트롤할 수 있다는 장점이 있지만,

파악하기 힘든 복잡한 구조와 코어 업그레이드 시에 우리 시스템도 문제없이 같이 업그레이드를 할 수 있다는 보장을 하기가 쉽지 않았다.

KimsQ는 구조 자체가 상당히 깔끔해서 끝까지 아쉬움이 남았지만, 계속 발전되는 과정에 있는 플랫폼이라서 후보에서 제외되었다.


2번 항목의 목적은 최대한 빠른 구현이 가능해야 한다는 점이다.

사실 1번 항목과 배치되는 부분인데, 반조립 상태인 오픈소스 플랫폼이야말로 이 조건에 제대로 부합된다고 볼 수 있다. --a

만일 단순한 카페나 블로그, 쇼핑몰을 하겠다는 생각이 있었다면 아마도 XE나 KimsQ를 골랐을 것이다.

어쨌든, 2번 항목에서 점수를 많이 딴 것은 RoR과 Python이다.

Ruby와 Python의 생산성은 이미 어느정도 경험을 해본데다가 두 언어 모두 걸출한 웹 프레임워크를 제공한다.

PHP? 음.. 국내에서는 웹 개발과 관련된 가장 많은 정보를 보유하고 있는 언어이다.

그 점은 개발에 큰 도움이 될 것이다. 단, 개인적으로 PHP를 싫어한다. 순전히 개인적인 이유이다.

그리고 PHP를 이용한 높은 생산성이란 얘기는 별로 들어본 적이 없다.


3번 항목은 HTML 디자이너와의 협업이 편할 것이다. 즉 언어가 좋은 템플릿 프레임웍을 갖고 있냐는 것이다.

이 3번 항목에서는 JSP를 제외하였다. JSP는 물론 훌륭한 MVC 프레임웍을 제공한다.

그러나 JSP 페이지 자체에 스크립트릿이 많이 들어가고, 자바 코드가 포함되어 있다는 것은 에러라는 의견이다.

PHP의 smarty와 같은 걸출한 템플릿 프레임웍이 JSP에 없는 한, JSP를 쓰고 싶은 생각은 솔직히 없다.

아... 그러고보니 PHP가 좀 아깝네.. --a


결국 남은 것은 RoR과 Python이다. 우... 둘다 강력한 후보들이다.

하루 정도 고심 끝에 Python을 선택하기로 했다.

RoR? 좋지... 웹 개발을 위한 종합선물세트 아닌가.. RHTML도 맘에 들고...

하지만 Deploy의 문제와 문법이 코드 통제성을 얻기 어렵다는 문제점이 걸려서 결국 Python으로 정했다.

Python에는 다행히 Django와 같은 프레임웍이 존재하기 때문에 RoR 정도까지는 안되도, 꽤 괜찮을 것으로 기대된다.

아, 물론 Python과 Django라는 국내에서는 생소한 조합이라는 것이 걱정이긴 하다.

하지만 남들이 가보지 않은 길을 먼저 가본다는 기쁨도 있으니까... 겁보다는 호기심이 먼저 고개를 쳐든다.

나중에 하다가 헤매는 내용, 실패한 내용, 혹은 성공한 내용에 대해서는 따로 포스팅을 하도록 하겠다.

파이쎤과 django의 로고... 아주 세련된 건 아닌 듯..