1. 웹 콘텐츠의 자원화 – RESTful 아키텍처
안영회 (ITwise 컨설팅 )
ahnyounghoe@gmail.com
서울 웹 컨퍼런스 2012 -1- 웹의 개방과 공유
2. 다룰 내용
1 REST, RESTful 개념
2 RESTful 활용
3 웹 콘텐츠의 자원화
서울 웹 컨퍼런스 2012 -2- 웹의 개방과 공유
3. RESTful 이란 ?
RESTful
서울 웹 컨퍼런스 2012 -3- 웹의 개방과 공유
4. RESTful 이란 ?
1
REST
•2000 년 Roy Fielding 의 박사 학위 논문에
서 처음 제안
•REpresentational State Transfer RESTful
•웹 (WWW) 과 같은 분산 시스템을 위한 소 문헌 조사 ( 위키피디아 , 책 , ...)
프트웨어 아키텍처 스타일
2
RESTful
클라이언트
RESTful
•다음 제약을 따르면 ...
1.Client-server
2.Stateless
응답 서버 구 클라이언트 상
3.Cacheable 성 나는 몰라 태 매번 확인
4.Layered system
Uniform I/F
5.Uniform interface
(GET, PUT, POST, DELETE, ...)
그런데 왜 Representational 일까 ?
서울 웹 컨퍼런스 2012 -4- 웹의 개방과 공유
R
5. RESTful 이란 ?
3
Resource Oriented Architecture
RESTful 웹 서비스 구축을 위한 아키텍처
•핵심 개념
1.Resource RESTful
2.URI
3.Representations 문헌 조사 ( 위키피디아 , 책 , ...)
4.Link/Connectedness
Resource URI (Universal Resource Identifier)
• 1.0.3 버전의 소프트웨어 • http://.../software/releases/1.0.3.tar.gz
• 가장 최신의 소프트웨어 • http://.../software/releases/latest.tar.gz
• 2006 년 10 월 24 일의 첫 번째 글 • http://.../software/weblog/2006/10/24/0
※ RESTful 웹 서비스 - 웹 서비스의 진화 , Leoard Richardson & Sam Ruby 역서 140 쪽
서버
Representation 1
클라이언트 Representation 1
Representation 1 Resource
Representation N
서울 웹 컨퍼런스 2012 -5- 웹의 개방과 공유
6. RESTful 이란 ?
DEMO
Resource-to-Representations
예제 제공 :
서울 웹 컨퍼런스 2012 -6- 웹의 개방과 공유
7. RESTful 이란 ?
DEMO
Resource-to-Representations
HTTP Method Resource URI Media/Message Type
GET application/xml
http://.../people/
POST application/json
PUT text/xml
http://.../gildong/site/1
DELETE application/rss+xml
서울 웹 컨퍼런스 2012 -7- 웹의 개방과 공유
8. RESTful 활용
RESTful
나는 과연 어디에 쓸 것인가 ?
박사학위 취득할 것도 아니고 ...
무려 웹을 설계하거나 HTTP 표준을 만들 일은 더욱 없다 .
서울 웹 컨퍼런스 2012 -8- 웹의 개방과 공유
9. RESTful 활용
클라우드
약 300 만건
RESTful
국내 웹 페이지에서 찾아본 결과
SOA
약 130 만건
REST/~ful
약 40 만건
서울 웹 컨퍼런스 2012 -9- 웹의 개방과 공유
10. RESTful 활용
RESTful
국내 웹 페이지에서 찾아본 결과
출처 : http://www.iamcorean.net/20
서울 웹 컨퍼런스 2012 - 10 - 웹의 개방과 공유
11. RESTful 활용
OPEN API
•웹 사이트의 REST, SOAP 을 통한 연동을 지원하는 기술군
•Web 2.0 애플리케이션의 근간
서울 웹 컨퍼런스 2012 - 11 - 웹의 개방과 공유
12. 웹 콘텐츠의 자원화
Open APIs - State of the Market 2011
서울 웹 컨퍼런스 2012 - 12 - 웹의 개방과 공유
13. RESTful 활용
국내 기업 적용 사례 (2009 년 )
•전사 표준 애플리케이션 프레임워크에 적용 후 파일럿 진행
•장애물
1. 부족한 레퍼런스
2. 개발자 프로그래밍 방식 변경
3. 표준 “ Rich” 클라이언트 개발 방법 (no Active-X)
•효과
1. 이종 기술간의 연계 개선 : 특정 기술 종속적인 데이터 통신을 순수
XML/JSON 기반 .NET 기반 클라이언트와 자바 연계로 수정
2. 서비스 재사용 : JSP 기반 클라이언트 , Android 클라이언트 , .NET 클
라이언트에 대해 같은 서비스 사용 가능
서울 웹 컨퍼런스 2012 - 13 - 웹의 개방과 공유
14. RESTful 활용
기업 적용 사례 (2009 년 )
MVC REST
※ 2009 년 수행 프로젝트 개발자 교재 중에서 발췌
서울 웹 컨퍼런스 2012 - 14 - 웹의 개방과 공유
15. RESTful 활용
기업 적용 사례 (2009 년 )
출처 :
http://www.ibm.com/developerworks/websphere/techjournal/1005_col_barcia/1005_col_barcia.html
서울 웹 컨퍼런스 2012 - 15 - 웹의 개방과 공유
16. RESTful 활용
3 년이 지났는데 ...
스프링 MVC 구조를 골격으로 가지는 , 간단한 큐레이션 서비스를 구축하는 예제이면
좋겠습니다 . view 단을 jsp 로 가는 것이 아니라 데이터는 controller 에서 json 형태로
던져주고 , 그것을 클라이언트 단에서 파싱하는 형태이면 좋겠습니다 . 그렇게 하면 ,
PC, 스맛폰 등 각 환경에 맞는 UI 프레임워크를 통해 개별적인 구현이 가능할 것 같아
서요 . 고수분들에게는 굉장히 기초적인 부분이겠으나 , 인터넷을 아무리 뒤져봐도
A~Z 까지 서비스 구축을 하는 예제는 없더군요 . 그런 것을 만들어 보시면 정말 근사할
것 같습니다 .
출처 :
http://www.facebook.com/groups/springkorea/permalink/254474224664214/?comment_id=254761881302
서울 웹 컨퍼런스 2012 - 16 - 웹의 개방과 공유
17. RESTful 활용
어디서 배우나요 ?
• 튜토리얼 제공 : 개콘 커뮤니티 ( A-Z 지향 8 월 착수 )
• 서적 : RESTful 웹 서비스 ( ROA 구현 실무서 2007 년 원서 )
• Q&A: KSUG 커뮤니티 ( 활발한 답변 스프링 활용 중심 )
• https://groups.google.com/forum/?fromgroups#!forum/ksug
• http://www.facebook.com/groups/springkorea/
서울 웹 컨퍼런스 2012 - 17 - 웹의 개방과 공유
18. RESTful 활용
자바를 쓰시는 분 중에 간혹 REST 를 위해서
는 Spring 외에 다른 프레임워크가 필요하냐
고 “자주” 물으시는데 ...
•답만 말하면 NO
서울 웹 컨퍼런스 2012 - 18 - 웹의 개방과 공유
19. 웹의 개방과 공유
※ 2009 년 수행 프로젝트 보고 내용 중에서 발췌
조직 내 활용에서도 충분히 효과를 낼 수 있고 ...
전사 공통 모델
•조직간 , 시스템 ( 애플리케이션 ) 간 공유 /Mashup
+ 전사 표준 코드 정보
+ 전사 메세지 코드 정보
A 사업부 공통 모델 B 사업부 공통 모델 C 사업부 공통
- 19 -
+ 사업부 업무 코드 + 사업부 업무 코드 + 사업부 업무 코
+ 사업부 기준 정보 + 사업부 기준 정보 + 사업부 기준 정
업무 도메인 모델 업무 도메인 모델 업무 도메인
업무 도메인 모델 업무 도메인 모델 업무 도메인
업무 도메인 모델 업무 도메인 모델 업무 도메
업무 도메인 모델 업무 도메인 모델업무 도메인 모델
웹 콘텐츠의 자원화
서울 웹 컨퍼런스 2012
20. 웹 콘텐츠의 자원화
Social Intranet...
서울 웹 컨퍼런스 2012 - 20 - 웹의 개방과 공유