GraphQL 필드 계약

GraphQL의 강점은 필요한 필드 선택이고, 약점은 필드마다 숨은 비용과 권한 조건이 생긴다는 점이다.

계약 항목확인할 내용좋은 상태위험 신호
Field클라이언트에 공개할 이름과 의미필드 목적이 schema에 드러남내부 DB 컬럼을 그대로 노출
Resolver cost필드 하나가 실행하는 조회 비용batch와 cache 기준 있음목록 안에서 반복 DB 호출
Permission필드와 자원별 접근 조건context 사용자 기준으로 검사로그인만 확인하고 소유권 누락
Cache쿼리 결과와 하위 필드 갱신 방식mutation 뒤 무효화 계획언제 오래된 값인지 알 수 없음
Mutation입력 타입과 실패 응답검증 오류가 예측 가능쓰기 작업이 query처럼 섞임

GraphQL 필드는 화면 편의를 위한 이름이면서 서버 비용과 권한 정책이 붙는 계약 단위다.