logo
GeekFormat

JSON 압축

무료 온라인 JSON 압축 도구. JSON 한 줄 컴팩트 압축, JSON Escape/Unescape를 지원하며, 스마트 구문 복구를 내장하여 후행 쉼표 등 일반적인 오류를 자동 처리합니다. 실시간 압축률 표시, CodeMirror 에디터에 단축키 지원, 순수 프론트엔드 처리.

관련 추천

사용 사례

  • API 개발에서 JSON 요청/응답 바디를 압축하여 HTTP 전송 바이트를 줄이고 API 응답 속도 향상(특히 모바일 약한 네트워크 환경)
  • 배포 전 프론트엔드 JSON 설정 파일, i18n 언어 팩, Mock 데이터를 경량화하여 정적 리소스 크기 감소
  • 단위 테스트 코드, Postman/curl 명령에서 JSON 객체를 이스케이프하여 문자열 리터럴로 코드에 삽입
  • 로그에서 복사한 이스케이프된 JSON(예: \"key\":\"value\")을 한 번에 Unescape하여 읽기 쉬운 JSON으로 복원
  • 후행 쉼표, 작은따옴표 등 구문 오류가 있는 JSON 파일을 일괄 복구하여 한 번에 유효한 JSON으로 변환
  • 포맷된 JSON을 한 줄로 압축하여 명령줄 인수나 채팅 도구에 붙여넣어 공유

주요 기능

  • 3-in-1 기능: JSON 컴팩트 압축 + Escape + Unescape, 크기 줄이기, 코드 문자열 삽입, 이스케이프 복원의 세 가지 시나리오를 커버
  • 스마트 구문 복구: tryFixJSON 엔진을 내장하여 후행 쉼표, 작은따옴표, 주석, 닫히지 않은 따옴표 등 일반적인 JSON 오류를 자동 감지 및 수정
  • CodeMirror 에디터: 왼쪽 입력, 오른쪽 결과의 2패널 레이아웃, JSON 구문 강조, 드래그 가능한 분할 막대, 글꼴 크기 조절 지원
  • 실시간 압축 통계: 상태 표시줄에 원본 크기(Bytes/KB/MB), 압축 후 크기, 정확한 압축률 퍼센트를 즉시 표시
  • 키보드 단축키: Shift+Cmd/Ctrl+C 압축, E 이스케이프, U 언이스케이프, O 업로드, D 다운로드, K 지우기 — 마우스 없이 효율적으로 작업
  • 자동 실행 모드: 붙여넣기 또는 편집 후 400ms 디바운스로 자동 압축/이스케이프, WYSIWYG
  • 파일 업로드 및 다운로드: .json/.txt 파일을 드래그하거나 클릭하여 업로드, 처리 후 output.json을 한 번에 다운로드
  • 로컬 히스토리: localStorage에 마지막 입력 내용을 자동 저장, 페이지 새로고침해도 데이터 유지
  • 샘플 데이터: 한 번의 클릭으로 샘플 JSON을 로드하여 빠르게 체험, 오류 메시지에 복구 버튼 제공
  • 순수 프론트엔드 보안: 모든 연산이 브라우저 로컬에서 실행, 데이터가 서버에 업로드되지 않으며 오프라인에서도 사용 가능

이용 방법

  1. JSON 내용을 왼쪽 에디터에 붙여넣거나, 업로드 버튼을 클릭하여 로컬 .json/.txt 파일을 선택하거나, '샘플' 버튼을 클릭하여 예제 로드
  2. 기본적으로 압축 모드가 자동 실행됩니다(400ms 디바운스). 수동으로 '압축' 버튼을 클릭하거나 단축키 Shift+Cmd/Ctrl+C를 누를 수도 있습니다
  3. 코드 문자열로 이스케이프해야 하는 경우 Shift+Cmd/Ctrl+E를 누르거나 모드를 이스케이프로 전환; 이스케이프 문자열을 복원해야 하는 경우 Shift+Cmd/Ctrl+U를 누릅니다
  4. JSON에 구문 오류가 있으면 하단에 빨간색 오류 메시지가 표시됩니다. 복구 가능한 오류가 있으면 '복구 시도' 버튼이 나타나며, 클릭하면 자동 수정됩니다
  5. 하단 상태 표시줄에 압축 전/후 바이트 수와 압축률 퍼센트가 실시간으로 표시됩니다. 결과를 확인한 후 '복사' 또는 '다운로드' 버튼을 클릭
  6. 왼쪽과 오른쪽 패널 사이의 분할 막대는 드래그하여 너비를 조절할 수 있습니다. 키보드 단축키를 사용하여 모든 작업을 빠르게 완료할 수도 있습니다

자주 묻는 질문

JSON 압축과 JSON 포맷의 차이는 무엇인가요?

JSON 포맷(Beautify/Pretty Print)은 키와 값 사이에 들여쓰기, 줄 바꿈, 공백을 추가하여 사람이 읽기 쉽게 만드는 것으로 개발 및 디버깅에 적합합니다. JSON 압축(Minify)은 불필요한 공백 문자(공백, 줄 바꿈, 탭, 들여쓰기)를 모두 제거하여 여러 줄 JSON을 한 줄 컴팩트 형식으로 변환하며, 크기를 줄이고 전송 효율을 높이는 것을 목적으로 하여 프로덕션 환경 API 전송, 설정 파일 경량화, 코드 문자열 삽입에 적합합니다. 둘은 상보적인 작업입니다 — 개발 시에는 포맷 버전을 보고, 배포 시에는 압축 버전을 사용합니다.

JSON Escape(이스케이프)란 무엇인가요? 언제 사용해야 하나요?

JSON 이스케이프는 JSON 문자열 내 특수 문자에 백슬래시 이스케이프를 추가하는 것입니다(주로 큰따옴표 "를 \"로, 백슬래시 \를 \\로, 줄 바꿈을 \n으로 변환하는 등). 여러 줄 JSON 객체를 JavaScript, Java, Python 등 소스 코드에 직접 삽입할 수 있는 한 줄 문자열 리터럴로 변환합니다. 대표적인 시나리오: 단위 테스트 작성 시 JSON 응답을 문자열로 테스트 코드에 삽입; Postman이나 curl 명령에서 JSON 문자열 전달; 설정 파일에서 JSON을 문자열 값으로 사용. Unescape는 이스케이프된 문자열을 표준 JSON으로 복원하는 역작업입니다.

입력한 JSON에 구문 오류(후행 쉼표 등)가 있어도 압축할 수 있나요?

네, 가능합니다. 이 도구에는 스마트 구문 복구 엔진(tryFixJSON)이 내장되어 있어 압축 전에 일반적인 JSON 오류를 자동 감지하고 복구를 시도합니다: 1) 마지막 여분의 쉼표(trailing comma), 예 {"a":1,}; 2) 큰따옴표 대신 작은따옴표, 예 {'a':1}; 3) 닫히지 않은 문자열; 4) JavaScript 주석(// 및 /* */); 5) 마지막 여분의 쉼표 등. 복구 후 압축 또는 이스케이프를 실행하여 출력되는 JSON이 100% 유효함을 보장합니다. 복구 가능한 오류가 감지되면 패널에 '복구 시도' 버튼이 표시되며, 클릭하면 한 번에 수정됩니다.

JSON 압축으로 데이터가 손실되나요? 압축률은 보통 얼마나 되나요?

데이터 손실은 없습니다. JSON 압축은 포맷용 공백 문자(공백, 줄 바꿈, 탭)를 제거할 뿐 키 이름, 키 값, 데이터 타입, 구조를 전혀 변경하지 않습니다. JSON.parse 후 JSON.stringify한 결과는 원본 데이터와 완전히 동일합니다. 압축률은 원본 JSON의 포맷 상태에 따라 다릅니다: 원본이 2칸 들여쓰기된 포맷 JSON인 경우 압축률은 보통 20%-40%(들여쓰기와 줄 바꿈 제거); 연속된 공백이나 (복구 후) 주석이 많은 경우 압축률은 50% 이상에 달할 수 있습니다. 상태 표시줄에 원본 바이트 수, 압축 후 바이트 수, 정확한 압축률이 실시간으로 표시됩니다.

민감한 JSON 설정이나 API 데이터를 압축할 때 유출되나요?

아니요. 이 도구는 순수 프론트엔드 처리 아키텍처를 사용하여 JSON 파싱, 압축, 이스케이프, 복구의 모든 연산이 사용자의 로컬 브라우저 JavaScript 엔진에서 실행됩니다. 데이터가 네트워크 요청을 통해 외부 서버에 업로드되지 않으며, 오프라인에서도 정상 작동합니다. API 키, 데이터베이스 설정, 비즈니스 데이터 등 민감한 정보는 항상 로컬에 남아 있습니다.

어떤 키보드 단축키를 지원하나요?

효율성 향상을 위해 이 도구는 완전한 키보드 단축키를 제공합니다(macOS는 ⌘+Shift, Windows는 Ctrl+Shift 사용): Shift+⌘/Ctrl+C 한 번에 압축; Shift+⌘/Ctrl+E 이스케이프; Shift+⌘/Ctrl+U 언이스케이프; Shift+⌘/Ctrl+O 파일 업로드; Shift+⌘/Ctrl+D 결과 다운로드; Shift+⌘/Ctrl+K 지우기. 입력 시 400ms 디바운스로 현재 모드가 자동 실행되므로 버튼을 반복해서 클릭할 필요가 없습니다.

JSON 압축(JSON Minify)이란 무엇인가요?

JSON 압축(JSON Minification)은 JSON 텍스트에서 불필요한 모든 공백 문자(공백, 줄 바꿈 \n, 탭 \t, 캐리지 리턴 \r)와 (비표준이지만 흔한) 주석을 제거하여, 다단 들여쓰기된 포맷 JSON을 한 줄 컴팩트 형식으로 변환하는 프로세스입니다. JSON 압축은 데이터 내용을 전혀 변경하지 않습니다 — 키 이름, 키 값, 데이터 타입(문자열/숫자/불리언/null/배열/객체), 중첩 구조는 완전히 그대로 유지되며, 사람이 읽기 위한 포맷 공백이 제거될 뿐입니다.

JSON 압축의 핵심 가치는 데이터 크기 줄이기에 있습니다. 포맷된 JSON의 들여쓰기 공백과 줄 바꿈은 개발자에게 친절하지만 네트워크 전송과 스토리지에서는 중복 바이트입니다. 예를 들어 일반적인 API 응답은 포맷 후 2KB일 수 있지만 압축 후 1.2-1.5KB가 되어 크기가 25%-40% 줄어듭니다. 고동시 API 시나리오, 모바일 약한 네트워크 환경, 대규모 설정 파일 배포에서 JSON 압축은 대역폭 소비를 크게 줄이고 전송 속도를 높이며 서버 오버헤드를 줄일 수 있습니다. 프로덕션 환경에서는 보통 Gzip/Brotli 등 HTTP 압축과 함께 사용되지만, 콘텐츠 레이어 압축인 JSON Minify는 여전히 대체 불가능합니다.

JSON 압축 구현은 매우 간단합니다: JSON.parse()로 텍스트를 JavaScript 객체로 파싱한 다음 JSON.stringify(obj)를 들여쓰기 매개변수 없이 실행하여 직렬화 출력하면 됩니다 — 이것이 바로 이 도구의 핵심 구현 방식입니다. 이 parse + stringify 방식은 출력 JSON이 100% 유효함을 자연스럽게 보장하며, (오류 복구와 함께) 불법 주석과 후행 쉼표도 자동으로 제거할 수 있습니다. 참고: JSON 압축과 Gzip 압축은 서로 다른 레이어의 최적화입니다 — JSON Minify는 콘텐츠 레이어에서 중복 공백을 제거하고 Gzip은 트랜스포트 레이어의 범용 압축 알고리즘이며, 둘은 조합하여 사용할 수 있습니다.

术语表

JSON
JavaScript Object Notation(JavaScript 객체 표기법), 키-값 쌍과 배열 구조를 사용하는 경량 데이터 교환 형식. 사람이 읽기 쉽고 기계가 파싱하기 쉬우며 REST API의 표준 데이터 형식입니다.
Minify / 압축
코드/데이터에서 불필요한 모든 문자(공백, 줄 바꿈, 주석)를 제거하여 크기를 줄이는 프로세스. JS/CSS/JSON 등 프론트엔드 리소스에서 흔히 사용됩니다.
Beautify / 포맷
Minify의 역작업. 들여쓰기, 줄 바꿈, 공백을 추가하여 JSON 구조를 명확하고 읽기 쉽게 만듭니다. Prettify 또는 Pretty Print라고도 합니다.
Escape / 이스케이프
특수 문자 앞에 백슬래시를 추가하는 것(예: "가 \"로, 줄 바꿈이 \n으로 됨). 여러 줄 JSON을 코드에 삽입 가능한 한 줄 문자열 리터럴로 변환합니다.
Unescape / 언이스케이프
Escape의 역작업. \", \n, \\ 등의 이스케이프 시퀀스를 원래 문자로 복원하여 표준 JSON 형식을 회복합니다.
Trailing Comma / 후행 쉼표
객체나 배열의 마지막 요소 뒤에 있는 여분의 쉼표. JavaScript에서는 허용되지만 JSON 표준에서는 허용되지 않으며, 가장 흔한 JSON 구문 오류입니다.
Gzip / Brotli
HTTP 트랜스포트 레이어 범용 압축 알고리즘. JSON Minify와 상보적이며, Minify 후 Gzip 압축하는 것이 가장 효과적입니다.
Payload / 페이로드
API 요청이나 응답에서 실제로 전송되는 데이터 본문(보통 JSON 형식). Payload를 압축하면 대역폭 소비를 직접 줄일 수 있습니다.
CodeMirror
브라우저 측 코드 에디터 컴포넌트. 이 도구는 이를 사용하여 JSON 구문 강조, 줄 번호, 괄호 일치 등 전문적인 편집 경험을 제공합니다.

JSON 압축과 일반적인 압축 방식 비교

압축 방식압축 레이어무손실가독성적용 시나리오
JSON Minify콘텐츠 레이어(공백 제거)무손실읽을 수 없음(한 줄)프로덕션 API 전송, 설정 경량화
JSON Beautify콘텐츠 레이어(공백 추가)무손실높은 가독성개발 디버깅, 수동 확인
Gzip트랜스포트 레이어무손실읽을 수 없음(바이너리)HTTP 응답 Content-Encoding
Brotli트랜스포트 레이어무손실읽을 수 없음(바이너리)HTTPS 정적 리소스 압축(Gzip보다 20% 높은 효율)
MessagePack직렬화 레이어무손실읽을 수 없음(바이너리)고성능 RPC 내부 통신

JSON 이스케이프 특수 문자 참조표

원래 문자이스케이프 후이름설명
"\"큰따옴표JSON 문자열에서 이스케이프가 가장 필요한 가장 흔한 문자
\\\백슬래시이스케이프 문자 자체를 이스케이프해야 함
줄바꿈\nNewline여러 줄 문자열을 한 줄로 압축할 때 이스케이프 필수
\tTab들여쓰기 탭 이스케이프
캐리지리턴\rCarriage ReturnWindows CRLF 줄바꿈의 CR
/\/슬래시JSON 표준에서 허용되지만 필수는 아님(옵션)

Authoritative References