GraphQL 요청 처리 지도
GraphQL 요청은 스키마 검증, resolver 실행, 데이터 소스 조회, JSON 응답 조립 순서로 읽으면 구조가 분명하다.
| 단계 | 하는 일 | 확인할 값 | 실패 신호 |
|---|---|---|---|
| Schema | 가능한 타입과 필드 정의 | Query, Mutation, Type | 필드 의미와 nullability가 불명확 |
| Query | 클라이언트가 필요한 필드 선택 | variables, fragment | 깊고 무거운 쿼리 |
| Validate | 스키마와 비용 제한 검사 | depth, complexity, auth | 검증 없이 resolver 실행 |
| Resolver | 필드 값을 데이터 소스에서 가져옴 | parent, args, context | 필드마다 DB를 따로 호출 |
| Response | 요청 모양의 data/errors 반환 | JSON shape, partial error | 내부 오류와 민감 정보 노출 |
GraphQL의 핵심은 endpoint 수를 줄이는 것이 아니라 요청 가능한 데이터 모양을 schema로 제한하는 것이다.