Rest? Restful? 웹 개발을 하다보면 이런 단어들이 스멀스멀 나오기 시작한다. API는 어느정도 이해를 했지만 Rest에 대해서는 개념이 제대로 적립되지 않았다. 이 글을 적어보면서 확실한 개념을 가져가고자 한다.
API
는 Application Programming Interface의 약어로 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
우리가 공모전을 하거나 공공데이터를 이용할 일이 생긴다면 API를 활용할 일이 대부분일 것이다. 이 때 어떠한 곳에서 데이터를 쓰고 제어할 수 있도록 제공하는 기능을 하는 것이 API이다.
둘 다 비슷한 말이다. Representational State Transfer의 약어인 REST는 웹의 장점을 최대한으로 활용할 수 있는 아키텍쳐로 HTTP프로토콜을 의도에 맞게 설계하도록 유도하고 있다. 이 규칙을 잘 지켜나간 것을 RESTful이라고 표현한다.
HTTP의 중심요소이자 웹 개발의 행위는 CRUD(Create, Replace, Update, Delete)이다. 이 행위 4가지가 웹 개발의 전부라고 할 수도 있다. 이 CRUD를 잘 맞춰나가는 간다면 여러분들도 RESTful하게 설계 및 제작하였다고 말을 할 수 있다.
그러면 REST는 어떻게 구성이 되어있을까?
다음 3개로 구성되어져 있다.
REST API에서 주요한 정보는 리소스라고 하는데 우리가 일반적으로 교환하는 모든 정보를 뜻한다.
REST가 HTTP의 프로토콜을 알맞게 설계하도록 유도한다면 어떤 형식으로 유도를 할까? 자원에 대하여 CRUD를 할 수 있게 하는 HTTP Method를 살펴보자.
Method | Action | 행위 |
---|---|---|
GET | list, read | 모든 or 특정한 데이터 조회 |
POST | write | 데이터 생성 |
PUT | replace | 데이터 전체 교체 |
PATCH | update | 데이터 일부 수정 |
DELETE | remove | 데이터 삭제 |
위의 메서드를 토대로 웹 개발을 해나간다면 RESTful하게 개발을 할 수 있다.
오늘은 REST API에 대해 알아보았다. 웹 개발에서 REST가 필수적인 요소는 아니나, 쓸 상황이 앞으로도 많을 것이라 예상된다. 상황에 맞게 적절하게 써야할 것이다.
API 이미지 출처 : https://www.cloudways.com/blog/comprehensive-introduction-rest-api/