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

Catalyst Book
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을 배우고 싶다면 이 책도 꼭 보는 게 좋을 듯싶다.


Posted by Corealight

댓글을 달아 주세요

Catalyst vs Rubyonrails

Catalyst vs Ruby on Rails
|  | Comments (1) | TrackBacks (0)






Ruby on Rails는 Perl, Python에 밀려  그렇게 주목받지 못하던 Ruby라는 언어를 화려한 주류언어의 무대로 끌어올린 대표적인 스타 웹프레임웍이다.

Perl하면 옛날의 CGI기반 게시판 등 고리타분 한 인식을 가진 사람들도 있겠지만 그건 호랑이 담배피던 시절 이야기고 현재에는 Perl에도 Ruby on Rails 못지않은 많은 MVC기반 웹 프레임웍들이 존재한다. 그중에서 제일 대표적인 것이 Catalyst인데 최근 Ruby on Rails와 Catalyst의 성능을 비교한 흥미로운 글이 있어 소개하려고 한다.

예전 2009년 4월 Victor Igumnov란 사람이 Catalyst vs Ruby on Rails의 성능을 비교한 글이 있었는데 그때 당시 결과는 Ruby on Rails 가 Catalyst 보다 약 62%정도 빨랐다. 그래서 인터프리터의 성능이 여타 언어보다 빠르다고 알려진 Perl이 비교적 느리다는 Ruby에서 구현된 웹프레임웍 보다 성능이 떨어지는데 의문을 품고 분석한 결과 Catalyst의 Controller구현에서 다중상속에서 메소드의 연속적 호출에 쓰이는 NEXT 모듈의 병목 때문에 성능이 떨어짐을 알아내고 Catalyst개발자에게 알려 이것을 새로운 C3 모듈로 교체하여 성능을 개선했는데

그 후 이런 개선사항이 반영된 새로운 Catalyst 5.8 버젼으로 다시 둘의 성능을 비교했더니 놀랍게도 Catalyst가 single process일때 Ruby on Rails 보다 135%, forking 된 multi process 환경에서는 471% 빨랐다고 한다.

Catalyst는 약간의 진입 장벽은 있지만 여타 프레임웍과는 다르게 ORM과 Template엔진을 필요에 따라 여러 가지로 교체해서 사용할 수 있어 개방적이고 확장성이 뛰어나다고 알려져 있다.

그런데 벤치마크결과에서 더 놀라운 것은 성능이 대폭적으로 향상된 Catalyst 5.8은 예전 5.7대 버젼에서는 OOP구현을 위해 Class::Accessor::Fast 라는 모듈을 사용한데 반해Moose 라는 Meta Object Protocol 기반의 진보된 OOP프레임웍으로 교체하였다는 것이다. Moose는 다소 번거로움이 많았던 Perl OOP구현을 어느 언어보다 편리하고 획기적이며 진보적인 방법으로 할 수 있도록 발전시킨 OOP프레임웍으로 다소 메모리를 좀 더 소비하고 속도가 떨어진다는 비판을 받았는데 Moose가 기반이 된 Catalyst 5.8의 성능이 이 정도로 나오는 걸 보면 그런 걱정은 기우에 지나지 않았나 생각된다.

Catalyst가 쓰이는 대표적인 서비스로는 일본 최대의 Social Network 싸이트인 mixi, 세계 최대규모 도색 동영상 싸이트 중 하나인 Youporn( Alexa 싸이트순위 44위 참고로 우리나라 최대 포털 naver는 60위권) 영국 BBC의 BBC NewsBBC iplayerVoxTicketmasterShopzilla, Takkle, Editgrid, IUseThis, MighTyV 등이 있다. ( Site running Catalyst )

Perl Catalyst 한 번 해보시지 않으시겠습니까?

참고: 또 다른 Catalyst vs Ruby on Rails 자료.

출처 : aero 님 블로그

Posted by Corealight

댓글을 달아 주세요