-
REST API
- REST API에서 REST는 Representational State Transfer의 약자로 소프트에어 프로그램 아키텍처의 한 형식이다.
- 자원의 이름 (자원의 표현)으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
- REST는 기본적으로 웨의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
구체적인 개념
- HTTP URI를 통해 자원을 명시하고, HTTP Method (POST, GET, PUT, DELETE)를 통해서 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미한다.
- 즉, REST는 자원 기반의 설계의 중심에 Resource가 있고, HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍처를 의미
- CRUD Operation
- Create : 생성 (POST)
- Read : 조회 (GET)
- Update : 수정 (PUT)
- Delete : 삭제 (DELETE)
- HEAD : Header 정보 조회
REST 구성
- 자원 (Resource) - URL
- 행위 (Verd) - HTTP Method
- 표현 (Representaions)
1. 자원 (Resource) URL
- 모든 자원에 고유한 ID가 존재하며, 이 지원은 Server에 존재한다.
- 자원을 구별하는 ID는 /orders/order_id/1 과 같은 HTTP URI다.
2. 행위 (Verd) - HTTP Method
- HTTP 프로토콜의 Method를 사용한다.
- HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.
3. 표현 (Representaions)
- 클라이언트가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보낸다.
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 응답으로 나타낼 수 있다.
- 현재는 JSON으로 주고 받는 것이 대부분이다.
4. REST의 장단점
- 장점
- HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
- 서버와 클라이언트의 역할을 명확하게 분리한다.
- 여러가지 서비스 다지인에서 생길 수 있는 문제를 최소화한다.
- 단점
- 표준이 존재하지 않는다.
- 사용할 수 있는 Method가 4가지 밖에 없다.
- HTTP Method 형태가 제한적이다.
- 구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 있다.
- PUT, DELETE를 사용하지 못한다.
- PushState를 지원하지 않는다.
5. REST API 특징
- 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
- REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
'Back-End' 카테고리의 다른 글
CI/CD (0) 2022.02.22 SQL Select Query 문법 처리 순서 (0) 2022.02.22 MongoDB 장점 (0) 2022.02.17 HTTPS와 SSL (0) 2022.01.29 SQL SELECT 문법 (0) 2022.01.07