JSON 포맷터
JSON 데이터의 유효성 검사, 포맷팅, 압축을 한 번에 처리하는 강력한 도구입니다. 개발자를 위한 필수 유틸리티입니다.
JSON 포맷터 & 변환기
JSON 입력
포맷된 JSON
JSON 완벽 가이드 목차
JSON (JavaScript Object Notation) 완벽 가이드
JSON은 2001년 더글라스 크록포드(Douglas Crockford)가 제안한 경량 데이터 교환 형식입니다. 사람이 읽고 쓰기 쉬우며, 기계가 파싱하고 생성하기 쉽습니다. JavaScript 객체 표기법을 기반으로 하지만, 언어 독립적이어서 거의 모든 프로그래밍 언어에서 지원합니다.
이 도구는 JSON 포맷팅, 압축, 유효성 검사, 형식 변환, JSONPath 쿼리 등 JSON 작업에 필요한 모든 기능을 제공합니다. API 응답 분석부터 설정 파일 편집까지 다양한 용도로 활용하세요.
JSON을 사용하는 이유
현대 웹 개발의 데이터 표준
JSON은 REST API, 설정 파일, 데이터 저장, 메시지 교환 등 다양한 영역에서 사실상 표준으로 사용됩니다. XML보다 간결하고, CSV보다 구조적이어서 복잡한 데이터도 표현할 수 있습니다.
가독성
사람이 읽고 이해하기 쉬운 텍스트 기반 형식입니다.
경량성
XML보다 적은 용량으로 같은 데이터를 표현합니다.
범용성
거의 모든 프로그래밍 언어에서 파싱/생성을 지원합니다.
유연성
중첩 구조로 복잡한 데이터도 표현할 수 있습니다.
JSON 사용 사례
웹 개발
REST API, AJAX 응답, 웹소켓 메시지, 프론트엔드 상태 관리
설정 관리
package.json, tsconfig.json, .eslintrc, 환경 설정 파일
데이터 저장
NoSQL 데이터베이스 (MongoDB, CouchDB), 로컬 스토리지
JSON 문법 완벽 가이드
올바른 JSON 작성법
기본 구조
JSON은 두 가지 기본 구조로 구성됩니다: 객체(Object)와 배열(Array). 객체는 중괄호 { }로 감싸고, 배열은 대괄호 [ ]로 감쌉니다. 이들은 무한히 중첩될 수 있습니다.
객체 (Object)
{
"name": "홍길동",
"age": 30,
"email": "hong@example.com"
}배열 (Array)
[ "사과", "바나나", "오렌지" ]
JSON 데이터 타입
| 타입 | 설명 | 예시 |
|---|---|---|
| 문자열 (String) | 큰따옴표로 감싼 텍스트 | "Hello World" |
| 숫자 (Number) | 정수 또는 부동소수점 | 42, 3.14, -17, 1e10 |
| 불리언 (Boolean) | 참/거짓 값 | true, false |
| Null | 빈 값 | null |
| 객체 (Object) | 키-값 쌍의 집합 | {"key": "value"} |
| 배열 (Array) | 순서가 있는 값의 목록 | [1, 2, 3] |
JSON 작성 시 주의사항
- • 키(key)는 반드시 큰따옴표(")로 감싸야 합니다
- • 작은따옴표(')는 사용할 수 없습니다
- • 마지막 요소 뒤에 쉼표(trailing comma)를 넣으면 안 됩니다
- • 주석(comment)은 지원하지 않습니다
- • undefined는 유효한 값이 아닙니다 (null 사용)
JSON 포맷터 기능 가이드
이 도구의 모든 기능 활용하기
포맷팅 (Beautify)
압축된 JSON을 읽기 쉽게 들여쓰기와 줄바꿈을 적용합니다. 들여쓰기 크기(2/4/8 스페이스)를 선택할 수 있습니다.
압축 (Minify)
불필요한 공백과 줄바꿈을 제거하여 파일 크기를 최소화합니다. 네트워크 전송이나 저장 공간 절약에 유용합니다.
키 정렬
객체의 키를 알파벳 순으로 정렬합니다. JSON 비교나 일관된 출력이 필요할 때 유용합니다.
JSON 복구
작은따옴표, trailing comma 등 일반적인 오류를 자동으로 수정 시도합니다.
JSON 유효성 검사
오류 감지 및 디버깅
이 도구는 입력된 JSON을 실시간으로 검증하고, 오류 발생 시 정확한 위치와 원인을 알려줍니다. 일반적인 JSON 오류와 해결 방법을 알아보세요.
흔한 JSON 오류
Unexpected token - 잘못된 문자나 구문
Unexpected end of JSON - 닫는 괄호 누락
Expected double-quoted property name - 키에 따옴표 누락
JSONPath 쿼리
JSON 데이터 검색 및 추출
JSONPath는 XPath와 유사하게 JSON 문서에서 특정 데이터를 쿼리하는 표현식 언어입니다. 복잡한 JSON 구조에서 원하는 데이터만 추출할 때 유용합니다.
| 표현식 | 설명 | 예시 |
|---|---|---|
| $ | 루트 객체 | $ |
| .key | 자식 요소 접근 | $.store.book |
| [n] | 배열 인덱스 | $.store.book[0] |
| [*] | 모든 요소 | $.store.book[*].title |
| .. | 재귀적 탐색 | $..author |
형식 변환
JSON을 다른 형식으로 변환
JSON → YAML
Kubernetes, Docker Compose, CI/CD 설정 파일에 유용합니다. YAML은 더 읽기 쉽고 주석을 지원합니다.
JSON → XML
레거시 시스템 연동이나 SOAP API에 필요할 때 사용합니다. XML 스키마 검증이 필요한 경우에도 유용합니다.
JSON → CSV
배열 형태의 JSON을 스프레드시트에서 사용하기 위해 변환합니다. Excel이나 Google Sheets에서 열 수 있습니다.
JSON 베스트 프랙티스
효율적이고 안전한 JSON 사용법
권장 사항
- • 일관된 네이밍 규칙 사용 (camelCase 또는 snake_case)
- • 의미 있는 키 이름 사용
- • 날짜는 ISO 8601 형식 사용 (2025-01-01T00:00:00Z)
- • 대용량 JSON은 페이지네이션 적용
- • API 응답에 일관된 구조 유지
- • 스키마 정의 및 검증 사용
피해야 할 사항
- • 민감한 정보를 평문으로 저장
- • 과도하게 깊은 중첩 구조 (3-4 레벨 이상)
- • 너무 큰 단일 JSON 파일 (메모리 문제)
- • 신뢰할 수 없는 JSON의 eval() 파싱
- • 주석 대신 불필요한 키 추가
자주 묻는 질문 (FAQ)
JSON 관련 궁금증 해결
Q: JSON과 JavaScript 객체의 차이점은?
JSON은 텍스트 형식이고, JavaScript 객체는 메모리의 데이터 구조입니다. JSON 키는 반드시 문자열이어야 하고, 함수나 undefined를 포함할 수 없습니다.
Q: JSON에 주석을 달 수 있나요?
표준 JSON은 주석을 지원하지 않습니다. 주석이 필요하면 JSON5나 JSONC(JSON with Comments)를 사용하거나, "_comment" 키를 추가하는 방법이 있습니다.
Q: JSON 파일 크기 제한이 있나요?
표준에는 제한이 없지만, 실제로는 파싱하는 환경에 따라 달라집니다. 브라우저에서는 수백 MB까지 처리할 수 있지만, 성능을 위해 큰 파일은 스트리밍 파싱을 권장합니다.
Q: JSON vs XML, 어떤 것을 선택해야 하나요?
JSON은 가볍고 파싱이 빠르며 JavaScript와 호환성이 좋습니다. XML은 스키마 검증, 네임스페이스, 속성 등이 필요할 때 유리합니다. 웹 API에는 JSON이, 복잡한 문서에는 XML이 적합합니다.
Q: JSON 날짜 형식은 어떻게 처리하나요?
JSON에는 날짜 타입이 없으므로 문자열로 저장합니다. ISO 8601 형식(2025-01-01T12:00:00Z)이 국제 표준이며, 타임존 정보를 포함할 수 있어 권장됩니다.
JSON 마스터가 되셨습니다!
이제 JSON의 기본 문법부터 고급 활용법까지 모두 익히셨습니다. 위의 도구를 사용하여 JSON 포맷팅, 유효성 검사, 형식 변환, 데이터 쿼리 등 다양한 작업을 수행해보세요. API 개발, 설정 관리, 데이터 분석 등 어떤 작업이든 효율적으로 처리할 수 있습니다.