평소 GET, POST, PUT, DELETE 같은 메서드로 통신을 많이 하곤 하는데, 제대로 개념을 알지 못하는 것 같아서 찾아보았다.

REST

REST API는 REST가 기본 핵심이다.

Rest는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당자원의 상태를 주고받는 아키텍쳐이다.

보통 URI를 통해 자원을 명시하고 HTTP Method를 통해 자원에 대한 CRUD 오퍼레이션을 적용한다. 그리고 자원은 JSON, XML, TEXT 등 여러가지 형태로 나타낼 수 있다.

Untitled

REST의 특징

  1. Server-Client 구조를 갖게 된다. 자연스럽게 자원을 요청하는 쪽이 Client, 제공하는 쪽이 SERVER로 구성된다. 이를 통해 서로간의 의존성이 줄어들 수 있다.
  2. 무상태성을 갖는다. Server와 Client는 각자의 저장소에 데이터를 공유하지 않으므로 (예 : client context를 서버에 저장하지 않는 것) 무상태성을 갖는다.

REST API

그래서 REST API란 이런 REST 구조를 준수하여 만들어진 API라고 보면 된다.

REST API를 잘 준수하였다는 측면에서 URI는 중요한 부분인데, URI를 RESTful하게 기술하였다는건 다음과 같다.

  1. URI 자원을 표현해야한다.
  1. 자원에 대한 행위는 HTTP 메서드로 표현한다.

마치며

요즘 취업준비를 하면서 RESTful한 API 에 대한 이해가 깊으신분 이라는 자격조건을 많이 보는 것 같다. 하지만 내가 아는 수준은 GET, POST 정도밖에 되지 못했다. 그래서 이번 기회에 REST API에 대한 찾아봤는데, 왜 회사에서 자격조건으로 넣는지 알 수 있을 정도로 중요한 개념이였다.