현대 웹 설계사상 중 가장 널리 쓰이는 REST에 대해 이야기 해봅시다.  

 

아키텍처 스타일로서의 REST

REST는 웹의 아키텍처 스타일입니다. 실제 시스템을 짜임새 있게 구현하기 위해서는 일종의 설계 지침, 규정과 같은 법칙을 적용해야 합니다.
아키텍처 스타일이란 아키텍처를 결정할 때 나침반이 되어주는 지침이라 할 수 있습니다.

REST는 수많은 아키텍처 스타일 중 네트워크 시스템을 구축하기 위한 아키텍처 스타일이라 이야기 할 수 있습니다. 네트워크 시스템에서 가장 유명한 아키텍처 스타일로는 클라이언트/서버 구조가 있습니다.

사실 REST는 클라이언트/서버 구조에서 파생된 아키텍처 스타일 중 하나 입니다. 클라이언트/서버 스타일에서 몇가지 제약들을 더해 나가면 REST 아키텍처 스타일을 만들 수 있습니다.

일반적으로 소프트웨어 아키텍처는 여러개의 컴포넌트를 조합하며 구현합니다. 각각의 컴포넌트에 제약을 부과함으로써 각 컴포넌트가 서로 협력하도록 만들고 전체 컴포넌트의 균형을 이루도록 하는 것이 REST가 가지는 의의 중 하나라 볼 수 있을 것입니다.

리소스

REST에 있어 중요한 개념의 하나로 리소스라는 개념이 있습니다.
우선은 웹에서의 리소스 예를 살펴보도록 하겠습니다.

  • 먓집 게시판의 신촌 음식점 리뷰
  • 본 블로그의 REST 관련 글
  • 기상청 사이트의 일기예보

위와 같은 예시는 모두 웹에서 리소스라 불리는 것들 입니다.
한 마디로 웹상에 존재하는 이름을 가진 모든 정보를 의미합니다.

프로그램의 경우엔 동명이인을 구별하지 못하기 때문에 반드시 이름으로 다른 것과 구별될 수 있어야 합니다.
그러므로 리소스는 이름을 가지고 있으며 이 이름은 다른 리소스와는 구별될 수 있어야 합니다.

리소스의 이름: URI

전 세계의 무수한 리소스들은 각각 URI를 가짐으로써 의미있는 이름을 가지게 됐습니다.
URI를 이용하면 프로그램은 리소스가 표현하는 정보에 접근할 수 있게 됩니다.

URI가 가지고 있는 리소스를 간단히 가리킬 수 있는 성질을 Addressability라 부릅니다.
1개의 리소스는 여러개의 URI를 가질 수 있습니다.

리소스는 여러 형식으로 복수 표현이 가능합니다.
또한, 리소스는 상태라는 것이 존재합니다. 시간의 경과에 따라 리소스의 표현이 달라질 수 있습니다. 위와 같은 경우들을 한개의 URI로 표현될 수 있으며, 여러개의 URI로 나누어 관리할 수도 있습니다.

REST 아키텍처 스타일의 구성

앞서 REST 아키텍처는 서버/클라이언트 모델에 제약을 부과하며 파생시킨 아키텍처라는 것을 간단히 언급했었습니다. 클라이언트/서버에서 부터 REST를 구축하는 과정을 서술해보도록 하겠습니다.

클라이언트/서버

작성중입니다.

스테이트리스 서버

작성중입니다.

캐시

작성중입니다.

계층화 시스템

작성중입니다.

코드 온 디맨드

작성중입니다.

RESTful 한 설계

작성중입니다.

태그: ,

카테고리:

업데이트:

댓글남기기