[7주차 후기] REST - 박황기
매시업을 개발하기 위해Twitter, facebook 등의 OpenAPI를 보면 RESTful ,REST로 제공되는 인터페이스가 있다.
사실 약간 생소한 의미 인데 이와 관련해서 자세히 조사해 보았다.
1.REST의 정의
WIKIpedia에서의 정의를 보면 다음과 같다. REST (Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었다. 그는 하이퍼텍스트 전송 프로토콜 (HTTP)의 주요 저자들 가운데 한 사람이다. 그 뒤로 이 개념은 네트워킹 문화에 널리 퍼졌다.
엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 네트워크 아키텍처 원리란 리소스를 정의하고 리소스에 대한 주소를 지정하는 방법에 대한 개괄을 말한다. 간단한 의미로는, 도메인 지향 데이터를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 부가적인 전송 레이어 없이, 전송하기 위한 아주 간단한 인터페이스를 말한다. 이 두 가지의 의미는 당연히 겹치는 부분과 충돌되는 부분이 있다. 로이필딩의 REST 아키텍처 형식을 따르면 HTTP 프로토콜을 사용하지 않은 채로 또 월드 와이드 웹에서 전송하지 않고도 아주 커다란 소프트웨어 시스템을 설계하는것도 가능하다. 또한 리모트 프로시져 콜을 이용하는 대신에 간단한 XML과 HTTP 인터페이스(REST 원리에 부합하지는 않지만)를 이용해 설계하는것도 가능하다. 현실 세계에서의 REST 용어에 대한 이러한 두가지 의미는 기술 토론에서 종종 혼란을 야기한다. REST 원리를 따르는 시스템은 종종 RESTful이란 용어로 지칭된다. 열정적인 REST 옹호자들은 스스로를 RESTafrians 이라고 부른다.
-REST는 다음과 같은 하나의 URL 경로에(http://www.androidpub.com/13672)
Request전달방식이 GET,POST,DELETE,PUT이냐 에따라서 기능이 달라진다.
[이미지 : http://www.infoq.com/articles/rest-introduction]
2.1 REST의 장점
- 기존의 웹인프라를 그대로 사용 가능
- HTTP 프로토콜을 사용하므로 방화벽에 무관하게 호출 가능함.
- L4등의 장비를 그대로 사용 가능
- 모든 Resource가 URI로 Unique하게 표현되므로 웹캐시에 보관 가능
2.2 REST의 단점
- 명확한 표준이 없어서 관리가 어려움.
- WebService의 복잡성의 표준의 어려움 때문에 서로간의 데이터가 전송될
수준의 표준만 필요 했기 때문에 Enterprise수준의 표준이 없음.
3. Be stateless
- Java Platform, Enterprise Edition (Java EE) environment
- RESTful Web service
* Open API URL
- 네이버
http://dev.naver.com/openapi/
- 다음
http://dna.daum.net/DNALatte/openapi/about
- 구글
http://code.google.com/intl/ko-KR/more/
- 유투브
http://code.google.com/intl/ko-KR/apis/youtube/getting_started.html
- 야후
http://kr.open.gugi.yahoo.com/document/reference.php
- Flicker
http://www.flickr.com/services/api/
http://wiki.developers.facebook.com/index.php/Admin.getAllocation
http://apiwiki.twitter.com/Twitter-API-Documentation
- myspace
http://developer-myspace.com/wordpress/
REST는 구조화된 URI를 통해 실행가능 하므로 기존에 제공하고 있던 웹서비스 인프라 그대로 제공 할 수 있으며
web,smartphone등의 다양한 종류의 서비스를 제공하면 사용 가능 하다.
외국보다 국내는 REST서비스를 하는 웹서비스 업체가 대형 포탈사 NHN,DAUM를 제외하면 드문것 같다.
나조차도 REST라는 용어를 알게된게 최근에 SNS가 화두가 되고 웹서비스 업체에서 제공하는 API를
보면서 인것 같다. Twitter,flicker,facebook등의 SNS 사이트가 더 활성화된 이유는 API를 제공하므로써
사용자들이 API를 활용한 여러가지 다양한 기능의 서비스를 공유함으로써 창의적인 서비스를 하고 계속
기능이 발전한것 이라고 생각 한다.
국내에서도 웹서비스 업체들이 다양한 정보나 기능들을 초기 설계시 부터 API 오픈을 생각해서 설계 개발해서
REST등으로 OpenAPI를 많이 제공 하면 다양한 서비스들의 부가가치를 재창출 할 수 있고 오히려 활성화 될것
이다. 대형 포탈 이외의 다양한 서비스들이 제공이 되서 활성화 되길 바란다.
[참고자료]
* 1회 – REST 아키텍쳐에 대한 기본(DRAFT)(조대협)
http://bcho.tistory.com/tag/REST
* 오픈 API를 활용한 매시업 가이드(오창훈 저)
* http://www.infoq.com/articles/rest-introduction
* http://www.ibm.com/developerworks/webservices/library/ws-restful/index.html?ca=drs-tp4608