REST 다중 요청 vs GraphQL 단일 쿼리
REST는 리소스 엔드포인트를 조합하고 GraphQL은 화면이 필요한 필드를 쿼리로 선언한다.
| 비교 축 | REST | GraphQL | 판단 기준 |
|---|---|---|---|
| 요청 단위 | URL과 method가 리소스를 표현 | query가 응답 모양을 표현 | 리소스 중심인가 화면 중심인가 |
| 데이터 양 | over/under fetch 가능 | 필드 선택으로 응답 조절 | 화면별 필드 조합이 자주 바뀌는가 |
| 캐시 | HTTP 캐시와 endpoint 캐시가 단순 | 쿼리 단위 캐시 설계 필요 | 캐시 무효화 비용이 감당되는가 |
| 계약 | 문서와 상태 코드 중심 | schema 타입 중심 | 클라이언트와 타입 계약이 중요한가 |
| 비용 | 여러 요청과 조합 로직 | resolver 비용과 N+1 | 관계 조회 비용을 통제할 수 있는가 |
GraphQL은 REST의 상위호환이 아니라 복합 화면 데이터 요구를 schema와 query로 표현하는 다른 계약이다.