블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Perl 2009.01.27 17:38

[ Perl ] 경량프레임워크로 시작하는 웹개발


  일본의 유명 Perl 해커 tokuhirom 씨에 의해 만들어진 MENTA 는 한때 Mojo 가 불러일으킨 경량프레임워크 붐을 타고 만들어진 프레임워크입니다. 지금 소개하는 것도 상당히 늦은 감이 없지 않아 있지만... (사실은 실제로 써볼 엄두가 안나봐서 안쓰고 있다가, 업무상으로 쓰게 될 일이 생겨서 이렇게 건드리게 되었습니다.)

 일단은 가볍게 설치부터...

svn export http://svn.coderepos.org/share/lang/perl/MENTA/trunk ~/menta

 로 export 하면 대략 다음과 같은 디렉토리 구성이 나옵니다.
app 
 - app/controller : 어플리케이션을 정의
 - app/data  : 어플리케이션에서 사용할 데이터 (SQLite DB file 따위)
 - app/static : 그림파일, CSS, Java Script
extlib - 저자에게 엄선된 CPAN 모듈
lib - MENTA 가 정의된 라이브러리 디렉토리
plugins - MENTA 에서 사용할 플러그인
t - MENTA 자체의 테스트코드

 튜토리얼등은 MENTA 의 STANDALONE 서버를 돌리면 자세하게 소개되어 있고(app/controller/*), 아래의 MENTA 홈페이지에서도 소개되어 있습니다.
 PHP 스러운 템플릿 파일(.mt)을 준비해서 HTML과 Perl 코드를 혼용해서 쓸 수 있죠. 
 CGI 서버 뿐 아니라, Mod_Perl 로도 돌릴 수 있기 때문에 어느 정도 규모에서도 써볼만 하지 않을까 싶습니다.

  * STANDALONE 서버 가동 (기본 포트는 5555)
./bin/cgi-server 

  * Mod_Perl 사용예제는 매뉴얼 페이지를 참고하세요. (http://gp.ath.cx/menta//manual/mod_perl)

 컨트롤러는 .pl 파일이나 .mt 파일로 지정합니다. 그리고 .pl 은 반드시 최소한 아래와 같은 구조로 되어 있어야 합니다.
use MENTA::Controller;

sub run {
  # blahblah...
}

 MENTA::Controller 를 use 했을 때, 기본적으로...
use strict;
use warnings;
use utf8;
 을 깔고 들어가기 때문에 추가로 지정해줄 필요는 없습니다.
 그리고 .mt 의 경우는 자동으로 렌더링되지만, .pl 의 경우는 템플릿을 지정해서 렌더링해주거나, 다른 HTTP Response 를 지정해줘야 합니다.
  OOP 에 목메지 않고도 간단하게 쓸 수 있는 여러 튜토리얼들이 준비되어 있기 때문에 별다른 설명은 필요 없을 것 같네요.
  개인적으로 필요한 기능이 있다면 MENTA lib 를 직접 건드리는 것도 좋겠지만, 대개의 간단한 공용기능을 정의하려면 plugins/* 에서 정의할 수 있습니다. 저같은 경우에는 MENTA 코어를 건드리지 않으면 좀 번거로워지기때문에 MENTA, MENTA::Dispatch, MENTA::Context 를 만지기도 했습니다.
  Perl 에 대해서 별로 모르거나, 혹은 Perl 로 하는 웹개발에 관심이 있으시다면 Catalyst 처럼 학습비용이 큰 것이 아닌 이런 경량 프레임웍부터 시작하는 것도 괜찮지 않을까 생각됩니다.

신고
TOTAL 464,172 TODAY 8

티스토리 툴바