타입 계약
서버가 제공하는 타입, 필드, 입력값, 반환 형태를 정의합니다.
REST가 URL 중심으로 리소스를 나눈다면 GraphQL은 schema, query, resolver를 중심으로 요청과 응답 모양을 맞춥니다.
서버가 제공하는 타입, 필드, 입력값, 반환 형태를 정의합니다.
클라이언트는 화면에 필요한 필드만 요청 문서에 적습니다.
각 필드가 데이터베이스나 서비스에서 값을 가져오는 방법을 구현합니다.
요청 모양과 같은 구조의 JSON이 반환되는지 확인합니다.
데이터 변경은 mutation으로 분리해 입력 타입과 결과 타입을 명시합니다.
반복되는 필드 묶음은 fragment로 재사용해 쿼리 중복을 줄입니다.
필드별 resolver가 많아질수록 배치 로딩과 캐싱 전략이 필요합니다.
GraphQL은 화면별 데이터 모양이 자주 달라질 때 좋지만, schema와 권한, 쿼리 비용 제한을 함께 설계해야 합니다.