개발자 도구 · 5분 읽기

JSON 포맷터 & 검증기 완벽 가이드

API 응답 디버깅부터 설정 파일 편집까지, 개발자가 JSON 도구를 올바르게 활용하는 방법을 정리했습니다.

JSON이란 무엇인가?

JSON(JavaScript Object Notation)은 2001년 더글라스 크락포드(Douglas Crockford)가 제안한 경량 데이터 교환 형식입니다. 이름에 JavaScript가 들어가지만, 언어에 독립적인 텍스트 형식으로 Python, Java, Go, Rust 등 거의 모든 언어에서 파싱 라이브러리를 제공합니다.

JSON이 XML을 빠르게 대체한 이유는 단순함에 있습니다. XML은 여는 태그와 닫는 태그, 속성, 네임스페이스 등 복잡한 구조를 갖지만, JSON은 객체({}), 배열([]), 문자열, 숫자, 불리언, null 여섯 가지 타입만으로 모든 데이터를 표현할 수 있습니다. REST API, GraphQL 응답, 앱 설정 파일 등에서 사실상 표준으로 자리 잡았습니다.

JSON 포맷터가 필요한 순간

서버에서 내려오는 API 응답이나 로그 파일의 JSON은 대부분 공백과 줄바꿈이 제거된 "압축(minified)" 상태입니다. 전송 바이트를 줄이기 위해서인데, 문제는 이 상태로는 사람이 읽기가 극히 어렵다는 점입니다.

예를 들어 카카오맵 API, 네이버 클라우드 Object Storage, AWS S3 버킷 정책 같은 응답을 디버깅할 때, 중첩 깊이가 5~6단계에 달하는 JSON을 한 줄로 보면 원하는 필드를 찾는 데만 수 분이 걸립니다. JSON 포맷터에 붙여넣으면 즉시 들여쓰기된 트리 구조로 변환되어 문제의 원인을 빠르게 파악할 수 있습니다.

또한 package.json, tsconfig.json, .eslintrc.json 같은 프로젝트 설정 파일을 다른 팀에서 복사해 왔을 때 형식이 뭉개져 있는 경우, 포맷터로 정리한 뒤 사용하면 Git diff도 깔끔해집니다.

JSON 문법 오류 TOP 5

JSON.parse()가 실패하는 가장 흔한 원인을 순서대로 정리하면 다음과 같습니다.

  1. 키에 작은따옴표 사용 — JSON 표준(RFC 8259)은 반드시 큰따옴표(")를 요구합니다. JavaScript 객체 리터럴에서는 작은따옴표가 허용되지만 JSON에서는 파싱 오류입니다.
  2. 마지막 항목에 쉼표 — Trailing comma(예: [1, 2, 3,])는 JavaScript에서는 허용되지만 JSON에서는 오류입니다.
  3. 주석 포함 — JSON은 주석을 지원하지 않습니다. VS Code 설정 파일(settings.json)이 JSONC 형식이라 주석이 되는 것이지, 표준 JSON에 붙여넣으면 오류가 납니다.
  4. undefined 값 — JavaScript의 undefined는 JSON으로 직렬화할 수 없습니다. JSON.stringify()는 undefined 값을 가진 키를 아예 제거합니다.
  5. 제어 문자 미이스케이프 — 줄바꿈(\n), 탭(\t) 등을 문자열 안에 그대로 넣으면 오류입니다. 반드시 이스케이프 처리해야 합니다.

fasttool JSON 포맷터는 이러한 오류가 있는 JSON을 입력하면 어느 줄, 어느 위치에 문제가 있는지 즉시 표시해 줍니다.

포맷팅 vs 미니파이: 언제 어느 것을?

JSON 포맷팅(beautify)은 들여쓰기를 추가해 사람이 읽기 좋게 만드는 과정이고, 미니파이(minify)는 반대로 공백을 제거해 파일 크기를 줄이는 과정입니다. 일반적인 규칙은 다음과 같습니다.

포맷팅(Beautify)은 디버깅, 코드 리뷰, 문서 작성 시 사용합니다. 팀 내 공유 문서나 설정 파일을 버전 관리할 때 가독성이 좋은 포맷팅 상태를 유지하면 코드 리뷰 시 변경점을 파악하기 훨씬 쉽습니다.

미니파이(Minify)는 프로덕션 배포 직전, 또는 API 요청 페이로드를 최소화해야 할 때 사용합니다. 100KB짜리 JSON을 미니파이하면 보통 60~70KB 수준으로 줄어들어 네트워크 전송 비용과 시간을 절약할 수 있습니다.

지금 바로 JSON 포맷터 도구를 사용해 보세요. 별도 설치 없이 브라우저에서 즉시 실행됩니다.