[New Stack] GraphQL

그냥·2022년 10월 28일
0

new-stack

목록 보기
1/1

1. REST API의 문제점

REST API는 여러 개의 URL을 활용하여 작동한다. 모든 URL은 고유하고 서로 다른 데이터를 제공한다. REST API를 사용할 경우 URL은 웹사이트를 제공하는 것이 아니라 데이터를 제공한다. 그리고 데이터를 JSON 포맷이다. 즉, REST API는 URL로 가득차 있는 것이다.


1) Over Fetching

클라이언트가 필요한 데이터보다 더 많은 데이터를 받는 경우를 뜻한다. 예를 들어 특정 영화를 검색할 때 결과물로 영화이름, 개봉일, 평점, 리뷰 등을 제공한다. 그런데 클라이언트가 원하는 데이터는 개봉일 하나일 뿐일 경우 나머지 데이터는 필요없는 데이터인 것이다. 이런 경우를 Over Fetching이라고 한다.


2) Under Fetching

클라이언트가 필요한 데이터보다 더 적은 데이터를 받는 경우를 뜻한다.



2. GraphQL

GraphQL은 REST API의 문제점을 보완한 Query Language이다. REST API의 두 가지 문제점을 보완하였는데 그것은 클라이언트가 정확하게 필요한 정보만을 요청할 수 있게 해준다. REST API를 사용할 경우 URL을 통해 데이터를 요청하기 때문에 방대한 양의 데이터가 오는 경우가 많다. 하지만 GraphQL을 사용할 경우 클라이언트에서 쿼리를 서버에 보내고 서버는 그 쿼리를 받아 정확히 필요한 데이터만 클라이언트에 제공한다.

예를 들어 영화 플랫폼에서 상영 영화에 개봉 예정 영화의 리스트를 원하다고 해보자. 그럴 경우 REST API는 두 가징 URL을 통해서 2번의 요청을 해야 할 것이다. 그러나 GraphQL을 사용할 경우 하나의 쿼리 안에서 상영 영화, 개봉 예정 영화에서의 필요한 데이터를 한 번에 보낼 수 있음으로 Over, Under Fetching이 발생하지 않는다.

0개의 댓글