모든 아티클

JSON Formatter: 포맷팅, 압축, 검증

JSON 텍스트를 다루는 작업은 보통 세 가지 다른 일로 귀결됩니다: 읽기 쉽게 만들기, 압축하기, 아예 올바른지 확인하기. 이는 하나의 도구로 묶여 제공되는 경우가 많지만 서로 다른 세 가지 작업입니다.

포맷팅(pretty-print)

포맷팅은 들여쓰기, 줄바꿈, 문장부호 주변 공백을 추가해 JSON의 구조를 눈으로 쉽게 읽을 수 있게 합니다. 이는 순전히 시각적인 변화로, 데이터 자체가 아니라 표시 방식에만 영향을 줍니다.

압축(minify)

압축은 불필요한 공백, 줄바꿈, 들여쓰기를 모두 제거하고 정말 필요한 문자만 남깁니다. 이는 네트워크로 데이터를 전송하거나 대용량 데이터를 저장할 때 중요한 파일 크기를 줄여줍니다 — 데이터 구조 자체는 바뀌지 않습니다.

검증

검증은 텍스트가 문법적으로 유효한 JSON인지 확인합니다. 흔히 잡아내는 오류로는 닫는 괄호 앞의 불필요한 쉼표, 큰따옴표 대신 작은따옴표, 따옴표 없는 객체 키, 주석(JSON 표준에서는 전혀 허용되지 않음), 닫히지 않은 괄호 등이 있습니다. 유효한 JSON은 포맷팅이나 압축이 애초에 작동하기 위한 전제 조건입니다.

언제 무엇이 필요한가

  • 포맷팅 — API 응답을 디버깅하거나 설정 파일을 수동으로 편집할 때.
  • 압축 — 네트워크로 데이터를 전송하거나 프로덕션 코드에 삽입하기 전에.
  • 검증 — 파서가 JSON 파일을 읽지 못하는 이유를 진단할 때.

같은 한글 파일이 macOS와 Windows에서 다르게 보이는 이유

한글은 초성·중성·종성 자모가 하나의 음절 블록으로 합쳐진 완성형(NFC)으로 저장되는 것이 일반적이지만, 옛 macOS의 HFS+ 파일시스템은 파일명이나 텍스트를 자모가 분리된 조합형(NFD)으로 저장하는 것으로 잘 알려져 있습니다. 겉보기엔 완전히 동일한 "안녕"이라는 문자열도 인코딩 방식에 따라 바이트 단위로는 다른 데이터가 되며, 이 상태로 JSON 문자열에 들어가면 유효한 JSON이면서도 문자열 비교나 diff에서 예상치 못한 불일치를 일으킬 수 있습니다. 포맷팅 자체는 이 차이를 바꾸지 않으므로, 원본 텍스트의 정규화 형태를 맞추는 별도 처리가 필요합니다.

JSON5와 JSONC는 표준 JSON과 다릅니다

VS Code나 TypeScript 설정 같은 일부 환경은 트레일링 콤마, 주석, 따옴표 없는 키를 허용합니다 — 이는 JSON5 또는 JSONC라는 확장 문법이지 표준 JSON(RFC 8259)이 아닙니다. 엄격한 JSON 검증기는 편집기가 이를 "이해"하더라도 이런 파일을 정상적으로 거부합니다.

도구 사용해보기