schema design
GraphQL 스키마 심화
스키마가 커질수록 Input, Interface, Enum, Nullable 규칙을 일관되게 잡아야 클라이언트 변경 비용이 줄어듭니다.
input
Input Type
쓰기 요청의 값 구조를 분리해 재사용하고 검증 지점을 선명하게 만듭니다.
enum
Enum
상태값과 선택지를 문자열보다 안전하게 표현하고 문서화합니다.
interface
Interface
비슷한 객체가 공유하는 필드 계약을 만들고 확장 타입을 연결합니다.
nullable
Nullable
없을 수 있는 값과 항상 오는 값을 구분해 클라이언트 분기 비용을 줄입니다.
확장 전
새 타입이 기존 타입의 일부인지, 완전히 다른 책임인지 먼저
나눕니다.
확장 중
Input과 Output을 섞지 않고 Enum 이름과 nullable 규칙을 일관되게
둡니다.
확장 후
생성된 스키마와 클라이언트 쿼리 타입을 확인해 깨진 필드를 빠르게
찾습니다.