REST, Representational State Transfer
소프트웨어 프로그램 아키텍처의 한 형식.
자원의 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍쳐 스타일이다.
개념 → HTTP URI
를 통해 자원을 명시하고 HTTP Method
(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD OPERATION을 수행하는 것을 의미한다.
왜? → Client Side를 정형화된 플랫폼(예전 only 웹)이 아닌 모바일, PC, 어플리케이 등 플랫폼에 제약 받지 않는 것을 목표로 했기 때문에 XML, Json등과 같은 클라이언트에서 바로 객체로 치환 가능한 형태의 데이터 형태를 지향하게 되면서 Server와 Client의 역할을 분리하게 되었다.
구성 →
자원
, Resource : URL
행위
, Verb - HTTP Method
표현
, Representations
/users/user_id/1
와 같은 HTTP URI 이다.GET, POST, PUT, DELETE
와 같은 메서드를 이용한다.Representation
)을 보낸다.JSON
을 주로 이용한다.특징 →
REST Server
: API를 제공, 비지니스 로직 처리 및 저장을 책임진다.Client
: 사용자 인증이나 context (세션, 로그인정보) 등을 직접 관리한다.HTTP의 특성
을 이용하기 때문에 무상태성을 갖는다.구현이 쉽고 단순
해진다.