GraphQL 문서

GraphQL 포매터문법과 스키마 검사를 구분하세요

작업 문서, SDL, 변수 JSON을 각각 다룹니다. 필드 검사가 필요하면 작업 문서 모드에서 완전한 SDL 스키마를 추가하세요.

GraphQL 포매터

입력

결과

문서는 현재 브라우저 안에서 처리합니다. API 요청과 기록 저장을 하지 않으며 입력을 URL에 넣지 않습니다.

옵션

스키마가 없으면 문법만 검사합니다. 완전한 SDL을 넣으면 필드와 타입을 정적으로 검사합니다. 변수는 JSON 객체 문법만 확인하며 값의 타입은 검사하지 않습니다.

문서와 스키마는 각각 100,000자, 변수는 20,000자까지입니다. GraphQL은 토큰 20,000개와 중첩 100단계까지 처리하며 8초 후 작업을 중단합니다.

문서를 입력하거나 예제를 불러오세요.

GraphQL 포매터는 로그에서 복사한 긴 쿼리를 검토하기 좋게 정리합니다. 중첩된 선택과 프래그먼트를 펼쳐 읽으면서 필요한 정의가 문서에 함께 들어 있는지 살펴볼 수 있습니다. 원본 입력은 결과와 별도로 남습니다.

괄호와 문법이 맞아도 서버에 없는 필드를 요청할 수 있습니다. 결과 상태에서 문법만 확인했는지, 입력한 스키마까지 대조했는지를 먼저 확인하세요.

GraphQL 포매터로 검토하기

작업과 프래그먼트를 함께 읽기

GraphQL 포매터는 선택 집합을 공백 두 칸으로 들여쓰고 문서 전체를 출력합니다. 구조 보기에서는 작업, 변수 선언, 프래그먼트와 필드의 원본 행을 확인할 수 있습니다. 참조를 임의로 펼치거나 빠진 정의를 만들지 않습니다.

한 줄로 압축된 문서가 들여쓴 여러 행으로 바뀌고 변수 객체가 별도 카드에 나타난다.

실제 계약에 맞춰 필드 확인

GraphQL 검증에서 문법 검사와 스키마 검사는 다릅니다. GraphQL 스키마를 추가하면 알 수 없는 필드, 인자와 타입 관계를 검사할 수 있습니다. 오류에 입력 위치가 표시되므로 문서와 스키마 중 어디를 수정할지 알 수 있습니다.

문법 검사를 통과한 쿼리가 스키마와 대조되자 일치하지 않는 필드가 강조된다.

검사 범위부터 선택하세요

01

입력에 맞는 모드 선택

쿼리, 뮤테이션, 구독과 프래그먼트는 작업 문서 모드에서 처리합니다. 독립된 type 또는 extend 조각은 SDL 모드를 쓰면 Query 루트 없이도 정리됩니다. 변수 모드에서는 쿼리 없이 JSON만 다룰 수 있습니다.

02

탭에 필요한 문맥 추가

작업 문서의 세 입력 탭은 내용을 따로 보관합니다. 스키마와 변수를 입력한 뒤 문서로 돌아와도 내용이 남습니다. 예제를 불러올 때는 교체될 텍스트와 문자 수를 먼저 확인하고 적용합니다.

03

내보내기 전 최신 상태 확인

자동 처리는 입력이 멈춘 뒤 400ms 후 실행됩니다. 끄면 처리 버튼이나 Ctrl/Cmd+Enter를 사용할 수 있습니다. 입력과 모드 변경은 결과를 오래된 상태로 만들지만 결과 보기 전환은 같은 계산을 사용합니다.

문서를 살펴보는 네 가지 방식

읽기 쉬운 출력과 압축 출력

GraphQL 포맷팅은 리뷰에 적합한 들여쓰기를 만들고 압축은 불필요한 구분자를 줄입니다. 이름 사이의 필수 공백, 문자열 값과 필드 순서는 유지됩니다. 실행 성능을 개선하도록 쿼리를 다시 쓰지는 않습니다.

원본 행이 있는 구조 목록

작업과 타입 정의를 100개씩 표시합니다. 구조 다운로드에는 화면에 아직 보이지 않는 항목까지 완전한 JSON 목록으로 포함됩니다. 목록 항목 수를 서버 실행 비용으로 해석하지 마세요.

정밀도를 지키는 변수 정리

9007199254740993과 1.2300e+40 같은 숫자 표기를 그대로 보존합니다. 숫자처럼 생긴 객체 키도 입력 순서를 유지합니다. 같은 키가 두 번 나오면 한 값을 버리지 않고 오류로 알립니다.

입력으로 돌아가는 오류 안내

가능한 경우 문법 오류의 행과 열을 함께 표시합니다. 오류를 누르면 해당 입력 탭으로 이동합니다. 스키마 검사만 실패했다면 정리된 문서는 수정용으로 남지만 복사와 다운로드는 비활성화됩니다.

검사 결과의 의미와 한계

정적 검사는 서버 실행이 아닙니다
API 요청이나 리졸버 실행은 하지 않습니다. 변수 값의 필수 여부, 런타임 변환, 사용자 정의 스칼라와 업무 규칙은 검사하지 않습니다. 문서 안의 변수 선언 타입은 표준 정적 검사에 포함됩니다.
스키마 입력은 완전한 SDL입니다
인트로스펙션 JSON과 URL은 받지 않습니다. 쿼리 루트, 참조된 타입과 사용자 정의 지시문 정의를 함께 넣어야 합니다. Federation 조합과 코드 생성은 지원하지 않습니다. 독립 SDL 모드의 범위는 문법 검사입니다.
주석과 설명은 다르게 처리합니다
정리 및 압축 결과에서 # 주석은 제거됩니다. SDL 문자열 설명은 문법 요소이므로 유지합니다. 원본 입력은 보존하며 자동 문법 수정, 필드 정렬, 외부 프래그먼트 읽기는 하지 않습니다.
한도를 넘으면 작업을 중단합니다
문서와 스키마는 각각 100,000자, 변수는 20,000자까지입니다. GraphQL 토큰은 20,000개, 구분자 중첩은 100단계이며 JSON도 100단계로 제한됩니다. 8초를 넘으면 문서를 나누어 다시 시도하세요.

GraphQL 포매터 자주 묻는 질문

편집기에 입력한 텍스트의 GraphQL 문법을 어떻게 검사하나요?

파서는 스키마 없이도 텍스트가 GraphQL 문법에 맞는지 확인할 수 있습니다. 작업 문서 모드에서 스키마를 비워 두면 문법만 검사합니다. 이 결과만으로 서버에 필드가 있는지는 알 수 없습니다.

서버 스키마를 기준으로 GraphQL 작업을 어떻게 검증하나요?

서버의 완전한 SDL을 스키마 탭에 붙여 넣고 작업과 필요한 프래그먼트를 문서에 넣으세요. 필드, 인자와 선언 타입을 정적으로 확인합니다. 인증과 실제 실행, 리졸버 동작은 검사하지 않습니다.

GraphQL 변수가 잘못된 JSON으로 표시되는 이유는 무엇인가요?

변수는 GraphQL 입력 객체 표기나 프로그래밍 언어의 딕셔너리가 아니라 엄격한 JSON입니다. 키와 문자열에 큰따옴표를 쓰고 마지막 쉼표를 제거하세요. 최상위 값은 객체여야 하며 중복 키도 허용하지 않습니다.

왜 “Query root type must be provided” 오류가 발생하나요?

완전한 스키마로 제공한 내용에 유효한 쿼리 루트가 없다는 뜻입니다. type Query를 정의하거나 schema 선언으로 기존 객체 타입을 지정하세요. 단독 타입이나 확장 조각을 정리하려면 SDL 모드를 선택하세요.

GraphQL 쿼리를 출력할 때 프래그먼트 정의가 빠지는 이유는 무엇인가요?

작업 노드만 출력하면 다른 곳에 있는 프래그먼트 정의가 자동으로 추가되지 않습니다. 이 도구는 붙여 넣은 전체 문서를 출력하므로 필요한 정의를 같은 문서에 함께 넣어야 합니다. 외부 파일을 읽거나 참조를 인라인으로 펼치지 않습니다.

예상과 다른 결과가 나왔나요?

다음 리뷰를 준비하세요

GraphQL 포매터로 문서를 정리하고 표시된 검사 범위를 확인한 다음 최신 결과를 복사하거나 다운로드하세요.