REST

Web2hub wiki

Jump to: navigation, 찾기

목차

REST(Representational State Transfer)

정의

REST란 대규모 네트워크 시스템을 위한 아키텍처로 2000년 Roy Fielding의 박사 학위 논문에서 처음 제안되었다. REST는 원래 웹과 같은 대규모 네트워크 시스템을 위한 원칙들의 모음을 말하는 것이지만, 요즘에는 XML과 HTTP를 사용하는 단순한 웹 기반 인터페이스(즉, REST의 원칙을 따르는 Web Services)를 지칭하기도 한다.

REST는 웹이 지금과 같이 전세계적인 규모의 성공을 이룰 수 있었던 것은 웹이 다음과 같은 특징을 가졌기 때문이라고 주장한다.

  • 상태를 유지하지 않는 클라이언트/서버 구조를 가진다.
  • 작고 어디에서나 적용되는 인터페이스를 가진다. (e.g., GET, POST, PUT, DELETE)
  • 모든 자원은 URI를 이용하여 유일하게 지칭될 수 있다.
  • 자원들의 표현(Representation)들이 URI을 통해 서로 연결되어 있다.

이와 같은 특징으로 인해 웹 서버와 웹 클라이언트의 종류에 상관없이 URI만 알면 HTTP GET과 같은 인터페이스를 이용하여 간단히 해당 자원에 접근할 수 있다.

Representational State Transfer

Representational State Transfer은 잘 디자인된 웹 어플리케이션이 어떻게 동작하는 지에 대한 이미지를 떠올리게 하가 위한 용어이다. 웹 페이지들의 네트워크가 있고 사용자가 링크를 선택하면 다음 페이지가 보여진다. 즉 웹을 Virtual State Machine이라고 생각하면 링크를 선택함으로써 State가 변하고 Next State Representation(다음 페이지)가 보여지게 된다.

REST의 중요성

웹은 수많은 행위자들이 상호작용하는 시스템 중 가장 성공한 예이다. 그러므로 유사한 시스템에서 REST 모델은 가치 있는 프레임워크를 제공해 줄 수 있다. REST와 가장 비교되는 모델은 Remote Procedure Call(RPC)모델 이다. RPC모델은 로컬 프로그래밍 모델의 함수 호출 형식을 네트워크 시스템에 적용시킨 것이다. REST의 성공과 DCOM, CORBA, RMI와 같은 기존 RPC모델의 실패는 REST가 큰 스케일의 네트워크 시스템에 적합하다는 것을 의미한다.

REST형식의 Web Services를 제공하는 업체들

참고 자료