
웹 클라이언트가 서버로부터 데이터를 효율적으로 가져오는 것을 목적으로 설계된 쿼리 언어.

| REST API | GraphQL API | |
|---|---|---|
| Method | GET, POST, PUT, PATCH, DELETE 등 | POST | 
| Endpoint | 필요에 따라 여러 개 존재 | 단 하나만 존재 | 
| 데이터 형태 | 서버단에서 ORM, 쿼리 등을 이용해 결정 | 클라이언트단에서 쿼리 조합하여 결정 | 
| 쿼리 조합 | endpoint마다 달라짐 | 스키마 타입에 따라 달라짐 | 
| 네트워크 호출 | endpoint마다 호출 | 딱 한번의 호출로 여러 데이터 요청 처리 가능 | 
| 요청 처리 | endpoint에 정의된 핸들링 함수 호출하여 처리 | 요청받은 필드에 대한 resolver 호출하여 처리 | 
OverFetchingUnderFetching POST End-point에서 모든 요청 처리 가능 결합도가 떨어짐