graphql safety

GraphQL 비용 제한

필드를 자유롭게 고르는 장점은 권한, 깊이 제한, N+1 방지, 캐시 정책이 함께 있을 때 안전하게 유지된다.

schema

스키마 계약

필드 이름과 nullable 여부는 클라이언트 계약이므로 변경 전 영향 범위를 확인한다.

version discipline
auth

필드 권한

타입 접근 권한과 필드별 민감 정보 노출 여부를 resolver 경계에서 확인한다.

field guard
cost

쿼리 비용

깊이, 복잡도, 요청 크기를 제한해 비싼 쿼리가 서버를 독점하지 않게 한다.

depth limit
resolver

N+1 방지

연관 데이터를 필드마다 조회하지 않도록 배치 로더와 캐시를 설계한다.

batch loading
cache

캐시 전략

쿼리 결과 캐시, 정규화 캐시, invalidation 기준을 데이터 변경 흐름과 맞춘다.

fresh data