GraphQL 실행 구조
GraphQL 실행 모델은 스키마 계약, 요청 검증, resolver 경계, 데이터 조회 최적화, 권한 검사를 함께 다룬다.
| 실행 구간 | 책임 | 필요 장치 | 위험 신호 |
|---|---|---|---|
| Contract | 클라이언트가 요청 가능한 필드 제한 | schema, type, input | 스키마와 실제 응답 불일치 |
| Validation | 필드 존재와 쿼리 비용 확인 | depth, complexity limit | 무제한 중첩 조회 |
| Resolver | 필드별 데이터 공급 | context, service layer | 권한 검사가 resolver 밖에만 있음 |
| Batching | 반복 관계 조회 묶기 | DataLoader, cache | N+1로 DB 호출 폭증 |
| Error | 부분 성공과 오류를 응답 형식에 담음 | data + errors | 내부 스택과 민감 값 노출 |
GraphQL은 문법보다 resolver 비용과 권한 경계를 통제할 수 있을 때 안정적으로 운영된다.