(간단정리) RestAPI vs GraphQL

KHW·2022년 5월 25일
0

다양한 지식쌓기

목록 보기
46/48

RestAPI

REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스

GraphQL

API를 위한 쿼리 언어

RestAPI의 장단점

장점

CRUD 메소드를 활용한 동작이해가 쉽다
(REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악)
클라이언트와 서버간의 각자의 역할이 명확하게 분리 (사이에서 역할 처리)

단점

  1. overFetching - 불필요한 data를 너무 많이 받아와 낭비가 심하고 이로인한 성능저하
  2. underFetching - 어떤 하나의 api에서 받아온 내용으로는 부족하여 다른 api를 호출하는 상황이 발생하여 원하는 data 내용보다 적게 받아와 이를 추가적인 api 호출이 필요

GraphQL 장점

장점

  1. overFetching 해결 - 필요한 속성 부분들만 지정해서 받아올 수 있다.
  2. underFetching 해결 - 한번의 API 호출에서 필요한 원하는 데이터 얻기 가능

단점

HTTP의 캐싱 전략은 각각의 URL에 저마다의 정책을 설정하는 형식으로 이루어집니다. REST API 역시 URL마다 개별적인 데이터를 제공하게끔 하므로, HTTP에서 제공하는 캐싱 전략을 그대로 사용하는 것이 가능합니다. 반면 GraphQL은 (주로) /graphql 이라는 하나의 URL을 두고 여기에 쿼리를 전송, 응답을 받는 형식입니다.
그렇기에 모든 데이터를 하나의 URL에서 처리하는 GraphQL은 HTTP에서 제공하는 캐싱 전략을 그대로 사용할 수 없습니다.

HTTP caching

웹 사이트와 애플리케이션의 성능은 이전에 가져온 리소스들을 재사용함으로써 현저하게 향상

  • restAPI는 같은 요청에 같은 결과를 받으니 캐싱이 향상될수밖에없지
  • graphQl은 모든 데이터를 하나의 url에서 처리하니 매번 결과가 다를 수 밖에 없으니 캐싱전력을 그대로 사용할 수 없지

restAPI도 매번 메소드가 다르면 다르게 올텐데 왜 caching이 되냐?

HTTP 캐시들은 일반적으로 GET에 대한 응답만을 캐싱하며, 다른 메서드들은 제외될 겁니다. 라고 MDN에서 설명하고있다.

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글