제휴사에서 연동 규격서를 보내줘서 읽다보면 REST API 방식이라는 말이 써있는 경우가 자주 있다. REST는 Representational State Transfer의 약자로, HTTP를 기반으로 하는 웹의 장점을 살리는 아키텍처라고 한다. 문과 출신인 나는 이해하기 어려운 외계어의 난무... 구체적으로 무엇을 말하는 것인지 살펴보자.
REST API는 HTTP에서 쓰는 친구들인 GET, POST, PUT, DELETE를 통해 자원에 대한 CRUD(Create, Read, Update, Delete)를 수행할 수 있다. 더 구체적으로 살펴보면 아래와 같다.
자원에 대한 요청을 날리고, 그 결과를 받아오는 것이 REST API
GET : 리소스를 조회하고, 자세한 정보를 가져옴(Read)
- 이 글의 url을 브라우저 입력해 호출하면, 서버는 이 내용을 전송해 준다. 이렇게 정보를 읽는 것이 GET이다. 웹뷰로 연동 시, 제휴사에 url을 보내면 화면을 보내줄 때도 GET을 쓴다.
POST : 리소스를 생성 (Create)
- POST는 서버에 정보를 제출할 때 사용한다. 회원가입을 할 때 사용자는 자신의 정보를 입력하고, 회원정보를 서버에 전송할 때 POST를 쓴다. GET은 서버에 있는 정보를 읽어오기만 하지만, POST는 서버에 정보를 보내 새롭게 리소스를 생성하는 차이가 있다.
PUT : 리소스를 수정함 (Update)
- PUT은 서버에 있는 리소스를 수정하는 데 사용한다. 위에서 POST를 바탕으로 회원가입을 한 뒤, 정보를 수정하고자 할 때 PUT을 쓴다.
DELETE : 리소스를 삭제함
- DELETE는 서버에 있는 리소스를 삭제하는 데 사용한다. 고객이 회원 탈퇴를 요청하면 DELETE를 써서 정보를 삭제한다.
이러한 요청에 대해서 서버는 응답을 주는데, 이 때 응답코드를 같이 보내는 경우가 많다. 서비스별로 응답코드는 다르지만, HTTP에서 공통으로 사용하는 응답코드들은 아래와 같은 것들이 있다.
사실 위의 설명들은 REST API라기 보다는 HTTP에 대한 설명에 가깝다. REST API에도 자원과 행위의 분리 등 여러 특징이 있지만, 사실 현업 기획자 사이드에서는 구체적으로 몰라도 무방하다고 생각한다. REST API라는 방식이 요새 통용되는 방식이라는 것만 알고 있으면 연동규격서를 읽을 때 당황할 일은 적어질 것이다.