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