블로그 이미지
JEEN

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

Rss feed Tistory
IT/Perl 2008.06.09 13:06

[ Perl ] Catalyst 를 이용한 웹 서비스 개발 #1

사용자 삽입 이미지

 Python 진영에서 Django 같은 게 있고, Ruby 진영에는 Rails 같은 게 있고, PHP 진영은... 뭐가 있는 지 모르겠습니다. Zend Framework일까요?
 그럼 Perl 에서는 뭐가 있을까요? 대표적인 것이 Catalyst 와 Jifty 입니다. (Catalyst 는 네트워크 쪽에 일하시는 분들이 얘기하는 그 Catalyst 가 아닙니다 :-) 이중에서 다수의 이용자에게 광범위하게 사용되고 있는 펄 웹 프레임워크 Catalyst 를 이용한 간단한 웹 프로그래밍입문을 다뤄볼까 합니다. 물론 저 역시도 Catalyst 를 깊게 사용해본 적이 없습니다. 이와 비슷한 프레임워크를 사용하면서 대충 Catalyst 도 이렇게 움직이지 않을까 하는 생각으로 시작하려고 합니다.
 Catalyst 한글 문서화 작업도 괜찮겠다 싶습니다. 현재 한국에서 Catalyst 에 관한 문서는 전무하다 시피 하거든요. 관심있으신 분들은 doc.perl.kr 에 들러주시면 되겠습니다.

 _____
 
 그럼 우선 설치부터 시작하죠.
 CPAN 에서 Task::Catalyst 를 설치합니다.(cpan Task::Catalyst)
 꽤나 덩치가 있는 웹 프레임워크라서 그런지 이것저것 많은 모듈 의존을 하고 있습니다. 그렇게 의존된 모듈까지 전부 인스톨합니다. 설치가 끝나면 셸로 돌아옵니다.
 
 그리고는..
사용자 삽입 이미지
catalyst.pl 이라고 타이핑하면 이렇게 나오게됩니다. 여기까지 나오면 설치는 잘 하신 겁니다.

 그렇다면 적당한 프로젝트를 하나 만들어보겠습니다. 위의 설명 예제에서도 나와 있듯이
사용자 삽입 이미지
  전 'Oops' 라는 프로젝트를 만들어보려고 합니다. 셸에서 'catalyst.pl Oops' 라고 쳤습니다. 그러면 프로젝트를 움직이는 기본 뼈대(Skeleton) 을 만들게 됩니다.

  그 뼈대의 구조는 어떻게 되느냐면 이렇습니다.
사용자 삽입 이미지
  프로젝트 루트는 프로젝트의 움직임을 관장하는 lib, 그리고 웹 서버를 올리기 위한 스크립트등의 script , 그리고 테스트 스크립트를 놓는 t, 템플릿 파일이나 정적 파일들을 보관하는 root 로 나뉩니다.그리고 config 설정을 위한 YAML 파일 등도 있죠.

  그럼 lib 의 구성은 어떻게 되어 있을까요?
사용자 삽입 이미지
  lib 의 아래 디렉토리에는 프로젝트 초기의 행동을 정의할 수 있는 Oops.pm 가 있고.. 그 밑의 디렉토리에서는 Controller , Model, View .. 흔히 말하는 MVC 패턴을 지원하는 디렉토리 구조를 가지고 있습니다.  
사용자 삽입 이미지
그럼 script에는 어떤 것들이 있냐면..
 *_cgi.pl, *_fastcgi.pl 은 딱 보시면 아시다 시피 cgi, fastcgi 의 스크립트 입니다.
 *_server.pl 는 내장 서버를 이용해서 웹 서버를 띄우게 됩니다. 아파치 따위의 의존없이 간편하게 웹서비스를 띄울 수 있습니다.
 *_create.pl 는 Model, View, Controller 를 새롭게 생성할 수 있습니다.
 *_test.pl 은 테스트를 위한 스크립트죠.
 
  그럼 간단하게 웹 서버를 띄워보도록 하겠습니다. './script/oops_server.pl' 을 실행하면..
사용자 삽입 이미지
  이와 같은 각종 디버그 정보와 함께 웹서버가 가동됩니다. port 는 3000번을 기본값으로 사용하고 있구요. 당연히 옵션을 통해서 웹 서버의 제어가 가능합니다.

 'http://localhost:3000' 으로 접속하면...
사용자 삽입 이미지
이와 같은 화면을 볼 수 있습니다. 이렇게 해서 간단하게 Catalyst 를 이용한 웹 개발을 시작하실 수 있습니다.

 그럼 다음에는 Controller 를 추가해서 이러쿵 저러쿵 하는 방법에 대해서 알아보겠습니다.

 ___
신고
TOTAL 464,271 TODAY 46

티스토리 툴바