배포 중인 SDL을 이전 칸에 두기
비교 방향은 이전 버전에서 새 버전입니다. 양쪽을 바꾸면 제거와 추가의 뜻이 바뀌고 위험도 다시 계산되므로 잘못 붙여 넣었을 때 교환 기능을 사용하세요.
GraphQL 문서
현재 배포된 전체 SDL은 이전 칸에, 제안한 전체 SDL은 새 칸에 넣으세요. 순서가 위험 판단을 결정합니다.
완전한 스키마 SDL 두 개를 입력하거나 예제를 불러오세요.
두 SDL은 현재 브라우저에서만 분석합니다. API 요청, 업로드, 기록 저장, URL 입력 전달은 하지 않습니다.
GraphQL.js가 호환성 손상과 잠재적 위험을 판정합니다. 나머지 구조 변경과 사용 중단 표시는 별도로 보여 주며 안전하다고 단정하지 않습니다.
SDL 하나당 100,000자, 토큰 20,000개, 중첩 100단계까지입니다. 비교는 8초 후 중단됩니다.
완전한 스키마 SDL 두 개를 입력하거나 예제를 불러오세요.
GraphQL 스키마 비교는 SDL의 줄 순서나 공백이 바뀌어 텍스트 diff가 복잡할 때 유용합니다. 실제 클라이언트가 참조하는 타입, 필드, 인수의 계약이 어떻게 달라졌는지 확인할 수 있습니다.
구조 변화와 위험 판정은 분리해서 봐야 합니다. GraphQL.js가 위험으로 분류하지 않은 새 필드나 사용 중단 표시도 결과에 남겨 두어 검토자가 놓치지 않도록 합니다. 스키마 변경 사항을 한곳에서 읽되 분류의 근거는 구분합니다.
글자 차이보다 API 계약의 의미에 집중합니다.
GraphQL 스키마 비교는 두 SDL을 파싱한 뒤 타입과 필드, 인수의 경로를 대조합니다. 정의 순서나 들여쓰기만 바뀌었다면 차이로 세지 않으며, 사라진 필드는 이름과 이전 값을 보여 줍니다.
enum 값 추가는 잠재적 위험이지만 @deprecated 추가는 기존 호출을 곧바로 막지 않습니다. GraphQL 스키마 비교는 두 사건을 분리하고 일반적인 새 필드도 기록하여 미분류를 안전하다고 표현하지 않습니다.
비교 방향은 이전 버전에서 새 버전입니다. 양쪽을 바꾸면 제거와 추가의 뜻이 바뀌고 위험도 다시 계산되므로 잘못 붙여 넣었을 때 교환 기능을 사용하세요.
기본값은 입력이 약 350ms 멈춘 뒤 자동 비교입니다. 긴 SDL을 붙여 넣을 때는 자동을 끄고 비교 버튼 또는 Ctrl/Cmd+Enter로 현재 두 문서만 처리할 수 있습니다.
수정 직후 기존 보고서는 오래된 상태가 되어 복사와 다운로드가 비활성화됩니다. 오류가 가리키는 칸과 행·열을 고친 뒤 다시 비교하세요. 화면에 100개씩 보여도 내보내기에는 전체가 포함됩니다.
타입, 필드, 인수, 입력 객체, enum, union, 지시어를 경로별로 비교합니다. 공백과 선언 순서 변경은 계약 변경으로 취급하지 않습니다.
GraphQL.js가 호환성 손상과 잠재적 위험을 판정하며 규칙 코드를 함께 표시합니다. 나머지 구조 변경은 무조건 안전하다고 주장하지 않습니다. GraphQL Inspector의 원격 CI 설정 없이 두 로컬 SDL을 검토할 수 있습니다.
@deprecated의 추가 및 이유 변경을 따로 기록합니다. 사용 중단 필드를 실제로 제거하면 여전히 호환성 손상입니다. 다운로드에는 모든 항목이 포함됩니다.
필수 Mutation 인수를 nullable로 바꾸면 허용하는 입력이 넓어지므로 GraphQL.js는 대개 그 방향을 호환성 손상으로 보지 않습니다. 반대로 필수로 바꾸면 값을 생략하던 기존 호출이 실패할 수 있습니다.
새 enum 값은 기존 쿼리의 검증을 곧바로 깨뜨리지 않더라도 모든 값을 분기 처리하는 클라이언트에는 예상 밖일 수 있습니다. 그래서 잠재적 위험으로 구분합니다.
SDL 두 개에는 변경 의도가 적혀 있지 않습니다. GraphQL 스키마 비교는 이전 타입 제거와 새 타입 추가를 따로 보고하므로 전환용 별칭이나 단계적 이전을 API에서 설계해야 합니다.
Mutation은 루트 타입의 필드이므로 @deprecated를 붙일 수 있습니다. 표시만으로 기존 연산이 없어지지 않으며 나중에 필드를 제거하면 기본 규칙은 호환성 손상으로 판정합니다.
출력 필드를 non-null에서 nullable로 바꾸면 생성된 클라이언트 타입의 가정이 달라져 GraphQL.js가 호환성 손상으로 표시합니다. 반대 방향도 resolver의 실제 반환값을 별도로 시험해야 합니다.
예상과 다른 결과가 나왔나요?
현재 SDL과 제안 SDL을 나란히 놓고 위험과 나머지 구조 변화를 확인한 뒤 최신 보고서를 내려받으세요.