# JSON 정렬 및 검사기

> JSON을 온라인에서 정렬하고 유효성을 검사하고 압축하세요. 오류는 줄과 열 번호로 표시되고, 후행 쉼표와 작은따옴표는 클릭 한 번으로 고치며 큰 숫자도 그대로 유지됩니다.

URL: https://acrafto.com/ko/json-formatter-validator/  
Updated: 2026-10-03

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

위 입력란에 JSON을 붙여넣으면 이 JSON 정렬 및 유효성 검사기(JSON formatter)가 입력하는 즉시 검사합니다. 올바른 JSON은 선택한 들여쓰기로 보기 좋게 정렬되거나 한 줄로 압축됩니다. 잘못된 JSON에는 줄과 열 번호, 문제 부분이 강조된 발췌가 담긴 정확한 오류 메시지가 표시되고, 흔한 실수는 클릭 한 번으로 고칠 수 있습니다. 모든 처리는 브라우저에서 이루어지므로 API 응답, 설정 파일, 내보낸 데이터가 컴퓨터 밖으로 나가지 않습니다.

## 이 JSON 정렬 및 검사기로 할 수 있는 일

- **JSON 정렬(beautify)**: 공백 2칸, 공백 4칸 또는 탭으로 들여쓰기를 적용합니다. *키 정렬*을 체크하지 않으면 원래 키 순서가 그대로 유지됩니다.
- **JSON 압축(minify)**: 모든 공백과 줄바꿈을 제거합니다. 결과 아래의 크기 표시에서 몇 바이트를 줄였는지 바로 확인할 수 있습니다.
- **JSON 유효성 검사**: 현재 JSON 표준인 [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259)에 따라 실시간으로 검사합니다. 문서가 올바르게 되는 순간 상태 표시줄이 초록색으로 바뀝니다.
- **흔한 오류 자동 수정**: 후행 쉼표, 작은따옴표, 따옴표 없는 키, 주석, Python 스타일의 `True`, `None`, `NaN`, `.5`나 `+1` 같은 숫자를 고칩니다.
- **파일 불러오기**: *파일 열기* 버튼을 누르거나 `.json` 파일을 입력란에 끌어다 놓으세요. 결과는 다운로드하거나 다시 입력으로 보내 한 번 더 처리할 수 있습니다.

## JSON 오류 메시지가 빨간색 표시보다 중요한 이유

대부분의 온라인 검사기는 무언가 잘못되었다는 사실만 알려 줍니다. 브라우저도 크게 다르지 않습니다. Chrome의 `JSON.parse`는 `Unexpected token } in JSON at position 148`이라고 보고하고 Firefox는 `expected property name or '}'`라고 표시하지만, 둘 다 어느 줄을 봐야 하는지는 알려 주지 않습니다. 이 도구는 모든 토큰의 시작 위치를 기억하는 자체 파서를 사용합니다. 파싱이 멈추면 줄과 열 번호, 문제가 된 문자 아래에 캐럿(^)이 표시된 해당 줄의 발췌, 그리고 *두 속성 사이에 쉼표가 빠진 것 같습니다* 같은 쉬운 설명을 보여 줍니다. *오류로 이동* 버튼을 누르면 입력란의 커서가 바로 그 위치로 이동합니다.

붙여넣은 문서에서 가장 자주 보이는 실수는 다음과 같습니다.

| 입력 | 문제 | 올바른 JSON |
| --- | --- | --- |
| `{'name': 'Ada'}` | 작은따옴표 | `{"name": "Ada"}` |
| `{name: "Ada"}` | 따옴표 없는 키 | `{"name": "Ada"}` |
| `[1, 2, 3,]` | 후행 쉼표 | `[1, 2, 3]` |
| `{"a": 1 "b": 2}` | 빠진 쉼표 | `{"a": 1, "b": 2}` |
| `{"ok": True}` | Python 리터럴 | `{"ok": true}` |
| `{"x": 007}` | 앞에 붙은 0 | `{"x": 7}` 또는 `{"x": "007"}` |
| `// comment` | 주석 | JSON에서는 사용할 수 없음 |

이 실수는 모두 *자동으로 고치기* 버튼으로 수정됩니다. 수정 기능은 일부러 보수적으로 동작합니다. 빠진 쉼표를 어디에 넣어야 할지는 추측하지 않습니다. 잘못된 위치에 쉼표를 넣으면 데이터의 의미가 바뀌기 때문입니다. 이런 경우에는 대신 정확한 위치를 알려 줍니다.

## 큰 숫자와 키 순서처럼 흔히 깨지는 부분

많은 포맷터는 `JSON.parse`를 호출한 뒤 `JSON.stringify`로 다시 출력하는 방식으로 동작합니다. 이 왕복 과정에서 데이터가 소리 없이 손상됩니다. `1234567890123456789` 같은 Twitter나 Snowflake ID는 JavaScript 숫자의 한계인 2^53을 넘기 때문에 `1234567890123456800`으로 바뀌어 돌아옵니다. `1.0`은 `1`이 되고 `1e3`은 `1000`이 됩니다. 이 포맷터는 숫자를 부동소수점으로 변환하지 않습니다. 모든 리터럴을 작성된 그대로 복사하므로, 출력은 입력을 재해석한 것이 아니라 형식만 충실하게 바꾼 결과입니다. 문자열 안의 이스케이프 시퀀스도 마찬가지입니다. `"\u00e9"`는 `"\u00e9"` 그대로 남고 `"é"`로 바뀌지 않습니다.

키 순서도 유지됩니다. JSON 명세에 따르면 객체 멤버에는 순서가 없지만, 설정 파일, 테스트 픽스처, 코드 리뷰는 순서가 일정할 때 훨씬 읽기 쉽습니다. 예를 들어 두 API 응답을 diff 도구로 비교하려고 정규화된 형태가 필요하다면 *키 정렬*을 켜세요. 두 문서 모두 모든 중첩 단계에서 속성이 알파벳순으로 나열됩니다.

## JSON 정렬과 JSON 압축, 언제 무엇을 쓸까

보기 좋게 정렬된 JSON은 사람이 읽기 위한 것입니다. API 응답을 검토할 때, `package.json`, `tsconfig.json`, OpenAPI 문서를 작성할 때, 또는 diff에서 한 줄에 변경 하나만 보여야 하는 저장소에 픽스처를 보관할 때 사용하세요. JavaScript 생태계에서는 공백 2칸이 관례이고, Python과 .NET 프로젝트에서는 공백 4칸이 흔하며, 탭을 쓰면 읽는 사람이 각자 원하는 너비를 고를 수 있습니다.

압축된 JSON은 기계를 위한 것입니다. 포맷된 문서에서 공백은 보통 20~40%를 차지하므로, 이를 제거하면 브라우저로 전송하는 페이로드, Redis나 데이터베이스 열에 저장하는 값, HTML에 삽입하는 `data-*` 속성의 크기가 줄어듭니다. gzip이 그 차이를 어느 정도 메워 주지만, 공백을 제거한 버전은 gzip을 거친 뒤에도 여전히 더 작습니다. 결과 아래의 크기 표시에서 내 문서의 정확한 차이를 확인할 수 있습니다.

## 터미널과 에디터에서 JSON 다루기

반복해서 처리하는 파일이라면 어떤 웹사이트보다 명령줄 도구가 빠릅니다. `jq . file.json`은 보기 좋게 정렬하고, `jq -c . file.json`은 압축하며, `python -m json.tool file.json`은 Python이 설치된 곳이라면 어디서나 동작합니다. Visual Studio Code는 Shift+Alt+F로 JSON을 포맷하고, `$schema` 속성을 추가하면 스키마에 맞춰 유효성을 검사합니다. 이 페이지는 그 밖의 경우를 위한 것입니다. 네트워크 탭에서 복사한 응답, 로그 한 줄, 위키에서 가져온 설정 조각을 확인하거나, 아무것도 설치할 수 없는 컴퓨터에서 빠르게 검사해야 할 때 쓰세요.

함께 쓰기 좋은 도구도 있습니다. [Base64 인코더 및 디코더](https://acrafto.com/ko/base64-encoder-decoder/)는 JWT의 페이로드 부분을 디코딩합니다. 이 부분은 Base64url로 인코딩된 JSON입니다. [UNIX 타임스탬프 변환기](https://acrafto.com/ko/unix-timestamp-converter/)는 대부분의 API 응답에 들어 있는 `createdAt` 숫자를 읽을 수 있는 날짜로 바꿔 주고, [UUID 디코더](https://acrafto.com/ko/uuid-decoder-validator/)는 데이터에 있는 식별자의 버전과 타임스탬프를 알려 줍니다. 더 많은 도구는 [개발자 도구](https://acrafto.com/ko/gaebalja/)에서 확인하세요.

## 자주 묻는 질문

### 제 JSON이 서버로 업로드되나요?

아니요. 파싱, 포맷, 수정은 모두 브라우저 안에서 JavaScript로 실행됩니다. 페이지가 로드된 뒤에는 네트워크 연결을 끊어도 도구가 계속 동작합니다. 아무것도 기록하거나 저장하지 않습니다.

### 에디터에서는 허용되는 주석을 검사기가 거부하는 이유는 무엇인가요?

JSON을 만든 Douglas Crockford가 주석을 일부러 뺐습니다. 이 형식이 파서 지시문을 담는 용도로 쓰이는 것을 막기 위해서였습니다. `tsconfig.json`이나 `.vscode/settings.json` 같은 파일은 엄밀히 말하면 JSONC로, 에디터가 지원하는 JSON의 상위 집합입니다. API, 데이터베이스, 대부분의 프로그래밍 언어에 있는 엄격한 파서는 주석을 거부합니다. 수정 버튼은 주석을 제거하므로 결과는 어디서나 유효합니다.

### JSON Lines나 여러 객체를 한 번에 포맷할 수 있나요?

JSON 문서에는 정확히 하나의 값만 들어갑니다. 쉼표나 줄바꿈으로 구분한 여러 객체를 붙여넣으면 검사기는 첫 번째 추가 값에서 멈춥니다. 대괄호로 감싸 배열로 만든 다음 포맷하세요. 입력이 하나의 문서로 의도된 것인지 알 수 없기 때문에 수정 버튼은 이 작업을 자동으로 하지 않습니다.

### 최대 크기는 얼마인가요?

정해진 제한은 없습니다. 몇 메가바이트 크기의 문서도 노트북에서 1초가 채 걸리지 않고 포맷됩니다. 페이지 반응 속도를 유지하기 위해 약 400 kB를 넘으면 구문 강조가 꺼지지만, 복사와 다운로드는 그대로 동작합니다.

### 키를 정렬하면 데이터가 바뀌나요?

아니요. [위키백과의 JSON 문서](https://ko.wikipedia.org/wiki/JSON)에서 볼 수 있듯이 JSON의 객체는 정의상 순서가 없으므로, 파서는 정렬된 문서와 원래 문서를 같은 값으로 읽습니다. 배열은 순서 자체가 데이터의 일부이므로 절대 재정렬하지 않습니다.

### JSON을 문자열 안에 넣으려면 어떻게 이스케이프하나요?

먼저 압축한 다음, 모든 백슬래시와 큰따옴표를 이스케이프하세요. 많은 언어가 이 기능을 바로 제공합니다. JavaScript의 `JSON.stringify(JSON.stringify(obj))`나 Python의 `json.dumps(json.dumps(obj))`는 JSON 텍스트를 담은 JSON 문자열을 만들어 줍니다.

## Other languages

- Čeština (cs): [JSON formatter a validátor](https://acrafto.com/cs/json-formatter-validator/) ([Markdown](https://acrafto.com/cs/json-formatter-validator/index.md))
- Slovenčina (sk): [JSON formatter a validátor](https://acrafto.com/sk/json-formatter-validator-online/) ([Markdown](https://acrafto.com/sk/json-formatter-validator-online/index.md))
- English (en): [JSON Formatter and Validator](https://acrafto.com/en/json-formatter-validator/) ([Markdown](https://acrafto.com/en/json-formatter-validator/index.md))
- Deutsch (de): [JSON Formatter & Validator](https://acrafto.com/de/json-formatter-validator/) ([Markdown](https://acrafto.com/de/json-formatter-validator/index.md))
- Français (fr): [JSON Formatter et validateur](https://acrafto.com/fr/formateur-validateur-json/) ([Markdown](https://acrafto.com/fr/formateur-validateur-json/index.md))
- Español (es): [Formateador y validador JSON](https://acrafto.com/es/formateador-validador-json/) ([Markdown](https://acrafto.com/es/formateador-validador-json/index.md))
- Italiano (it): [JSON formatter e validatore](https://acrafto.com/it/json-formatter-validatore-online/) ([Markdown](https://acrafto.com/it/json-formatter-validatore-online/index.md))
- Português (pt): [Formatador e validador JSON](https://acrafto.com/pt/formatador-validador-json/) ([Markdown](https://acrafto.com/pt/formatador-validador-json/index.md))
- Nederlands (nl): [JSON formatter & validator](https://acrafto.com/nl/json-formatter-validator/) ([Markdown](https://acrafto.com/nl/json-formatter-validator/index.md))
- Polski (pl): [JSON Formatter i walidator](https://acrafto.com/pl/json-formatter-i-walidator/) ([Markdown](https://acrafto.com/pl/json-formatter-i-walidator/index.md))
- Română (ro): [JSON formatter și validator](https://acrafto.com/ro/json-formatter-validator/) ([Markdown](https://acrafto.com/ro/json-formatter-validator/index.md))
- Magyar (hu): [JSON formatter és validátor](https://acrafto.com/hu/json-formatter-validator/) ([Markdown](https://acrafto.com/hu/json-formatter-validator/index.md))
- Ελληνικά (el): [JSON formatter και validator](https://acrafto.com/el/json-formatter-validator/) ([Markdown](https://acrafto.com/el/json-formatter-validator/index.md))
- Български (bg): [JSON formatter и валидатор](https://acrafto.com/bg/json-formatter-validator/) ([Markdown](https://acrafto.com/bg/json-formatter-validator/index.md))
- Hrvatski (hr): [JSON formatter i validator](https://acrafto.com/hr/json-formatter-validator-online/) ([Markdown](https://acrafto.com/hr/json-formatter-validator-online/index.md))
- Slovenščina (sl): [JSON formatter in validator](https://acrafto.com/sl/json-formatter-validator/) ([Markdown](https://acrafto.com/sl/json-formatter-validator/index.md))
- Eesti (et): [JSON formatter ja validaator](https://acrafto.com/et/json-formatter-validaator/) ([Markdown](https://acrafto.com/et/json-formatter-validaator/index.md))
- Latviešu (lv): [JSON formatter un validētājs](https://acrafto.com/lv/json-formatter-validetajs/) ([Markdown](https://acrafto.com/lv/json-formatter-validetajs/index.md))
- Lietuvių (lt): [JSON Formatter ir validatorius](https://acrafto.com/lt/json-formatter-validatorius/) ([Markdown](https://acrafto.com/lt/json-formatter-validatorius/index.md))
- Svenska (sv): [JSON formatter och validator](https://acrafto.com/sv/json-formatter-validator/) ([Markdown](https://acrafto.com/sv/json-formatter-validator/index.md))
- Dansk (da): [JSON formatter og validator](https://acrafto.com/da/json-formatter-validator/) ([Markdown](https://acrafto.com/da/json-formatter-validator/index.md))
- Suomi (fi): [JSON formatter ja validaattori](https://acrafto.com/fi/json-formatter-validaattori/) ([Markdown](https://acrafto.com/fi/json-formatter-validaattori/index.md))
- Norsk (no): [JSON formatter og validator](https://acrafto.com/no/json-formatter-validator/) ([Markdown](https://acrafto.com/no/json-formatter-validator/index.md))
- Українська (uk): [JSON Formatter і валідатор](https://acrafto.com/uk/json-formatter-i-validator/) ([Markdown](https://acrafto.com/uk/json-formatter-i-validator/index.md))
- Русский (ru): [JSON formatter и валидатор](https://acrafto.com/ru/json-formatter-validator/) ([Markdown](https://acrafto.com/ru/json-formatter-validator/index.md))
- Српски (sr): [JSON formatter i validator](https://acrafto.com/sr/json-formatter-i-validator/) ([Markdown](https://acrafto.com/sr/json-formatter-i-validator/index.md))
- Македонски (mk): [JSON Formatter & Validator](https://acrafto.com/mk/json-formatter-validator/) ([Markdown](https://acrafto.com/mk/json-formatter-validator/index.md))
- Bosanski (bs): [JSON formatter i validator](https://acrafto.com/bs/json-formatter-validator/) ([Markdown](https://acrafto.com/bs/json-formatter-validator/index.md))
- Shqip (sq): [JSON Formatter dhe validues](https://acrafto.com/sq/json-formatter-validues/) ([Markdown](https://acrafto.com/sq/json-formatter-validues/index.md))
- Türkçe (tr): [JSON formatter ve doğrulayıcı](https://acrafto.com/tr/json-formatter-dogrulayici/) ([Markdown](https://acrafto.com/tr/json-formatter-dogrulayici/index.md))
- 日本語 (ja): [JSON整形ツール](https://acrafto.com/ja/json-formatter-validator/) ([Markdown](https://acrafto.com/ja/json-formatter-validator/index.md))
- العربية (ar): [تنسيق JSON والتحقق منه](https://acrafto.com/ar/json-formatter-validator/) ([Markdown](https://acrafto.com/ar/json-formatter-validator/index.md))
- हिन्दी (hi): [JSON Formatter और Validator](https://acrafto.com/hi/json-formatter-validator/) ([Markdown](https://acrafto.com/hi/json-formatter-validator/index.md))
- Bahasa Indonesia (id): [JSON formatter dan validator](https://acrafto.com/id/json-formatter-validator/) ([Markdown](https://acrafto.com/id/json-formatter-validator/index.md))
- Tiếng Việt (vi): [JSON Formatter và Validator](https://acrafto.com/vi/json-formatter-kiem-tra-json/) ([Markdown](https://acrafto.com/vi/json-formatter-kiem-tra-json/index.md))
- ไทย (th): [JSON Formatter & Validator](https://acrafto.com/th/json-formatter-validator/) ([Markdown](https://acrafto.com/th/json-formatter-validator/index.md))
- עברית (he): [JSON Formatter ובדיקת תקינות](https://acrafto.com/he/json-formatter-validator/) ([Markdown](https://acrafto.com/he/json-formatter-validator/index.md))
