GraphQL 포맷터
GraphQL 쿼리 정렬·최소화 즉시 변환
📖 GraphQL 포맷터가 문자열 속 #을 주석으로 착각하지 않는 법 가이드 보기
GraphQL 포맷터란?
GraphQL 쿼리·뮤테이션·구독을 일관된 들여쓰기와 줄바꿈으로 재구성해 가독성을 높입니다. 최소화(Minify) 기능으로 불필요한 공백을 제거해 HTTP 요청 payload 크기를 줄일 수도 있습니다. 포맷·최소화 전에 먼저 "..."·"""...""" 문자열 리터럴을 찾아 임시 자리표시자로 바꿔두고, 주석 제거·공백 정리·구두점 정리를 마친 뒤 원래 문자열을 되돌려 넣는 방식으로 처리합니다. 이렇게 하지 않으면 bio: "Loves #coding"처럼 문자열 값 안에 #이 들어 있을 때 그 뒤 전체가 주석으로 오인되어 잘려나가거나, 문자열 안의 콤마·중괄호·콜론이 코드 구조로 착각되어 쿼리가 깨질 수 있습니다. Apollo Studio, GraphQL Playground 없이 브라우저에서 즉시 사용하세요.
자주 묻는 질문
GraphQL 쿼리 포맷팅이 필요한 이유는?
개발 중 가독성 향상, 코드 리뷰 시 변경 사항 파악, 팀 내 코드 스타일 통일을 위해 필요합니다.
GraphQL 최소화는 언제 사용하나요?
HTTP 요청의 query 파라미터로 전송할 때 불필요한 공백을 제거해 payload 크기를 줄이고 URL 인코딩을 단순화합니다.
문자열 인수 안에 #이나 콤마·중괄호가 있으면 깨지지 않나요?
아니요. 예를 들어 user(bio: "Loves #hashtags, {coffee}")처럼 문자열 값 안에 #·콤마·중괄호·콜론이 들어 있어도, 이 도구는 처리 전에 문자열 리터럴을 통째로 보호해두었다가 마지막에 그대로 복원하므로 문자열 내용이 손상되거나 뒷부분이 주석으로 오인되어 잘리지 않습니다.
GraphQL 주석은 처리되나요?
네. 코드 영역의 # 뒤부터 줄 끝까지는 주석으로 인식해 제거하지만, 문자열 리터럴 안에 있는 #은 주석이 아니라 문자열의 일부로 보호되어 그대로 유지됩니다.
쿼리 변수는 포맷되나요?
이 도구는 GraphQL 쿼리 문자열만 포맷합니다. 쿼리 변수(variables)는 JSON 포맷터를 사용하세요.
뮤테이션과 구독도 지원하나요?
네, mutation {...}, subscription {...} 키워드를 포함한 모든 GraphQL 문서를 지원합니다.
스키마 정의도 포맷 가능한가요?
type, interface, enum, input 등 SDL(Schema Definition Language)도 동일한 규칙으로 포맷합니다.
인수가 긴 쿼리는?
인수가 포함된 필드도 올바르게 처리합니다. user(id: "1", name: "Alice") 형식을 유지합니다.