Enviar búsqueda
Cargar
Catalyst Framework 살펴보기
•
Descargar como KEY, PDF
•
2 recomendaciones
•
1,521 vistas
C
corund
Seguir
Korean Perl Workshop 2012 발표 슬라이드. Catalyst Framework 를 처음 접하는 이들에게 프레임워크의 대강을 알린다.
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 87
Descargar ahora
Recomendados
스프링 부트와 로깅
스프링 부트와 로깅
Keesun Baik
다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!
우영 주
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Jemin Huh
Pinpoint spring_camp 2015
Pinpoint spring_camp 2015
Woonduk-Kang
spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례
Daehwan Lee
Spring Boot 1
Spring Boot 1
경륜 이
톰캣 #01-소개
톰캣 #01-소개
GyuSeok Lee
Springcamp spring boot intro
Springcamp spring boot intro
Jae-il Lee
Recomendados
스프링 부트와 로깅
스프링 부트와 로깅
Keesun Baik
다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!
우영 주
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Jemin Huh
Pinpoint spring_camp 2015
Pinpoint spring_camp 2015
Woonduk-Kang
spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례
Daehwan Lee
Spring Boot 1
Spring Boot 1
경륜 이
톰캣 #01-소개
톰캣 #01-소개
GyuSeok Lee
Springcamp spring boot intro
Springcamp spring boot intro
Jae-il Lee
Spring Boot 2
Spring Boot 2
경륜 이
진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim
백기선의 스프링 부트
백기선의 스프링 부트
Keesun Baik
톰캣 #10-모니터링
톰캣 #10-모니터링
GyuSeok Lee
Flux 예제 분석 2
Flux 예제 분석 2
Peter YoungSik Yun
What is the meteor?
What is the meteor?
Peter YoungSik Yun
RHQ를 활용한 Legacy system 모니터링
RHQ를 활용한 Legacy system 모니터링
YUSOO KIM
톰캣 #11-팁
톰캣 #11-팁
GyuSeok Lee
rpm package 를 이용한 MySQL 설치자동화
rpm package 를 이용한 MySQL 설치자동화
I Goo Lee
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
EunChul Shin
React Redux React Native
React Redux React Native
Leonardo YongUk Kim
Share some development
Share some development
Ji Heon Kim
One-day-codelab
One-day-codelab
WebFrameworks
Spring boot DI
Spring boot DI
Hyosang Hong
Spring 웹 프로젝트 시작하기
Spring 웹 프로젝트 시작하기
jiseob kim
스프링 프레임워크 입문
스프링 프레임워크 입문
Keesun Baik
React 튜토리얼 1차시
React 튜토리얼 1차시
태현 김
톰캣 운영 노하우
톰캣 운영 노하우
jieunsys
톰캣 #07-host
톰캣 #07-host
GyuSeok Lee
Eclipse web
Eclipse web
Kenu, GwangNam Heo
okspring3x
okspring3x
Kenu, GwangNam Heo
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
JeongHun Byeon
Más contenido relacionado
La actualidad más candente
Spring Boot 2
Spring Boot 2
경륜 이
진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim
백기선의 스프링 부트
백기선의 스프링 부트
Keesun Baik
톰캣 #10-모니터링
톰캣 #10-모니터링
GyuSeok Lee
Flux 예제 분석 2
Flux 예제 분석 2
Peter YoungSik Yun
What is the meteor?
What is the meteor?
Peter YoungSik Yun
RHQ를 활용한 Legacy system 모니터링
RHQ를 활용한 Legacy system 모니터링
YUSOO KIM
톰캣 #11-팁
톰캣 #11-팁
GyuSeok Lee
rpm package 를 이용한 MySQL 설치자동화
rpm package 를 이용한 MySQL 설치자동화
I Goo Lee
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
EunChul Shin
React Redux React Native
React Redux React Native
Leonardo YongUk Kim
Share some development
Share some development
Ji Heon Kim
One-day-codelab
One-day-codelab
WebFrameworks
Spring boot DI
Spring boot DI
Hyosang Hong
Spring 웹 프로젝트 시작하기
Spring 웹 프로젝트 시작하기
jiseob kim
스프링 프레임워크 입문
스프링 프레임워크 입문
Keesun Baik
React 튜토리얼 1차시
React 튜토리얼 1차시
태현 김
톰캣 운영 노하우
톰캣 운영 노하우
jieunsys
톰캣 #07-host
톰캣 #07-host
GyuSeok Lee
Eclipse web
Eclipse web
Kenu, GwangNam Heo
La actualidad más candente
(20)
Spring Boot 2
Spring Boot 2
진짜기초 Node.js
진짜기초 Node.js
백기선의 스프링 부트
백기선의 스프링 부트
톰캣 #10-모니터링
톰캣 #10-모니터링
Flux 예제 분석 2
Flux 예제 분석 2
What is the meteor?
What is the meteor?
RHQ를 활용한 Legacy system 모니터링
RHQ를 활용한 Legacy system 모니터링
톰캣 #11-팁
톰캣 #11-팁
rpm package 를 이용한 MySQL 설치자동화
rpm package 를 이용한 MySQL 설치자동화
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
React Redux React Native
React Redux React Native
Share some development
Share some development
One-day-codelab
One-day-codelab
Spring boot DI
Spring boot DI
Spring 웹 프로젝트 시작하기
Spring 웹 프로젝트 시작하기
스프링 프레임워크 입문
스프링 프레임워크 입문
React 튜토리얼 1차시
React 튜토리얼 1차시
톰캣 운영 노하우
톰캣 운영 노하우
톰캣 #07-host
톰캣 #07-host
Eclipse web
Eclipse web
Similar a Catalyst Framework 살펴보기
okspring3x
okspring3x
Kenu, GwangNam Heo
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
JeongHun Byeon
Laravel 06.Request LifeCyle
Laravel 06.Request LifeCyle
hojin lee
Springmvc
Springmvc
HyungKuIm
세션2_데보션테크데이_Decapod_v1.2.pdf
세션2_데보션테크데이_Decapod_v1.2.pdf
Jaesuk Ahn
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
Choonghyun Yang
Angular 2 rc5 조사
Angular 2 rc5 조사
Rjs Ryu
Kubernetes on GCP
Kubernetes on GCP
Daegeun Kim
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
Ted Won
Fluentd with MySQL
Fluentd with MySQL
I Goo Lee
Polymer따라잡기
Polymer따라잡기
Han Jung Hyun
Node.js 기본
Node.js 기본
Han Jung Hyun
[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?
NAVER D2
Scala for play
Scala for play
Brandon Choi
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)
Jaesup Kwak
Eclipse RAP
Eclipse RAP
cho hyun jong
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
Javajigi Jaesung
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Javajigi Jaesung
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
Jae Sung Park
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Esun Kim
Similar a Catalyst Framework 살펴보기
(20)
okspring3x
okspring3x
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
Laravel 06.Request LifeCyle
Laravel 06.Request LifeCyle
Springmvc
Springmvc
세션2_데보션테크데이_Decapod_v1.2.pdf
세션2_데보션테크데이_Decapod_v1.2.pdf
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
Angular 2 rc5 조사
Angular 2 rc5 조사
Kubernetes on GCP
Kubernetes on GCP
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
Fluentd with MySQL
Fluentd with MySQL
Polymer따라잡기
Polymer따라잡기
Node.js 기본
Node.js 기본
[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?
Scala for play
Scala for play
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)
Eclipse RAP
Eclipse RAP
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
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.
감사합니다
Notas del editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Descargar ahora