Submit Search
Catalyst Framework 살펴보기
2 likes
1,527 views
C
corund
Korean Perl Workshop 2012 발표 슬라이드. Catalyst Framework 를 처음 접하는 이들에게 프레임워크의 대강을 알린다.
Technology
Read more
1 of 87
Download now
Downloaded 19 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
More Related Content
PDF
스프링 부트와 로깅
Keesun Baik
PDF
다함께, FluxUtils 한바퀴!
우영 주
PDF
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Jemin Huh
PPTX
Pinpoint spring_camp 2015
Woonduk-Kang
PDF
spring.io를 통해 배우는 spring 개발사례
Daehwan Lee
PDF
Spring Boot 1
경륜 이
PDF
톰캣 #01-소개
GyuSeok Lee
PDF
Springcamp spring boot intro
Jae-il Lee
스프링 부트와 로깅
Keesun Baik
다함께, FluxUtils 한바퀴!
우영 주
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Jemin Huh
Pinpoint spring_camp 2015
Woonduk-Kang
spring.io를 통해 배우는 spring 개발사례
Daehwan Lee
Spring Boot 1
경륜 이
톰캣 #01-소개
GyuSeok Lee
Springcamp spring boot intro
Jae-il Lee
What's hot
(20)
PDF
Spring Boot 2
경륜 이
PDF
진짜기초 Node.js
Woo Jin Kim
PDF
백기선의 스프링 부트
Keesun Baik
PDF
톰캣 #10-모니터링
GyuSeok Lee
PPTX
Flux 예제 분석 2
Peter YoungSik Yun
PPTX
What is the meteor?
Peter YoungSik Yun
PPTX
RHQ를 활용한 Legacy system 모니터링
YUSOO KIM
PDF
톰캣 #11-팁
GyuSeok Lee
PDF
rpm package 를 이용한 MySQL 설치자동화
I Goo Lee
PPTX
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
EunChul Shin
PDF
React Redux React Native
Leonardo YongUk Kim
PPT
Share some development
Ji Heon Kim
PPTX
One-day-codelab
WebFrameworks
PPTX
Spring boot DI
Hyosang Hong
PPTX
Spring 웹 프로젝트 시작하기
jiseob kim
PDF
스프링 프레임워크 입문
Keesun Baik
PDF
React 튜토리얼 1차시
태현 김
PDF
톰캣 운영 노하우
jieunsys
PDF
톰캣 #07-host
GyuSeok Lee
PDF
Eclipse web
Kenu, GwangNam Heo
Spring Boot 2
경륜 이
진짜기초 Node.js
Woo Jin Kim
백기선의 스프링 부트
Keesun Baik
톰캣 #10-모니터링
GyuSeok Lee
Flux 예제 분석 2
Peter YoungSik Yun
What is the meteor?
Peter YoungSik Yun
RHQ를 활용한 Legacy system 모니터링
YUSOO KIM
톰캣 #11-팁
GyuSeok Lee
rpm package 를 이용한 MySQL 설치자동화
I Goo Lee
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
EunChul Shin
React Redux React Native
Leonardo YongUk Kim
Share some development
Ji Heon Kim
One-day-codelab
WebFrameworks
Spring boot DI
Hyosang Hong
Spring 웹 프로젝트 시작하기
jiseob kim
스프링 프레임워크 입문
Keesun Baik
React 튜토리얼 1차시
태현 김
톰캣 운영 노하우
jieunsys
톰캣 #07-host
GyuSeok Lee
Eclipse web
Kenu, GwangNam Heo
Ad
Similar to Catalyst Framework 살펴보기
(20)
PDF
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
JeongHun Byeon
DOCX
Apache 핵심 프로젝트 camel 엿보기
Hwang Sun Oh Kelly
PPTX
Django로 배우는 쉽고 빠른 웹개발 study 자료
Han Sung Kim
PDF
웹개발자가 알아야할 기술
jaypi Ko
PDF
E-Gov 기반 Mobile Web Friendly 개발
JavaCommunity.Org
PPTX
[코세나, kosena] API 통합 워크 플로우 자동화 도구인 n8n.io 제품 소개 자료입니다.
kosena
PDF
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee
PDF
Web Framework (웹 프레임워크)
Junsu Kim
PPTX
처음 시작하는 라라벨
KwangSeob Jeong
PPTX
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XpressEngine
PDF
파이썬 웹프로그래밍 1탄
SeongHyun Ahn
PPTX
Spring mvc
ksain
PDF
Portfolio
MyeongSeokKim2
PDF
[Hello world 오픈세미나]open api client개발
NAVER D2
PDF
RESTful API 설계
Jinho Yoo
PDF
Clojure HTTP API 서버 구현을 위한 라이브러리
Eunmin Kim
PDF
Modern PHP
Changwan Jun
PDF
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong
PPTX
회사에서 새로운 기술_적용하기
Dexter Jung
PPTX
Warp
aceigy6322
GitHub Actions의 다양한 기능 활용하기 - GitHub Universe '24 Recap
JeongHun Byeon
Apache 핵심 프로젝트 camel 엿보기
Hwang Sun Oh Kelly
Django로 배우는 쉽고 빠른 웹개발 study 자료
Han Sung Kim
웹개발자가 알아야할 기술
jaypi Ko
E-Gov 기반 Mobile Web Friendly 개발
JavaCommunity.Org
[코세나, kosena] API 통합 워크 플로우 자동화 도구인 n8n.io 제품 소개 자료입니다.
kosena
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee
Web Framework (웹 프레임워크)
Junsu Kim
처음 시작하는 라라벨
KwangSeob Jeong
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XpressEngine
파이썬 웹프로그래밍 1탄
SeongHyun Ahn
Spring mvc
ksain
Portfolio
MyeongSeokKim2
[Hello world 오픈세미나]open api client개발
NAVER D2
RESTful API 설계
Jinho Yoo
Clojure HTTP API 서버 구현을 위한 라이브러리
Eunmin Kim
Modern PHP
Changwan Jun
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong
회사에서 새로운 기술_적용하기
Dexter Jung
Warp
aceigy6322
Ad
Catalyst Framework 살펴보기
1.
Catalyst Framework
살펴보기 by 김진(@corund)
2.
누구에게?
웹 개발자들에게 (사용언어를 막론한)
3.
무엇을? Catalyst Framework의
대강을
4.
Catalyst Framework?
5.
Perl MVC Web
Framework http://www.catalystframework.org/
6.
2004.10 Maypole Framework의 Fork로
시작
7.
• 2005.4 Catalyst
5 • 2006.7 Catalyst 5.7 • 2009.3 Catalyst 5.8 • 2011.8 Catalyst 5.9 • 최근 릴리즈(5.90016) 2012.8
8.
오래되었고, 복잡하다 는
인식. 하지만...
9.
충분히 성숙되었고
10.
잘 관리되고 있는
프 레임워크
11.
즉, 비동기 웹이 아닌
전통적인 웹 애플리케이션 개발이라면 가장 실용적인 선택 이라고 저는 생각합니다 ......
12.
그러면 어떻게?
13.
1. Catalyst를 설치하고
14.
2. 튜터리얼을
따라해본 후, (https://metacpan.org/module/Catalyst::Manual::Tutorial)
15.
3. 프로젝트를 만들어 레퍼런스를
보며 삽질 하면......
16.
4. 끝ㅋ!
The End!
17.
......이면 얼마나 좋겠
습니까만......
18.
그래서 전체적인 모양을 한번
봐보자
19.
먼저 범용 웹 애플리케이션 프레임워크가
갖춰야 할 것들
20.
1. 웹 요청
디스패치
21.
2. 웹 입출력
22.
3. 기타 등등......
23.
기타 등등?
24.
기타 등등에는
3.1 뷰 템플릿
25.
3.2 모델(Model) -
데이 터 저장소 접근 또는 ORM
26.
3.3 세션 관리
27.
3.4 인증 &
권한
28.
3.5 설정 관리
29.
3.6 로깅
30.
3.7 테스팅
31.
3.8 플러그인 or 확장
매커니즘
32.
3.9 각종 유틸리티
33.
그리고 3.10 정말로 기타
등등
34.
그래서
알아볼 것들 • 웹 요청 디스패칭 • 웹 입출력 • 뷰 템플릿 • 유틸리티 • 모델, 세션, 인증&권한 ...... 등등
35.
그런데 먼저 알아야 할
것들
36.
1. Perl 기본
문법
37.
• 거침없이 배우는
펄 • 참조(Reference)와 복잡한 자료구조 • 패키지와 모듈 • Learn Perl in about 2 hours and 30 minutes(http://qntm.org/files/perl/perl.html)
38.
2. Moose
Moose::Manual (https://metacpan.org/module/Moose::Manual)
39.
3. CPAN 사용법
How to Use CPAN, Actually? (http://advent.perl.kr/2011/2011-12-13.html)
40.
우선 Catalyst 설치
41.
그냥 cpanm Task::Catalyst
42.
1. 요청 디스패치 •
URL 라우팅 • 내부 플로우 컨트롤 • 전후 실행
43.
1.1 URL 라우팅
44.
Controller에 라우팅
정보를 포함
45.
메서드 Attribute 이용
Perl의 Attribute (http://aero.sarang.net/blog/2008/10/perl-attribute-1.html)
46.
Controller 별 네임스
페이스
47.
package MyApp::Controller::First; .... BEGIN {
extends ‘Catalyst::Controller’; } .... # /first sub index :Path :Args(0) { my ($self, $c) = @_; .... } # /first/list sub list :Path(‘list’) :Args(0) { my ($self, $c) = @_; .... }
48.
package MyApp::Controller::First::Second; .... # /first/second sub
index :Path :Args(0) { my ($self, $c) = @_; .... } # /first/second/list sub list :Path(‘list’) :Args(0) { my ($self, $c) = @_;
49.
package MyApp::Controller::First::Second; .... __PACKAGE__->config->{namespace} =
‘second’; .... # /second sub index :Path :Args(0) { my ($self, $c) = @_ .... } # /second/list sub list :Path(‘list’) :Args(0) { ....
50.
package MyApp::Controller::First; .... # /first/page/* sub
page :Path(‘page’) :Args(1) { my ($self, $c, $id) = @_; .... } # /first/view sub view :Local :Args(0) { ...
51.
• :Path (:Local,
:Global) • :Regex, :LocalRegex • :Args(n) • :Chained (:PathPart, :CaptureArgs) • :Private • https://metacpan.org/module/Catalyst::Manual::Intro#Actions
52.
1.2 내부 플로우
컨트롤
53.
$c->forward
vs $c->detach
54.
from Catalyst Wiki (http://wiki.catalystframework.org/wiki/)
55.
$c->visit
vs $c->go
56.
from Catalyst Wiki (http://wiki.catalystframework.org/wiki/)
57.
플로우 간 데이터전
달: $c->stash
58.
1.3 전후 실행(or
특수 액션)
59.
begin, auto, end (https://metacpan.org/module/Catalyst::Manual::Intro#Built-in-special-actions)
60.
•
Controller::First { begin, auto, list, end } First::begin First::auto First::list First::end • Controller::First::Second { begin, auto, list, end } Second::begin First::auto Second::auto Second::list Second::end • Controller::First::Second2 { auto, list } First::begin First::auto Second2:auto Second2::list First::end
61.
from Catalyst Wiki
62.
2. 웹 입출력 •
$c->request: Catalyst::Request (https://metacpan.org/module/Catalyst::Request) • $c->response: Catalyst::Response (https://metacpan.org/module/Catalyst::Response) • UTF-8 입출력
63.
2.3 UTF-8 입출력
64.
Catalyst::Plugin::Unicode::Encoding
을 추가하면 끝!
65.
# MyApp.pm package MyApp; use
Moose; .... use Catalyst::Runtime 5.80; use Catalyst qw/ -Debug Unicode::Encoding ConfigLoader Static::Simple /; extends ‘Catalyst’; ....
66.
뷰템플릿, 데이터저장 소는
case by case
67.
3. 뷰 템플릿
68.
Template Toolkit Catalyst::View::TT (http://www.template-toolkit.org/)
69.
Xslate Catalyst::View::Xslate
(http://xslate.org/)
70.
myapp_create.pl view
Html Xslate -> MyApp::View::Xslate
71.
$c->stash->{template}
= ‘index.tx’; $c->forward(‘Html’);
72.
# Root.pm sub end
:RenderAction { } (https://metacpan.org/module/Catalyst::Manual::Actions)
73.
$c->stash->{template} =
‘index.tx’;
74.
4. 유틸리티
75.
Catalyst::Helper
76.
• ./script/myapp_create.pl • ./script/myapp_server.pl •
./myapp.psgi
77.
myapp_create.pl (model |
controller | view) Name Module [Args] <-> Catalyst::Helper::(Model | View)::Module
78.
5. 기타 등등
79.
5.1 모델
80.
DBIx::Class (Catalyst::Model::DBIC::
Schema)
81.
일반 클래스 (Catalyst::Model::Adapt
or)
82.
5.2 세션 •
Catalyst::Plugin::Session • Catalyst::Plugin::Session::State::Cookie • Catalyst::Plugin::Session::Store::* • $c->session
83.
5.3 인증 &
권한 • Catalyst::Plugin::Authentication • Catalyst::Authentication::Store::* • Catalyst::Plugin::Authorization::* • $c->user, $c->user_exists, $c->authenticate
84.
......;
85.
결(結)
86.
Catalyst is a
web framework written in Perl and inspired by Perl From K. Diment and M. S. Trout, “The Definitive Guide to Catalyst”
87.
감사합니다
Editor's Notes
#2:
\n
#3:
\n
#4:
\n
#5:
\n
#6:
\n
#7:
\n
#8:
\n
#9:
\n
#10:
\n
#11:
\n
#12:
\n
#13:
\n
#14:
\n
#15:
\n
#16:
\n
#17:
\n
#18:
\n
#19:
\n
#20:
\n
#21:
\n
#22:
\n
#23:
\n
#24:
\n
#25:
\n
#26:
\n
#27:
\n
#28:
\n
#29:
\n
#30:
\n
#31:
\n
#32:
\n
#33:
\n
#34:
\n
#35:
\n
#36:
\n
#37:
\n
#38:
\n
#39:
\n
#40:
\n
#41:
\n
#42:
\n
#43:
\n
#44:
\n
#45:
\n
#46:
\n
#47:
\n
#48:
\n
#49:
\n
#50:
\n
#51:
\n
#52:
\n
#53:
\n
#54:
\n
#55:
\n
#56:
\n
#57:
\n
#58:
\n
#59:
\n
#60:
\n
#61:
\n
#62:
\n
#63:
\n
#64:
\n
#65:
\n
#66:
\n
#67:
\n
#68:
\n
#69:
\n
#70:
\n
#71:
\n
#72:
\n
#73:
\n
#74:
\n
#75:
\n
#76:
\n
#77:
\n
#78:
\n
#79:
\n
#80:
\n
#81:
\n
#82:
\n
#83:
\n
#84:
\n
#85:
\n
#86:
\n
#87:
\n
#88:
\n
Download