공백을 지우면 얼마나 줄어드나
들여쓰기된 JSON은 보통 원본의 30~50%가 공백입니다. 중첩이 깊고 키가 짧을수록 비율이 올라갑니다. 결과창 아래에 압축 전후 용량과 절감률이 나옵니다.
다만 실제 전송량으로 보면 효과가 생각보다 작습니다. HTTP는 대부분 gzip이나 brotli로 압축해서 보내는데, 반복되는 공백은 압축이 아주 잘 되는 패턴이기 때문입니다. gzip을 켰다면 JSON 압축의 실익은 크지 않습니다.
그래도 압축이 필요한 자리
- 환경변수·설정값 — 여러 줄짜리 JSON을 한 줄로 넣어야 할 때
- DB 컬럼 — 압축이 적용되지 않는 저장소에 그대로 쌓일 때
- URL 쿼리스트링 — 길이 제한이 있는 자리 (인코딩까지 하면 더 길어지니 주의)
- 로그 한 줄 = 한 이벤트 — 줄바꿈이 있으면 로그 수집기가 여러 건으로 셉니다
압축이 곧 검증입니다
이 도구는 문자열을 정규식으로 훑는 게 아니라 실제로 파싱한 뒤 다시 직렬화합니다. 그래서 결과가 나왔다면 그 JSON은 문법적으로 올바릅니다. 문자열 안에 들어 있는 공백은 데이터이므로 당연히 보존됩니다.
아스키만 남기기
한글을 한 형태의 유니코드 이스케이프로 바꿉니다. 라틴 문자만 안전하게
지나가는 옛 시스템에 값을 넣을 때 씁니다. 용량은 한글 한 글자당 3바이트에서 6바이트로
늘어나므로, 요즘 환경이라면 켤 일이 없습니다.
키 순서가 바뀌나요?
바뀌지 않습니다. 정렬이 필요하면 JSON 정렬에서 키 정렬 옵션을 쓰세요.
큰 숫자가 달라집니다
자바스크립트의 숫자는 배정밀도 부동소수점이라 정수는 약 9,007조까지만 정확합니다. 그보다 큰 ID(스노우플레이크 ID 등)는 파싱 과정에서 값이 바뀔 수 있습니다. 이건 이 도구의 한계가 아니라 자바스크립트로 JSON을 다루는 모든 곳의 공통 문제이고, 그래서 큰 ID는 문자열로 주고받는 게 관례입니다.