태그 : perl

Catalyst Framework 가이드 이상의 책 - The Definitive Guide to Catalyst



Kieren Diment and Matt S Trout, The Definitive Guide to Catalyst, Apress, 2009

Catalyst Framework 관련 책은 별로 없어서 그간은 2007년에 나온 "Catalyst: Accelerating Perl Web Application Development"밖에 찾을 수가 없었다. 하지만 이미 2년 전에 출간된 책이라 그런지 군데군데 내용이 최신의 Catalyst Framework와 다른 점도 있어서 온라인에서 관련 문서를 찾아가면서 읽어야 했다. 그러다 새로 Catalyst Framework에 관한 책이 나왔다는 Amazon 추천에 낚여 이 책을 샀다. 결과는 아주 만족이다. 한마디로 평하자면 이 책은 Catalyst Framework 가이드 이상의 책이다.

Perl의 기초 문법과 사용법은 알고 있지만 실제로 어떻게 프로그래밍을 할지는 좀 막막할 때 이 책은 훌륭한 길잡이가 될 수 있을 것 같다. 이 책은 Catalyst Framework 설명서라지만 Perl로 어떻게 프로그래밍을 하는지 보여주는 책이기 때문이다.

나는 온라인 이곳저곳에 떠도는 문서로 대충 Perl을 사용하고 있다가 한번 제대로 공부해 보고자 마음을 먹고 최신 Perl의 내용을 충실히 담고 있는 입문서라는 "Beginning Perl"로 공부를 시작했다. "Elements of Programming with Perl""Intermediate Perl"을 거치면서 대략 문법과 기초적인 도구 사용법은 아는 정도가 아닌가 생각하고 있었다. 하지만 실제 Perl로 무언가를 하기는 여전히 어려웠는데 때마침 좋은 책을 만난 거 같다.

이 책은 CPAN 환경을 설정하고 모듈을 설치하는 데서부터 시작하여 Moose를 이용하여 객체 지향적인 코드를 짜는 법, perl의 각종 도구를 이용하여 코드를 생성하고 검증하는 법, 테스트를 만들고 실행하는 법 그리고 디버거로 프로그램을 디버그하는 등 Perl로 프로그래밍하는 여러 좋은 방법들을 보여 주고 있다. 간단한 기능을 구현하고 테스트로 검증하며 여기에 점점 기능을 붙여 나가면서 이를 적절히 모듈화하고 그때마다 테스트로 검사 및 확인하는 과정을 따라가며 고수가 프로그래밍하는 모습을 옆에서 바라보고 있는 느낌이다. 이 책을 공부하며 실제 업무에도 응용하여 몇 가지 프로그램도 만들 수 있었다. 한마디로 이 책을 공부하며 Perl로 프로그래밍하는 실력이 한 단계 상승한 느낌이다.

다만 아쉽게도 Catalyst Framework 자체에 대한 설명이 체계적이진 못한 느낌이다. Catalyst Framework 전반을 다루고 있긴 하지만 체계적으로 다루고 있진 않기 때문에 이곳저곳에 흩어져 있다. 온라인에 있는 Tutorial과 매뉴얼 등으로 보충하는 것이 좋을 듯 싶다.

웹프로그래밍을 해 본 사람이 Perl을 배우고 싶다면 이 책도 꼭 보는 게 좋을 듯싶다.

by Corund | 2009/12/18 16:24 | 트랙백 | 덧글(0)

Catalyst 책이 왔다.


주문했던 책이 도착했다. Perl MVC 프레임워크인 Catalyst Framework에 대한 책이다. 사진으로만 봤을 때는 좀 묵직해 보였는데 200페이지가 안 되는 얇은 책이다.

scala와 Lift framework에 대한 책도 같이 주문했는데 이건 아직 도착하지 않았다. 같이 배송하는 걸로 선택했는데 무슨 착오가 있었나보다. 어제 배송했다니까 오는데 일주일쯤 걸릴 것 같다. 그전에 먼저 이 책을 다 읽어야겠지.

Catalyst Framework에 관해서는 이 책을 다 읽고 나면 포스팅해 볼까 한다. 어쨌든 열심히 읽자.

by Corund | 2009/06/04 14:39 | 트랙백 | 덧글(0)

wxperl 설치 포기

윈도우에 Strawberry Perl을 설치하고 wxPerl을 설치하고 있으나 안 된다.
WxWidgets은 Strawberry Perl에 같이 딸려 온 Mingw32-gcc로 무사히 설치하였으나 wxPerl은 계속 에러를 내고 있다. 에러 메시지를 봐도 무슨 뜻인지 모르겠으니 답답하다.

오늘은 설치 포기. 언제 기회 되면 다시 도전해봐야지.

PS. 역시 프로그래밍에는 리눅스가 제격인 듯.

by Corund | 2009/05/14 21:31 | 트랙백 | 덧글(0)

데스크탑 GUI 프로그래밍을 뭘로 할까?

나는 java로 jee 프로그래밍을 한다. 대부분 웹 프로그램이고 백엔드 데이터 처리를 위해 데몬을 만들거나 배치 프로그램을 작성하기도 한다. 어쨌든 GUI 프로그래밍은 거의 해본 적이 없다.

갑자기 데스크탑 GUI 프로그램을 만들고 싶어졌다. 그래서 GUI 프로그래밍을 위한 개발 환경을 알아 보고 있다. 무엇이 좋을까? 우선 전제 조건이 있다.
  • C++는 쓰지 않는다. 나는 이상하게 C++만은 쓰질 못하겠다. 그 너저분한 언어 구조가 너무 마음에 들지 않는다.
  • 윈도우즈가 주 플랫폼이지만 멀티 플랫폼이면 더 좋겠다.
  • 위젯은 가볍고 빠르며 네이티브 위젯이었으면 좋겠다. Swing 같은 건 곤란하다.
  • 배포에 문제가 없는 즉 네이티브 바이너리로 결과를 만들 수 있으면 좋겠다.
  • 무엇보다 쓰기에 편해야겠다 ㅡ.ㅡ;

우선 닷넷은 제외한다. 닷넷으로 개발하느니 차라리 Java + SWT 조합을 하는 게 더 낫다고 생각한다. 그렇다면 후보는 다음과 같다.
  • Java + SWT: 가장 익숙한 조합이긴 한데 좀 지루한 감이 있다. 더구나 네이티브 바이너리를 생성하기 고약하다.
  • D: C와 비슷하며 바이너리를 만들 수 있다는 장점이 있다. 문법은 C++ 보다 훨씬 간결하고 현대적이다. 안정적인 GUI 라이브러리가 있는지 모르겠고, C와 비슷하게 상당히 저수준의 프로그래밍을 해야 하는 게 아닌지 하는 의구심이 있다.
  • Perl + wxPerl: wxPerl이 지원이 좀 부족한 듯 하다. 배포에 문제가 있는데 PAR를 쓰면 해결할 수 있다고 하는데 글쎄?
  • Python + wxPython: 꽤 안정적이고 좋다고 하는데 난 Python이 싫다.
  • Ruby + wxRuby: 마찬가지로 난 Ruby 언어를 별로 좋아하지 않는다.
  • Ocaml + wxOcaml: Ocaml은 아주 매력적인 언어인데 wxOcaml의 상태가 별로 좋지 않은 듯하다. 2004년 10월이 마지막 업데이트면 좀 곤란하다.
  • Common LISP + wxCL: Ocaml과 마찬가지로 상당히 끌리는데 이것도 wxCL의 상태가 별로 좋지 않다. 2006년 5월이 마지막 업데이트. 더욱이 윈도우즈 환경에서 적당한 Free Common Lisp 구현체가 없다.
  • Smalltalk - Dolphin Smalltalk or wxSqueak: Dolphin Smalltalk의 앞날이 어찌될지 우려스러웠는데 계속 개발이 될 것 같다. GUI 프로그램 만드는 데 상당히 좋은 거 같은데 Dolphin Smalltalk는 윈도우즈만 되고, wxSqueak은 아직 안정적이지 않은 거 같다. 뭐 그래도 wxOcaml이나 wxCL보다는 낫다.
  • C: C++은 싫지만 C는 괜찮다. 그런데 쓰기 편한 라이브러리를 모르겠다. winapi 또는 gtk는 곤란하다.

편하게 가자면 Java + SWT가 제일 낫겠고, Perl + wxPerl도 나쁘진 않을 것 같다.

사실 제일 끌리는 것은 Ocaml + wxOcaml 또는 Common LISP + wxCL 이지만 이건 라이브러리의 상태가 별로 좋지 않은 상황에서 그 언어에 대한 내공이 약한 나로선 어려울 듯 하다.

D나 Smalltalk는 상황은 좋은 듯 싶은데 언어 자체로는 Ocaml이나 Common LISP 보다 매력이 덜하다. :)

고로 뭘로 할지 아직도 정하지 못하고 있다. 어쩌면 영영 생각만 하다 끝날지도 모른다. :)

by Corund | 2009/01/08 14:58 | 트랙백 | 덧글(12)

g-cpan

Gentoo Linux에서는 perl의 CPAN 모듈도 portage를 이용하여 관리할 수 있다.  g-cpan 패키지가 그것이다.

Gentoo portage의 dev-perl 카테고리에 있는 패키지들은 대부분 CPAN 모듈들이다. 필요한 모듈이 여기에 있다면 관리는 간단하다. emerge로 설치하고 업데이트하고 제거하면 된다.  그러나 만약 필요한 모듈이 여기에 있지 않다면? 독립된 모듈이라면 perl의 CPAN으로 관리할 수 있겠지만 portage에 있는 모듈과 의존성 문제가 걸리면 어떻게 해야 할까? 이 문제는 g-cpan 툴로 해결할 수 있다.

g-cpan은 CPAN 모듈의 portage package(ebuild)를 만들고 이를 설치해 주는 툴이다.  의존성이 걸려 있어 설치해야 하는 모듈이 있다면 그것이 portage에 있는지 검사하여 없으면 그 패키지를 만들고 의존성을 반영한다.  CPAN 모듈을 모두 gentoo의 portage로 관리할 수 있게 해주는 툴인 것이다.

g-cpan은 portage overlay에 패키지를 만든다.  따라서 g-cpan을 쓰려면 먼저 portage overlay를 설정해야 한다.  그 뒤에 "g-cpan -g 모듈이름"하면 모듈을 다운로드하여 ebuild 파일을 만든다.  모듈 이름에 있는 "::"은 "-"으로 바뀌어 portage 패키지 이름이 된다.  이 패키지들은 모두 perl-gcpan 카테고리에 속한다.

이후 emerge를 이용하여 패키지를 설치하면 된다.  직접 g-cpan으로 설치할 수도 있고 업데이트도 할 수 있다.

gentoo의 portage 시스템은 상당히 진보적이고 유연한 패키지 관리 시스템이다.  그래서 이와 같이 다른 패키지 관리 시스템을 융합시킬 수 있는 것이다.  ruby의 gem도 이와 같이 통합시킬 수 있는지 궁금하다.

by Corund | 2007/07/20 17:57 | 트랙백 | 핑백(1) | 덧글(0)

◀ 이전 페이지다음 페이지 ▶