JSON 정리(포맷) vs 압축(미니파이), 언제 뭘 쓸까

같은 JSON도 두 가지 얼굴이 있습니다. 들여쓰기를 펼쳐서 사람이 읽기 좋게 만든 정리(포맷) 상태와, 공백을 전부 걷어 내 한 줄로 만든 압축(미니파이) 상태입니다. 데이터는 완전히 같은데 쓰임새가 다릅니다. 요약하면 사람이 읽을 때는 펼치고, 기계에 보낼 때는 압축합니다. 각각 언제 필요한지, 들여쓰기는 몇 칸이 관례인지, 키 정렬은 언제 쓰는지 정리합니다.

최종 업데이트: 2026년 7월

1. 정리(포맷)가 필요한 순간

API 응답이나 로그의 JSON은 대부분 한 줄로 붙어서 옵니다. 전송에는 그게 효율적이지만 사람 눈에는 고문입니다. 이런 순간에는 들여쓰기를 펼쳐야 합니다.

압축 상태: {"user":{"name":"홍길동","roles":["admin","editor"]}}

정리 상태:
{
  "user": {
    "name": "홍길동",
    "roles": ["admin", "editor"]
  }
}

2. 압축(미니파이)이 필요한 순간

반대로 사람이 읽을 일이 없는 JSON은 공백이 전부 낭비입니다. 이런 때는 한 줄로 압축합니다.

JSON 포맷터·검증기에서는 들여쓰기 옵션에서 압축(한 줄)을 고르면 됩니다. 정리든 압축이든 문법 검사를 먼저 통과해야 하니, 틀린 JSON이 그대로 나가는 사고도 막아 줍니다.

3. 들여쓰기, 2칸·4칸·탭 중 무엇으로

정리할 때 들여쓰기 폭은 취향과 관례의 문제입니다. 데이터가 달라지는 것은 아니니 가볍게 정하면 되지만, 통용되는 감각은 있습니다.

중요한 것은 폭 자체보다 한 프로젝트 안에서 통일하는 것입니다. 파일마다 들여쓰기가 다르면 버전 관리에서 공백 차이가 변경 사항처럼 잡혀 diff가 지저분해집니다.

4. 키 정렬은 언제 쓰나

키 정렬은 객체의 키를 일정한 순서(이 도구에서는 가나다순)로 재배열하는 기능입니다. JSON 표준에서 키 순서는 의미가 없으므로, 정렬해도 대부분의 프로그램은 똑같이 동작합니다. 그럼 왜 쓰냐면, 비교(diff)를 위해서입니다.

두 JSON이 “내용은 같은데 키 순서만 다른” 경우가 흔합니다. 서버가 응답할 때마다 순서가 달라지기도 하고, 손으로 편집하다가 순서가 바뀌기도 합니다. 이 상태로 비교하면 순서 차이가 전부 변경처럼 보여서 진짜 달라진 값을 찾기 어렵습니다. 양쪽 다 키를 정렬해 두면 순서 차이가 사라지고 실제로 달라진 값만 남습니다.

정렬한 두 결과를 텍스트 비교에 나란히 붙여넣으면 달라진 줄이 색으로 표시됩니다. 배열은 순서 자체가 데이터라서 정렬 대상이 아니며, 이 도구도 배열 순서는 그대로 둡니다. 드물게 키 순서에 의존하는 프로그램이 있다면 그때만 정렬을 끄면 됩니다.

5. 민감한 데이터를 온라인 도구에 붙여넣기 전에

JSON에는 API 키, 회원 정보, 내부 설정 같은 민감한 내용이 담기기 쉽습니다. 온라인 포맷터 중에는 입력을 서버로 보내 처리하는 곳도 있어서, 붙여넣는 순간 데이터가 외부로 나가는 셈이 될 수 있습니다. 습관 두 가지를 권합니다.

참고로 이 사이트의 JSON 포맷터·검증기는 검사와 정리를 전부 브라우저 안에서만 처리하고, 입력한 내용이 서버로 전송되거나 저장되지 않습니다. 내부 정보가 담긴 JSON도 외부로 나가지 않습니다.

붙여넣으면 즉시 검사하고, 들여쓰기 2칸·4칸·탭·압축과 키 정렬까지 한 화면에서 끝납니다.

JSON 정리·압축하러 가기

6. 자주 묻는 질문

정리하거나 압축하면 데이터가 달라지나요?

아니요. 정리와 압축은 공백과 줄바꿈만 바꾸는 것이라 값 자체는 그대로입니다. 정리한 JSON을 다시 압축해도 원래의 한 줄과 같은 데이터입니다. 다만 브라우저 특성상 15~16자리가 넘는 아주 긴 숫자는 끝자리가 반올림될 수 있는데, 이 도구는 그런 숫자를 발견하면 경고를 띄웁니다.

압축하면 용량이 얼마나 줄어드나요?

들여쓰기 깊이와 구조에 따라 다릅니다. 얕은 JSON은 몇 퍼센트 수준이지만, 깊게 중첩되고 항목이 많은 JSON은 공백 비중이 커서 체감할 만큼 줄어듭니다. 이 도구는 정리 결과와 함께 크기 요약을 보여주므로 직접 비교해 볼 수 있습니다.

한글이 \ud55c\uae00처럼 깨져 보여요.

깨진 게 아니라 한글을 \uXXXX 형태로 이스케이프해 둔 것입니다. 데이터로는 동일하며, 이 도구에 붙여넣으면 읽을 수 있는 한글로 풀어서 보여줍니다. 반대로 ASCII만 허용하는 시스템에 보내야 한다면 \u 이스케이프 옵션을 켜서 변환할 수도 있습니다.

정리한 설정 파일, 어디가 바뀌었는지 확인하고 싶어요.

수정 전 버전과 수정 후 버전을 텍스트 비교에 나란히 붙여넣으면 달라진 줄만 색으로 표시됩니다. 비교 전에 양쪽을 같은 들여쓰기로 정리해 두면 공백 차이가 사라져서 훨씬 깔끔하게 보입니다.