'RESTful'에 해당되는 글 2건

  1. 2014.03.23 RESTful Web Service
  2. 2014.03.23 RESTful API
RESTful2014. 3. 23. 20:40

RESTful Web Service는 HTTP Protocol 에서 서비스 할 수 있도록 설계 되었습니다.(ROA 속성)

가장 큰 특징은 HTTP Protocol의 Read, Update(PUT), Delete에 맞게 디자인 되었습니다.

 

특징 !

http://localhost:8080/server/re/user/1234

(기존의 방식 - http://www.kor.net/finduser.jsp?user=mk&age=32 )

이런 식으로 요청 했을 때   URI 에서 user에 매치 되는 것이 1234이므로 1234 를 re 하는 방식으로 돌아갑니다.

(스프링 3.0) 프레임워크 에서는 쉽게 restful 방식을 구현할 수 있습니다.

 

*REST 방시의 웹서비스는 세션을 쓰지 않는다.*
기존의 파라미터 및 여러가지 정보를 포함하여 요청 정보를 무겁게 만들어서 느려지는 경향이 있다. 그러나 REST는 세션 을 사용하지 않기 때문에 각각의 요청을 완벽하게 독립적이며, 각각의 요청은 이전 요청과는 무관하게 어떠한 서버라도 처리할 수 있게 된다. 



Why?  RESTful???
이전의 SOAP(simple Object Access Protocol) 방식의 메세지를 이용한 서비스 요청 방식은 많은 정보가 담겨 있어 무겁습니다.
REST 방식은 URI 를 이용해서 리소스를 요청합니다. URI를 사용하기 때문에 가볍고 리소스를 요청하기 때문에 ROA() 방식에 가깝습니다.
ROA는 4가지 중요한 속성을 잘 이해합니다.

주요기능 !
1. URI 입력과 서비스를 제공하는 클래스를 서로 연결
2. request의 method에 따라 해당 핸들러 함수를 호출
3. request와 response를 다루기 위한 라이브러리 클래스 제공
4. representation을 생성하기 위한 라이브러리 클래스 제공

사용 순서 !( 환경 설정)
1. application 을 생성 -> 2. router를 이용해서 URI-리소스를 맵핑 -> 3.해당 리소스에는 각 요청 METHOD에 대한 핸들러 함수를 설정

스프링에서 사용 방법
- 처음부터 끝까지 쉬운 설명  - http://androidhuman.tistory.com/475



마지막으로  구글 과 아마존에서는 이미 REST 방식을 사용하여 상업 서비스를 제공 한다.

'RESTful' 카테고리의 다른 글

RESTful API  (0) 2014.03.23
Posted by wrnly
RESTful2014. 3. 23. 20:32

RESTful 한 통신 방법에 대하여 깊은 관심이 사실상 없었지만은....

요즘 한창 개발하고 있는 프로젝트에서 아주 중요한 이슈가 생겨버렸다.

 

화면에서 고객과의 인터렉션이 엄청나게 발생하게 되는것이다.

고객의 마우스 클릭, 드레그 등의 이벤트에 따라 화면이 재구성되어야 하고, 화면의 모든정보들이 실시간으로 반영되어야 하는탓에 3가지 방법으로 풀어보려고 한다.

 

1. BackBone.js 프론트앤트 프레임워크 도입

2. Spring RESTful 통신

3. memcached 원격 캐슁서버 구축

 

그중에서 2번째인 RESTful 통신을 구현하기 위해서 구글링으로 찾아본 내용들 정리해 본다.

 

 

1. REST?

 

REpresentational State Transfer

 

http 통신 프로토콜의 상태를 기반으로 모든 요청을 일종의 자원으로 인식한다. URI 

한마디로 REST를 정리하면 HTTP URI + HTTP Method 이다. 

URI로 대상 자원을 명시하고 Method로 해당 자원에 대한 행위를 정의한다. 

 

REST의 가장 큰 특징중의 하나가 모든 자원을 Resource 즉 자원으로 표현한다는 것이다. 

 

Resource는 HTTP URL에 의해서 표현된다. 

네이버 카페의 junes81 아이디는 http://cafe.naver.com/junes81 라는 일종의 리소스로 표현되는 것이다.

 

www.overstock.com/home+and+garden

www.overstock.com/home+garden.html

 

www.overstock.com/products/id=123

 

www.overstock.com/products/123


 

 

2. REST 행위

 

! GET – retrieve a resource, 자원조회

! PUT – create a resource, 자원수정

! POST – update (create if necessary) a resource, 자원저장

! DELETE – delete a resource, 자원삭제

 

! HEAD – 자원메타정보조회

! OPTIONS - 사용가능한 요청 방식조회

! TRACE - 테스트 목적의 데이터 조회

! CONNECT - 연경 요청

 

 

 

3. REST 에서 사용하는 표준


! URI – how resources are named and referenced

! Methods – how resources are manipulated

! HTML, XML, GIF, etc – how resources are represented

! Media types (text/plain, etc) – metadata for representations

 

 

4. REST의 장점

 

기존의 웹 인프라를 그대로 이용할 수 있다.

 

가장 큰 장점중의 하나일거다. 기존 HTTP를 그대로 사용하기 때문에, Remote Call을 할때도 방화벽을 새로 뚫어야 하느니등의 요건이 없고, L4등의 로드 밸런서 장비들도 그대로 사용이 가능하다.

 

웹캐쉬 서버를 그대로 사용할 수 있다. 모든 Resource가 URI로 Unique하게 표현되기 때문에, 웹 캐쉬상에 보관될 수 있고, 

특히나 SELECT성의 Operation은 이 캐쉬에 의해서 실제 Biz Transaction을 타지 않고 바로 리턴될 수 있기 때문에, 성능과 리소스 활용 측면에서 어마어마한 장점을 가지고 있다. 


사실 이부분이 REST 방식을 사용하는 가장 매력적인 부분이라고 생각한다.

 

 

5. 참고자료 

 

www.restlet.org

www.xfront.com

www.prescod.net/rest

www.w3.org/DesignIssues/Axioms.html

www.xml.com/pub/a/2004/08/11/rest.html

 

 

 

실제 Backbone.js 와의 연동처리와 Spring 에서 REST 방식을 구현한 부분은 개발 완료 되는데로

스프링3.0 카테고리 게시판에 게시하겠다.

'RESTful' 카테고리의 다른 글

RESTful Web Service  (0) 2014.03.23
Posted by wrnly