공백은 장식; 파서는 무시
JSON 은 토큰 사이 공백 무시. {"a":1} 와
{
"a": 1
}
는 같은 값으로 파싱. 공백은 사람용 — 청중에 맞춰 골라.
JSON 두 형태
- Compact — 공백 없음, 최소 byte. wire 에서 사용 (HTTP 응답, 로그, 메시지 큐). Nginx 로그, gzip 파이프라인, 네트워크 대역폭 다 혜택.
- Pretty-printed — 2 칸 indent, 키당 한 줄. 소스 파일 (config), 문서, 디버깅에서 사용. git 에서 깔끔하게 diff.
알아야 할 도구
모든 언어가 pretty-print 도구 가짐. Bash 사람: jq (강력, 쿼리 언어 빌트인). Python: python -m json.tool (stdlib, zero install). JS / Node: JSON.stringify(obj, null, 2). Rust: serde_json::to_string_pretty. 다 같은 일 — 데이터 라운드트립, 포맷팅 다시 emit.
원칙: pretty-print JSON 을 git 에 commit. wire 위로는 compact JSON 보내. 절대 반대로 하지 마. 디스크의 pretty-print 가 읽히는 diff 주고; wire 의 compact 가 대역폭과 속도. 한쪽 비용은 포매터 돌리는 비용; 둘 섞는 비용은 읽기 어려운 diff 와 부풀린 payload.