클라이언트는 필요한 필드를 쿼리로 선언한다
GraphQL은 schema, query, resolver가 함께 맞물려 클라이언트가 요청한 필드 구조 그대로 응답을 만든다.
| 요소 | 역할 | 예시 | 관리 포인트 |
|---|---|---|---|
| Schema | 서버가 공개하는 타입 계약 | User, Post, Comment | 필드와 nullable 기준 |
| Query | 화면에 필요한 읽기 필드 선언 | user { name posts { title } } | 깊이와 비용 제한 |
| Mutation | 상태 변경 입력과 결과 정의 | createPost(input) | 검증, 권한, 오류 형식 |
| Resolver | 필드 값을 실제 데이터로 연결 | DB, API, cache | N+1과 batching |
| Fragment | 반복 필드 묶음 재사용 | UserCardFields | 중복 감소와 변경 추적 |
GraphQL 요청을 볼 때는 URL보다 schema가 허용한 필드와 resolver 비용을 함께 읽어야 한다.