REST API 와 GraphQL 의 차이점

SOL·2023년 4월 3일
0

TIL

목록 보기
3/7

GraphQLREST API는 모두 웹 API를 구현하는 방법이다.

데이터 요청과 반환 방식이 다름

  • REST API
    URL을 이용해서 endpoint를 정의하고, HTTP 메소드를 사용해서 요청의 의도를 나타낸다.
    클라이언트는 endpoint에 요청을 보내고 서버는 해당 요청을 처리하고 JSON, XML 등의 형식으로 데이터를 반환한다.
    데이터 모델이 복잡한 경우 API를 사용하기 위해 많은 요청을 보내야할 수 있어 대역폭을 낭비할 수 있다.

  • GraphQL
    단일 API endpoint를 사용하여 데이터를 요청하고 반환한다.
    클라이언트는 필요한 데이터의 구조와 필드를 정의해서 서버에 요청하고, 반환되는 데이터는 클라이언트가 요청한 필드에만 해당된다. -> 복잡한 데이터 모델의 요청을 쉽게 처리할 ㅜㅅ 있다.
    캐싱을 위한 HTTP 캐시 헤더를 지원하지 않아 서버측 캐싱이나 프록시 캐싱을 구현하기 어렵다.

 

REST API가 적합한 시스템

  • CRUD 작업이 주로 이뤄지는 경우
  • 단순한 데이터 모델이 있는 경우
  • 대용량 데이터를 처리하는 경우
  • 서버측 캐싱이나 프록시 캐싱이 가능한 경우
  • API의 레거시 지원이 필요한 경우

 

GraphQL이 적합한 시스템

  • 복잡한 데이터 모델이 있는 경우
  • 다양한 클라이언트가 존재하는 경우
  • 유연한 데이터 요청이 필요한 경우
  • 빠르게 변경되는 데이터 모델이 있는 경우
  • 쿼리 최적화 기능이 필요한 경우

 

결론

GraphQLREST API보다 더 유연하고 효율적인 데이터 요청 및 반환 방식을 제공한다. (클라이언트가 필요한 데이터의 구조와 필드를 정의할 수 있으므로). 서버에서는 중복되거나 불필요한 데이터를 반환하지 않아도 된다. 또한, 데이터 요청 및 반환에서 발생할 수 있는 오류를 줄일 수 있다.

REST API는 단순한 데이터 모델이나 대용량 데이터 처리르 필요로 하는 경우에 적합하다. 반면에 GraphQL은 복잡한 데이터 모델이나 다양한 클라이언트를 지원해야 하는 경우에 적합하다.

 

0개의 댓글