포맷터·검증 도구

구조화된 데이터를 정렬하고 검증하고 비교하는 도구 모음입니다. 모든 처리가 브라우저에서 이루어지므로 데이터가 전송되지 않습니다.

포매팅 도구 고르기

페이로드를 들여쓰거나 압축하거나 구조를 살펴볼 때는 JSON 포매터를, 같아야 할 두 응답이 다를 때는 JSON 비교 도구를, 문서를 다른 문서 안에 문자열로 넣어야 할 때는 JSON 문자열화 도구를 사용하세요.

YAML 검증기는 설정 파일용으로, 여기서 문제가 되는 것은 문법보다 들여쓰기와 암묵적 타입 변환입니다. XML 포매터는 문서와 SOAP 페이로드용이며, 혼합 콘텐츠에서는 공백이 데이터의 일부일 수 있습니다.

정규 표현식이 아니라 진짜 파서

이 분류의 모든 도구는 무언가를 출력하기 전에 문서를 제대로 파싱합니다. 그래야 '어딘가 잘못되었다'가 아니라 입력이 어느 줄, 어느 열에서 유효하지 않게 되었는지 짚어 줄 수 있습니다. 여기서 깔끔하게 포맷되는 문서가 여러분이 쓰는 언어의 파서에서도 읽히는 이유이기도 합니다.

대가는 엄격함입니다. 이 파서들은 일부 라이브러리가 덧붙인 관대한 동작이 아니라 명세를 따르므로, 끝 쉼표나 들여쓰기에 쓴 탭, 이스케이프하지 않은 앰퍼샌드는 여러분의 환경에서 어떤 도구가 받아 주었더라도 여기서는 오류입니다.

포매팅은 바이트를 바꾸지 의미를 바꾸지 않는다 - 예외는 있다

문서를 들여쓴다는 것은 파싱한 뒤 다시 출력하는 일이며, 그 과정에서 몇 가지가 정규화됩니다. JSON에서는 중복 키가 하나로 합쳐지고 아주 큰 정수는 정밀도를 잃습니다. YAML에서는 앵커가 풀리고 변환 시 주석이 사라집니다. XML에서는 속성 순서와 주석이 유지되지만, 혼합 콘텐츠 안의 공백은 데이터이므로 일부러 건드리지 않습니다.

디버거에서 페이로드를 읽는 용도라면 이런 것은 문제가 되지 않습니다. 하지만 포맷한 결과를 그대로 커밋한다면 이야기가 다릅니다. 문서가 원본 기준이라면 사본을 포맷하고, 원본과 비교한 뒤에 교체하세요.

어떤 형식이 어디에 어울리는가

JSON은 데이터 교환의 기본값입니다. 주석이 없고 타입이 모호하지 않으며 파서가 어디에나 있습니다. YAML은 설정 파일에서 제 몫을 합니다. 주석과 재사용이 중요하고 사람이 직접 파일을 편집하는 곳이죠. XML은 스키마, 네임스페이스, 서명이 계약의 일부인 곳에 남아 있으며, 기업과 공공 분야의 시스템 연동 대부분이 여기에 해당합니다.

서로 변환하는 일이 공짜인 경우는 드뭅니다. JSON은 YAML의 앵커에서 얻을 것이 없고 주석을 잃습니다. XML의 속성에는 JSON에서 자연스러운 대응물이 없어 변환기마다 나름의 규칙을 만듭니다. 파일을 정돈하려고가 아니라, 받는 쪽 시스템이 요구할 때 변환하세요.