좋은 schema는 클라이언트 주도적이고, 경계에서는 기본적으로 nullable이며, 버전 없이 진화 가능합니다. 데이터베이스 테이블이 아니라 클라이언트가 실제로 사용하는 용어로 도메인을 모델링합니다.
Nullability
필드를 항상 반환할 수 있을 때만 non-null(!)로 만드세요. !를 남용하는 것은 함정입니다: non-null 필드에 오류가 나면 그 parent 객체 전체를 null로 만들어, 작은 실패를 커다란 공백으로 바꿉니다. downstream 서비스에 의존하는 것은 무엇이든 nullable을 선호하세요.
graphql
User
ID
String
String
