짧은 답: JSON에서 'pretty print'와 'format'은 같은 것 —— 'beautify'도 마찬가지입니다. 셋 모두 데이터를 바꾸지 않고 일관된 들여쓰기와 줄바꿈을 더해 구조를 읽기 쉽게 하는 일을 가리킵니다. 그런데 혼동은 실재합니다. 옆에 진짜 다른 작업(minify, validate, tree view)이 같이 있기 때문입니다. 이 글은 용어를 정리하고 실제로 무엇이 다른지를 보여 줍니다.
Pretty Print, Format, Beautify —— 같은 작업
'Pretty print JSON', 'format JSON', 'beautify JSON' 모두 같은 작업을 가리킵니다: JSON 값(흔히 한 줄짜리 컴팩트 문자열)을 들여쓰기와 줄바꿈과 함께 다시 직렬화. 출력은 입력과 의미적으로 동일 합니다 —— 토큰 사이의 공백은 JSON에서 무의미하므로, 어느 형식이든 파서는 같은 데이터를 만들어 냅니다.
// 컴팩트(API가 돌려주는 형태)
{"user":{"name":"Ada","roles":["admin","editor"]}}
// pretty-printed / formatted / beautified —— 데이터는 같음
{
"user": {
"name": "Ada",
"roles": [
"admin",
"editor"
]
}
}
따라서 도구가 'Format', 'Beautify', 'Pretty Print'를 별도 버튼으로 둬도, 하는 일은 같습니다. 의미 있는 기술적 구별은 없습니다.
그럼 실제로 다른 건 무엇?
유용한 구별은 pretty-print와 format 사이가 아니라 —— '포맷팅'과 다음의 이웃 작업들 사이에 있습니다:
| 작업 | 하는 일 | 데이터를 바꾸나? |
|---|---|---|
| Pretty print / format / beautify | 가독성을 위해 공백 추가 | 안 바꿈 |
| Minify | 크기를 줄이기 위해 공백 제거 | 안 바꿈 |
| Validate | JSON 문법이 올바른지 확인 | 안 바꿈 |
| Tree view | 상호작용 가능하고 접을 수 있는 구조 표시 | 안 바꿈 |
| Repair | 유효하지 않은 JSON(따옴표, 쉼표)을 고쳐 parse 가능하게 함 | 바꿈(문법 수정) |
Minify는 pretty print의 정반대 —— JSON minify 방법 참고. 검증은 별도 체크(JSON 검증 방법), 큰 payload를 트리 형태로 탐색하는 것은 또 다른 것(JSON 트리 뷰어). 입력이 아예 parse되지 않는다면 format이 아니라 repair부터 필요합니다.
JSON을 pretty print 하는 법
도구가 어떤 단어를 쓰든 동작은 같습니다:
// JavaScript —— 세 번째 인자가 들여쓰기
JSON.stringify(value, null, 2); // 값으로부터
JSON.stringify(JSON.parse(raw), null, 2); // JSON 문자열로부터
# Python
import json
json.dumps(data, indent=2)
# 커맨드라인
jq . data.json # jq는 기본으로 pretty-print
python3 -m json.tool data.json
전체 워크스루 —— 키 정렬, 커맨드라인 옵션, 다른 형식 변환 —— 은 JSON 포맷팅 방법 참고.
온라인에서 JSON pretty print
코드를 쓰지 않고 pretty-print 하려면 JSON을 JSON Fix 에 붙여 넣으세요: 일관된 2칸 들여쓰기로 포맷팅(흔한 오류는 먼저 고치므로 완전 유효하지 않은 JSON에도 동작). 모두 브라우저에서 동작하고 업로드는 없습니다. 큰 문서의 상호작용 뷰가 필요하면 JSON Viewer 를 쓰세요.
자주 묻는 질문
'pretty print JSON' 과 'format JSON' 은 같은가요?
예. JSON에서 pretty print, format, beautify 모두 같은 뜻: 데이터를 바꾸지 않고 가독성을 위해 들여쓰기와 줄바꿈을 더하는 것.
pretty print가 내 JSON 데이터를 바꿉니까?
아니요. 토큰 사이 공백은 JSON에서 무의미하므로 pretty-printed와 컴팩트 두 형식은 동일한 데이터 구조로 parse 됩니다.
JavaScript에서 JSON을 어떻게 pretty print?
JSON.stringify(value, null, 2) 사용 —— 세 번째 인자가 들여쓰기(2칸, 4칸, 또는 '\t' 로 탭)를 설정. 문자열에서 시작하면 먼저 parse.
JSON pretty print의 반대는?
Minify —— 의미 없는 공백을 모두 제거해 한 줄짜리 컴팩트 JSON을 만드는 것. JSON minify 방법 참고.
JSON을 포맷하면 키 순서가 바뀌나요?
바뀌지 않습니다(요청하지 않는 한). 포맷팅은 키 순서를 그대로 유지하며, JavaScript 객체와 Python 딕셔너리(3.7+) 모두 삽입 순서를 보존합니다. 키를 알파벳순으로 정렬하는 것은 별도의 선택 단계입니다(JSON.stringify에 커스텀 replacer를 쓰거나 json.dumps(..., sort_keys=True)).
JSON pretty print에 2칸과 4칸 중 무엇을 써야 하나요?
아무거나 —— 정확성이 아니라 스타일 취향의 문제입니다. 2칸이 가장 흔한 기본값이고, 4칸은 Python과 Java에서 흔합니다. 들여쓰기는 무의미한 공백이므로 어떤 선택이든 동일한 데이터로 parse 됩니다. 하나를 골라 프로젝트 전체에서 일관되게 적용하세요.
관련 도구와 가이드
- JSON Fix —— 브라우저에서 JSON pretty-print(수리도)
- JSON 포맷팅 방법 —— 코드와 CLI까지 갖춘 완전 how-to
- JSON minify 방법 —— 반대 작업
- JSON Viewer 와 JSON Formatter —— 보기 vs 포맷
- JSON이란? —— 왜 공백이 무의미한가
출처
- RFC 8259 §2 —— JSON 문법(무의미한 공백은 임의의 두 토큰 사이에 올 수 있다는 규범적 서술)
- MDN ——
JSON.stringify(pretty-print 들여쓰기를 제어하는space매개변수) - Python ——
json.dumps(표준 라이브러리의 대응물,indent키워드) - jq 매뉴얼(대표적인 명령줄 JSON 처리기, 기본으로 pretty-print)
마지막 검토: 2026년 6월.