JSON 압축기

정렬된 JSON 문서를 붙여넣으면, 토큰 사이의 공백, 줄 바꿈, 끝부분의 여백, JSONC 주석 등 불필요한 모든 바이트가 제거된 한 줄 형태의 문서를 얻을 수 있습니다. 출력 결과는 동일한 데이터를 가장 짧게 인코딩한 경우에 버금가는 바이트 수를 가지며, <script>에 삽입하거나 URL 매개변수, 또는 바이트 단위로 과금되는 페이로드에 바로 사용할 수 있습니다.

JSON을 압축하는 방법

  1. 1

    JSON을 붙여넣으세요

    정렬된 형태이거나 이미 부분적으로 압축된 형태여도 됩니다. 입력은 파싱된 후 다시 직렬화됩니다.

  2. 2

    압축하기

    토큰 사이의 모든 공백이 제거되고, 주석은 삭제되며, 숫자는 그대로 유지됩니다.

  3. 3

    크기 차이를 확인하세요

    처리 전후 바이트 수와 감소율(백분율).

  4. 4

    출력을 복사하세요

    한 줄의 JSON 형식으로, 코드 파일이나 API 요청에 바로 붙여넣을 수 있습니다.

삭제되는 내용

  • 토큰 사이의 공백: 공백, 탭, 줄 바꿈.
  • 주석 (JSONC 형식의 ///* */), 엄격한 JSON에서는 허용되지 않으므로 제거됩니다.
  • 문서 시작 부분의 BOM 및 앞쪽 여백.

삭제되지 않는 항목

  • : 모든 문자열, 숫자, 불리언 값 및 null 값이 정확하게 그대로 유지됩니다.
  • 숫자 표기: 모든 숫자는 입력한 그대로 정확하게 유지됩니다. 1.501.50으로, 1e-31e-3으로 유지됩니다. 이 도구는 입력한 정밀도를 그대로 보존합니다.
  • 키의 순서: 객체는 원래의 삽입 순서를 유지합니다.

JSON을 왜 압축할까요?

  • 작은 페이로드: 정교하게 제작된 120KB 크기의 설정 파일은 70KB로 축소할 수 있으며, 이는 모든 요청에 있어 중요합니다.
  • 내장 삽입: JSON을 <script> 태그나 URL 매개변수에 삽입할 때, 공백은 대역폭을 낭비하는 요소입니다.
  • 해시 안정성: 의미적으로 동일한 두 JSON 문서라도 공백이 다르면 해시 값이 달라집니다. 먼저 압축해 두면 일관된 해시를 얻을 수 있습니다(다만 진정한 정규화에서는 키도 정렬됩니다).

바이트 절약 참고

입력 정렬됨(2칸 들여쓰기) 압축됨 절약 효과
소규모 설정(키 50개) 1.8KB 1.1KB 39%
API 응답(중첩, 5KB) 6.2KB 4.1KB 34%
대규모 데이터 덤프 1.2MB 0.8MB 33%

gzip을 사용하면 차이는 크게 줄어듭니다. gzip은 이미 공백을 매우 효율적으로 압축하기 때문입니다. 원시 바이트 용도(URL, 인라인 삽입)에는 압축을 사용하고, 네트워크 전송에는 gzip을 활용하세요.

축소하지 말아야 할 경우

  • 버전 관리 시스템에 저장된 설정 파일에서는 가독성이 데이터 크기보다 우선합니다.
  • 사람이 편집하는 파일, 압축된 JSON을 손으로 직접 수정하고 후회하지 않는 사람은 거의 없습니다.
  • 디버깅 산출물: 크래시 로그에 한 줄로 들어간 400KB 규모의 JSON은 읽기가 불가능합니다.

흔한 실수

  • 주석에 의존하던 JSON을 압축하는 것. 주석이 제거되며, TODO 마커가 있었다면 파서의 동작이 달라질 수 있습니다.
  • 부동소수점 수의 압축. 일부 도구는 0.1을 입력과 다르게 다시 직렬화하지만, 이 도구는 문자열 표현을 정확하게 유지합니다.
  • 최소화를 gzip 압축 대신 사용하는 것. 텍스트의 경우 gzip이 최소화보다 더 많은 바이트를 절약합니다. 두 방법을 함께 사용하되, 서로 대체하지 마십시오.

자주 묻는 질문

정렬된 입력의 경우 일반적으로 약 30~40% 더 작아집니다. 이 절약 효과는 거의 전적으로 공백에서 비롯되며, 실제 데이터는 변경되지 않습니다. gzip을 적용한 후에는 압축된 파일과 정렬된 파일 간의 차이가 보통 5% 미만입니다. 이는 gzip이 공백을 매우 효율적으로 처리하기 때문입니다.

이 도구는 숫자의 정확한 문자열 형태를 그대로 유지합니다. 예를 들어 1.50는 계속 1.50로 표기되며, 1e-3도 계속 1e-3로 표시됩니다. 일부 미니파이어는 정규화를 수행하지만, 이 도구는 기본적으로 보수적인 방식을 사용하므로 예상치 못한 정밀도 손실이 발생하지 않습니다.

아니요. 압축은 전적으로 브라우저에서 실행됩니다. 붙여넣은 JSON은 사용자의 컴퓨터를 벗어나지 않으므로, 토큰이나 개인 설정이 포함된 API 응답에도 안전합니다.

네, 입력에서는 주석이 허용되며, 출력에서는 제거됩니다(엄격한 JSON은 주석을 허용하지 않습니다). 주석을 유지해야 하는 경우, 정렬된 JSONC 소스를 보관하고 배포 시에만 압축 작업을 수행하시기 바랍니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다