CalcBang
태그 방지를 위해 이스케이프하는 경우도 있습니다."}},{"@type":"Question","name":"JSON 포맷팅(들여쓰기)과 압축(Minify)은 각각 언제 사용하나요?","acceptedAnswer":{"@type":"Answer","text":"JSON 포맷팅(Pretty Print)은 들여쓰기와 줄바꿈을 추가하여 사람이 읽기 쉽게 만드는 것으로, 개발 중 디버깅, 설정 파일 편집, 코드 리뷰 시 사용합니다. 압축(Minify)은 불필요한 공백과 줄바꿈을 제거하여 파일 크기를 최소화하는 것으로, 네트워크 전송(API 응답), 저장 공간 절약, 프로덕션 환경에서 사용합니다. 보통 포맷팅된 JSON은 압축 버전보다 2~3배 큰 크기입니다."}}]}

JSON 포맷터 - 실시간 유효성 검증·들여쓰기·압축

탭 크기

※ 이 도구는 브라우저에서 실행되며, 입력한 JSON 데이터는 서버로 전송되지 않습니다.

JSON 포맷터 사용 방법

JSON 데이터를 입력하면 실시간으로 유효성을 검증하고, 보기 좋게 들여쓰기를 추가하거나 공백을 제거하여 압축할 수 있습니다. 웹 개발, API 디버깅, 설정 파일 편집 등 JSON을 다루는 모든 상황에서 유용합니다.

주요 기능

기능설명단축키
포맷 (들여쓰기)보기 좋게 들여쓰기와 줄바꿈 추가Format 버튼
압축 (Minify)공백·줄바꿈 제거하여 최소화Minify 버튼
복사결과를 클립보드에 복사Copy 버튼
유효성 검증JSON 문법 오류 자동 감지자동
통계 정보키 개수, 중첩 깊이, 바이트 크기자동

JSON 기본 구조

JSON은 두 가지 기본 구조로 이루어집니다.

객체 (Object)

{
  "이름": "홍길동",
  "나이": 30,
  "직업": "개발자"
}

배열 (Array)

[1, 2, 3, "사과", "바나나"]

JSON 데이터 타입

타입예시설명
문자열"안녕하세요"큰따옴표로 감싼 텍스트
숫자42, 3.14, -7정수 또는 소수
불리언true, false참 또는 거짓
nullnull빈 값
객체{"key": "value"}키-값 쌍의 집합
배열[1, 2, 3]순서가 있는 값의 목록

자주 발생하는 JSON 오류와 해결법

1. Trailing Comma (끝 쉼표)

❌ {"a": 1, "b": 2,}
✅ {"a": 1, "b": 2}

2. 작은따옴표 사용

❌ {'name': '홍길동'}
✅ {"name": "홍길동"}

3. 키에 따옴표 누락

❌ {name: "홍길동"}
✅ {"name": "홍길동"}

4. 이스케이프 누락

❌ {"path": "C:\Users\admin"}
✅ {"path": "C:\\Users\\admin"}

5. 주석 사용 (JSON에서 주석 불가)

❌ {"name": "홍길동" /* 이름 */}
✅ {"name": "홍길동"}

들여쓰기 탭 크기 선택

  • 2칸: JavaScript/TypeScript 프로젝트에서 주로 사용. 중첩이 깊은 JSON에 적합.
  • 4칸: Python, Java 프로젝트에서 주로 사용. 가독성이 높지만 파일 크기가 커짐.

활용 사례

API 디버깅

  • REST API 응답을 복사하여 포맷팅하면 데이터 구조를 쉽게 파악
  • 요청 본문(body)을 작성할 때 유효성 검증으로 오류 사전 방지

설정 파일 편집

  • package.json, tsconfig.json 등 설정 파일 편집 시 포맷팅
  • 수동 편집 후 유효성 검증으로 구문 오류 확인

데이터 분석

  • 키 개수와 중첩 깊이로 데이터 구조의 복잡도 파악
  • 압축 전후 크기 비교로 최적화 효과 확인

코드 리뷰

  • 압축된 JSON을 포맷팅하여 변경 사항 가독성 향상
  • 팀원 간 JSON 데이터 공유 시 일관된 포맷 유지

참고

  • RFC 8259: JSON 데이터 교환 형식 표준
  • ECMA-404: JSON 데이터 교환 구문 표준
  • JSON Schema: JSON 데이터 구조 검증 표준

※ 이 도구는 브라우저에서 실행되며 입력한 JSON 데이터는 서버로 전송되지 않습니다.

자주 묻는 질문

JSON이란 무엇인가요?

JSON(JavaScript Object Notation)은 데이터를 저장하고 전송하기 위한 경량 텍스트 형식입니다. 키-값 쌍으로 구성되며, 사람이 읽기 쉽고 기계가 파싱하기 쉬운 것이 특징입니다. 웹 API 통신, 설정 파일, 데이터 저장 등 다양한 분야에서 표준 데이터 형식으로 사용됩니다. 확장자는 .json이며, MIME 타입은 application/json입니다.

JSON에서 흔히 발생하는 구문 오류는 무엇인가요?

가장 흔한 JSON 구문 오류는 다음과 같습니다. ① 마지막 항목 뒤에 쉼표(trailing comma) 추가 — {"a":1,}는 오류입니다. ② 키를 작은따옴표(')로 감싸기 — JSON에서는 반드시 큰따옴표(")를 사용해야 합니다. ③ 키에 따옴표 누락 — {name: "홍길동"}은 유효하지 않습니다. ④ 문자열 안에서 이스케이프 처리하지 않은 따옴표나 백슬래시. ⑤ undefined, NaN, Infinity 등 JSON에서 지원하지 않는 값 사용.

JSON 유효성을 검증하는 방법은 무엇인가요?

JSON 유효성 검증은 JSON.parse()를 사용하여 문자열이 올바른 JSON 형식인지 확인하는 것입니다. 이 도구에 JSON을 붙여넣으면 자동으로 유효성을 검증하고, 오류가 있으면 오류 메시지와 위치를 표시합니다. 프로그래밍에서는 try-catch 블록으로 JSON.parse()를 감싸서 파싱 오류를 처리하는 것이 일반적입니다. 대용량 JSON의 경우 JSON Schema를 사용하여 데이터 구조와 타입까지 검증할 수 있습니다.

JSON과 XML의 차이점은 무엇인가요?

JSON과 XML 모두 데이터 교환 형식이지만 주요 차이점이 있습니다. JSON은 키-값 쌍과 배열 구조로 간결하고 가벼우며, XML은 태그 기반으로 더 장황합니다. 같은 데이터를 표현할 때 JSON이 XML보다 약 30~40% 더 작습니다. JSON은 JavaScript와 자연스럽게 호환되어 웹 개발에서 주로 사용되고, XML은 문서 중심 데이터(RSS, SOAP, SVG 등)에 여전히 활용됩니다. 현재 대부분의 REST API는 JSON을 표준으로 사용합니다.

JSON에서 처리할 수 있는 최대 크기는 어느 정도인가요?

JSON 표준 자체에는 크기 제한이 없지만, 실제 환경에서는 제한이 있습니다. 브라우저의 JavaScript 엔진은 보통 수백 MB까지 파싱할 수 있지만, 메모리 사용량 때문에 권장되지 않습니다. 이 도구는 브라우저에서 실행되므로 약 10~50MB 정도가 실용적인 한계입니다. 대용량 JSON 처리에는 스트리밍 파서(SAX 방식)나 서버 사이드 도구를 사용하는 것이 좋습니다. 웹 API에서는 보통 요청 본문 크기를 1~10MB로 제한합니다.

JSON에서 특수문자 이스케이프 규칙은 무엇인가요?

JSON 문자열 내에서 반드시 이스케이프 처리해야 하는 문자가 있습니다. 큰따옴표(\"), 백슬래시(\\), 줄바꿈(\n), 캐리지 리턴(\r), 탭(\t), 백스페이스(\b), 폼 피드(\f)는 역슬래시로 이스케이프합니다. 유니코드 문자는 \uXXXX 형태로 표현할 수 있습니다(예: \u0041은 'A'). 슬래시(/)는 이스케이프가 선택 사항이지만, </script> 태그 방지를 위해 이스케이프하는 경우도 있습니다.

JSON 포맷팅(들여쓰기)과 압축(Minify)은 각각 언제 사용하나요?

JSON 포맷팅(Pretty Print)은 들여쓰기와 줄바꿈을 추가하여 사람이 읽기 쉽게 만드는 것으로, 개발 중 디버깅, 설정 파일 편집, 코드 리뷰 시 사용합니다. 압축(Minify)은 불필요한 공백과 줄바꿈을 제거하여 파일 크기를 최소화하는 것으로, 네트워크 전송(API 응답), 저장 공간 절약, 프로덕션 환경에서 사용합니다. 보통 포맷팅된 JSON은 압축 버전보다 2~3배 큰 크기입니다.

관련 계산기