기본
GraphQL
초혼
2023. 11. 29. 12:21
GraphQL
클라이언트가 Query Language(QL)를 사용해서 서버에 원하는 요청을 할 수 있도록 하는 서버 사이드 런타임
vs RESTful API
1. 하나의 엔드포인트
기존의 RESTful API는 API마다 서로 다른 엔드포인트를 가진다.
API가 많아질수록 엔드포인트도 많아지고 이에 따른 관리 부담도 증가한다.
GraphQL은 하나의 엔드포인트에서 쿼리를 통해 요청하는 방식이다.
Query를 통해 클라이언트가 원하는 요청을 보낼 수 있기 때문에 HTTP 요청 횟수를 줄일 수 있다
2. 원하는 데이터만 응답 받을 수 있다
RESTful API는 서버에서 정해진 종류의 데이터를 클라이언트가 일방적으로 받아야 한다.
필요하지 않은 데이터까지 응답에 포함되어서 낭비가 발생할 수 있다.
GraphQL은 Query를 통해 클라이언트가 원하는 데이터만 응답 받을 수 있기 때문에 HTTP Response 크기를 최소화할 수 있다.
3. Query로 인해 요청의 기본 크기가 크다
고정된 요청과 응답이 필요한 경우에 Query로 인핸 요청의 크기가 커질 수 있다
4. 캐싱이 힘들다
5. 파일 업로드 구현 방법이 정해져 있지 않다