티스토리 뷰

REST란

  • HTTP를 잘사용하기 위한 아키텍쳐 스타일이다.
  • REST는 URI와 HTTP 메소드를 사용해서 자원과 행위를 표현한다.
  • REST의 원칙을 지키면서 API의 의미를 표현하기 쉽고, 파악하기 쉽게 하는 것을 Restful 하다고 한다.

 


REST API란

  • REST한 방식으로 데이터를 상호교환하게 설계된 API를 말한다.
  • HTTP를 잘사용하기 위해, URI와 HTTP메소드를 사용해서, URL로 어떤 자원에 접근할 것인지, 메소드로 어떤 행위를 할것인지 표현하여 설계된 API를 말한다.

 

로이필딩의 논문 Chapter 5.를 보면 REST 제약조건 6가지를 설명한다.

 

Client-Server

  • 클라이언트와 서버를 분리함으로써, 서로 의존하지 않는 구조를 가져야한다.

Stateless

  • 요청과 응답이 들어올 때마다, 상대가 누구인지 파악할 수 있어야 한다.

Cache

  • 요청에 대한 응답 내의 데이터에 캐시 가능여부가 명시되어 있어야 한다.

Uniform Interface

  • 전체 시스템을 파악할 수 있는 인터페이스를 제공해야한다.

Layered System

  • 클라이언트는 서버에 직접 연결되었는지, 중간 서버를 통해 연결되었는지 알 수 없어야 한다.

Code-On-Demand(Optional)

  • Server에서 보낸 코드를 Client에서 실행할 수 있어야함을 의미한다.

 


REST API의 장점

보기 좋다.

  • URL만 보고 어떤 자원에 접근할 것이닞, 메소드를 보고 어떤 행위를 할 지 알 수 있기 때문에, 개발을 할때 용이하다.

자원을 아낄 수 있다.

  • 1개의 URI로 4개의 행위(CRUD)를 명시할 수 있기 때문에, 굉장히 효율적이다.

stateless한 상태를 유지할 수 있다.

  • 이게 제일 중요하다.
  • REST API의 가장 큰 특징으로, 다양한 브라우저와 모바일에서 통신할 수 있도록 한다.
  • 클라이언트가 서버에 종속적이지 않아도 되기 때문에, scale out한 상황에서도 용이하다.

 


# 정리

RESTful API(=REST API)란,

REST한 방식으로 클라이언트와 서버간 상호 데이터 교환을 하는 API이며, 서로간에 stateless한 특징을 가지는 API이다.