REST 란?


  • HTTP URI 를 통해 자원을 표시하고 HTTP Method 를 통해 자원에 대한 처리를 표현한다.
  • 사람이 읽을 수 있는 API 라는 것이 특징이다.
  • HTTP 를 사용하기 때문에 HTTP 의 특성을 그대로 반영한다.
  • 별도의 인프라 구축이 필요하지 않다.

단점

  • 명확한 표준이 존재하지 않는다.
  • RESTful 을 완벽히 만족하는 API 를 설계하긴 매우 까다롭다.
  • REST API 는 멱등성을 보장하기 힘들기 때문에 분산환경에 적합하지 않다.

HATEOAS 개념

  • 동적인 API 를 제공할 수 있다.
  • 즉, 클라이언트가 API 의 변화에 일일이 대응하지 않아도 된다.

REST API, GraphQL, gRPC 비교


세 기술은 시스템 간 데이터를 주고받기 위한 통신 아키텍처 및 프로토콜이다

구분REST APIGraphQLgRPC
핵심 개념자원(Resource) 중심 웹 API클라이언트 주도 데이터 쿼리 언어고성능 RPC(원격 프로시저 호출)
통신 프로토콜HTTP/1.1, HTTP/2HTTP/1.1, HTTP/2HTTP/2 (필수)
데이터 형식JSON, XML 등JSONProtocol Buffers (이진 포맷)
주요 특징표준 HTTP 메서드(GET, POST 등) 활용필요한 데이터만 정확히 요청 (Over-fetching 방지)압축률이 높아 정송 속도가 매우 빠름
주 사용처범용적인 External/Public API다양한 화면/요청이 필요한 웹·앱 FrontendMicroservices(MSA) 간 Internal API