REST 란?
- HTTP URI 를 통해 자원을 표시하고 HTTP Method 를 통해 자원에 대한 처리를 표현한다.
- 사람이 읽을 수 있는 API 라는 것이 특징이다.
- HTTP 를 사용하기 때문에 HTTP 의 특성을 그대로 반영한다.
- 별도의 인프라 구축이 필요하지 않다.
단점
- 명확한 표준이 존재하지 않는다.
- RESTful 을 완벽히 만족하는 API 를 설계하긴 매우 까다롭다.
- REST API 는 멱등성을 보장하기 힘들기 때문에 분산환경에 적합하지 않다.
HATEOAS 개념
- 동적인 API 를 제공할 수 있다.
- 즉, 클라이언트가 API 의 변화에 일일이 대응하지 않아도 된다.
REST API, GraphQL, gRPC 비교
세 기술은 시스템 간 데이터를 주고받기 위한 통신 아키텍처 및 프로토콜이다
| 구분 | REST API | GraphQL | gRPC |
|---|---|---|---|
| 핵심 개념 | 자원(Resource) 중심 웹 API | 클라이언트 주도 데이터 쿼리 언어 | 고성능 RPC(원격 프로시저 호출) |
| 통신 프로토콜 | HTTP/1.1, HTTP/2 | HTTP/1.1, HTTP/2 | HTTP/2 (필수) |
| 데이터 형식 | JSON, XML 등 | JSON | Protocol Buffers (이진 포맷) |
| 주요 특징 | 표준 HTTP 메서드(GET, POST 등) 활용 | 필요한 데이터만 정확히 요청 (Over-fetching 방지) | 압축률이 높아 정송 속도가 매우 빠름 |
| 주 사용처 | 범용적인 External/Public API | 다양한 화면/요청이 필요한 웹·앱 Frontend | Microservices(MSA) 간 Internal API |