JSON 포맷하는 방법: 완벽 가이드 2026
JSON을 올바르게 포맷하는 방법을 배우세요. 온라인 도구, IDE 설정, 명령줄 도구 및 프로그래밍 방식 포맷팅에 대한 종합 가이드입니다.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
# JSON 포맷하는 방법: 완벽 가이드 2026
JSON 포맷팅은 코드 가독성과 유지보수성을 향상시키는 필수 기술입니다. 이 종합 가이드는 JSON을 포맷하는 모든 방법을 다룹니다: 온라인 도구, IDE 설정, 명령줄 유틸리티 및 프로그래밍 방식 솔루션.
JSON 포맷팅이란?
JSON 포맷팅은 JSON 데이터를 읽기 쉬운 형식으로 구조화하는 프로세스입니다. 적절한 들여쓰기, 줄바꿈 및 간격을 추가하여 구조를 명확하게 만듭니다.
포맷되지 않은 JSON
{"name":"홍길동","age":30,"address":{"city":"서울","zipCode":"12345"},"skills":["JavaScript","Python","Go"]}
포맷된 JSON
{
"name": "홍길동",
"age": 30,
"address": {
"city": "서울",
"zipCode": "12345"
},
"skills": [
"JavaScript",
"Python",
"Go"
]
}
포맷팅이 중요한 이유
1. 가독성
적절히 포맷된 JSON은 이해하고 탐색하기 쉽습니다.
2. 디버깅
포맷팅은 구조 오류와 누락된 항목을 발견하는 데 도움이 됩니다.
3. 협업
일관된 포맷팅은 팀 작업을 향상시킵니다.
4. 유지보수
코드를 장기적으로 유지 관리하기 쉽게 만듭니다.
온라인 JSON 포맷터
1. JSONLint
인기 있는 온라인 JSON 검증기 및 포맷터:
기능:- JSON 검증
- 자동 포맷팅
- 오류 표시
- 구문 강조
2. JSON Formatter & Validator
기능:- 실시간 포맷팅
- 트리 뷰
- 복사/다운로드
- 다크 모드
3. Code Beautify
URL: codebeautify.org/jsonviewer 기능:- JSON 뷰어
- 포맷터
- 최소화
- 트리 뷰
- CSV로 변환
IDE 및 에디터에서 포맷팅
Visual Studio Code
내장 포맷팅: 방법 1: 키보드 단축키- Windows/Linux:
Shift + Alt + F - macOS:
Shift + Option + F
Ctrl + Shift + P (또는 Cmd + Shift + P){
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[json]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
}
}
Prettier 확장 프로그램:
{
"prettier.tabWidth": 2,
"prettier.useTabs": false,
"prettier.semi": true,
"prettier.singleQuote": false
}
IntelliJ IDEA / WebStorm
자동 포맷팅:- Windows/Linux:
Ctrl + Alt + L - macOS:
Cmd + Option + L
Sublime Text
패키지 설치:Ctrl + Alt + J 사용Atom
패키지:- atom-beautify
- prettier-atom
Ctrl + Alt + B또는Cmd + Option + B
명령줄 도구
1. Python json.tool
기본 사용:# JSON 포맷팅
python -m json.tool input.json output.json
# 표준 입력에서 읽기
echo '{"name":"홍길동","age":30}' | python -m json.tool
# 파이프를 통한 포맷팅
cat data.json | python -m json.tool
들여쓰기 사용자 정의:
python -m json.tool --indent 4 input.json
압축 (최소화):
python -m json.tool --compact input.json output.json
2. jq
강력한 JSON 프로세서:
설치:# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# Windows (Chocolatey)
choco install jq
기본 포맷팅:
# 파일 포맷팅
jq '.' input.json
# 결과 저장
jq '.' input.json > output.json
# 압축
jq -c '.' input.json
고급 사용:
# 특정 필드 추출 및 포맷팅
jq '.users[] | {name, email}' data.json
# 배열 필터링
jq '.[] | select(.age > 25)' users.json
# 정렬
jq 'sort_by(.name)' data.json
3. Node.js
전역 유틸리티 생성:#!/usr/bin/env node
const fs = require('fs');
const args = process.argv.slice(2);
const input = args[0];
if (!input) {
console.error('사용법: json-format <file>');
process.exit(1);
}
try {
const data = fs.readFileSync(input, 'utf8');
const parsed = JSON.parse(data);
console.log(JSON.stringify(parsed, null, 2));
} catch (error) {
console.error('오류:', error.message);
process.exit(1);
}
사용:
chmod +x json-format
./json-format data.json
프로그래밍 방식 포맷팅
JavaScript
기본 포맷팅:const data = {
name: "홍길동",
age: 30,
skills: ["JavaScript", "Python"]
};
// 들여쓰기 2칸
const formatted = JSON.stringify(data, null, 2);
console.log(formatted);
// 들여쓰기 4칸
const formatted4 = JSON.stringify(data, null, 4);
// 압축 (공백 없음)
const minified = JSON.stringify(data);
사용자 정의 replacer 함수:
const data = {
name: "홍길동",
password: "secret123",
age: 30
};
// 민감한 필드 제외
const formatted = JSON.stringify(data, (key, value) => {
if (key === 'password') return undefined;
return value;
}, 2);
Python
기본 포맷팅:import json
data = {
"name": "홍길동",
"age": 30,
"skills": ["JavaScript", "Python"]
}
# 들여쓰기 2칸
formatted = json.dumps(data, indent=2, ensure_ascii=False)
print(formatted)
# 들여쓰기 4칸
formatted4 = json.dumps(data, indent=4, ensure_ascii=False)
# 압축
minified = json.dumps(data, ensure_ascii=False)
정렬된 키:
# 키를 알파벳순으로 정렬
formatted = json.dumps(data, indent=2, sort_keys=True, ensure_ascii=False)
파일에 쓰기:
with open('output.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
Java
Gson 라이브러리:import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class JsonFormatter {
public static void main(String[] args) {
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
String json = "{"name":"홍길동","age":30}";
Object obj = gson.fromJson(json, Object.class);
String formatted = gson.toJson(obj);
System.out.println(formatted);
}
}
PHP
<?php
$data = [
'name' => '홍길동',
'age' => 30,
'skills' => ['PHP', 'JavaScript']
];
// 예쁘게 출력
$formatted = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
echo $formatted;
// 압축
$minified = json_encode($data, JSON_UNESCAPED_UNICODE);
?>
포맷팅 모범 사례
1. 일관된 들여쓰기
2칸 들여쓰기 (권장):{
"user": {
"name": "홍길동",
"age": 30
}
}
4칸 들여쓰기:
{
"user": {
"name": "홍길동",
"age": 30
}
}
2. 배열 포맷팅
짧은 배열 (한 줄):{
"colors": ["빨강", "초록", "파랑"]
}
긴 배열 (여러 줄):
{
"skills": [
"JavaScript",
"Python",
"Go",
"TypeScript",
"Rust"
]
}
3. 객체 배열
{
"users": [
{
"id": 1,
"name": "김철수",
"email": "kim@example.com"
},
{
"id": 2,
"name": "이영희",
"email": "lee@example.com"
}
]
}
4. 중첩된 구조
{
"company": {
"name": "테크 이노베이션",
"address": {
"street": "테헤란로 123",
"city": "서울",
"country": "한국"
},
"employees": [
{
"name": "홍길동",
"role": "개발자"
}
]
}
}
프로덕션 vs 개발
개발 환경
- 포맷된 JSON 사용
- 들여쓰기 포함
- 가독성 우선
프로덕션 환경
- 최소화된 JSON
- 공백 제거
- 파일 크기 최소화
// 개발
const devJson = JSON.stringify(data, null, 2);
// 프로덕션
const prodJson = JSON.stringify(data);
자동화 도구
Prettier
설치:npm install --save-dev prettier
구성 (.prettierrc):
{
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "none",
"printWidth": 80
}
스크립트:
{
"scripts": {
"format": "prettier --write "*/.json""
}
}
ESLint
JSON 파일 린팅:{
"extends": ["plugin:json/recommended"],
"rules": {
"json/": ["error", {"allowComments": false}]
}
}
일반적인 포맷팅 오류
1. 후행 쉼표
잘못됨:{
"name": "홍길동",
"age": 30,
}
올바름:
{
"name": "홍길동",
"age": 30
}
2. 작은따옴표
잘못됨:{
'name': '홍길동'
}
올바름:
{
"name": "홍길동"
}
3. 주석
잘못됨:{
// 사용자 이름
"name": "홍길동"
}
올바름:
주석은 JSON에서 허용되지 않습니다. JSON5 또는 JSONC를 사용하세요.
대용량 JSON 파일 포맷팅
스트리밍 접근법
Node.js:const fs = require('fs');
const JSONStream = require('JSONStream');
const readStream = fs.createReadStream('large.json');
const writeStream = fs.createWriteStream('formatted.json');
readStream
.pipe(JSONStream.parse(''))
.pipe(JSONStream.stringify('[
', ',
', '
]
'))
.pipe(writeStream);
결론
JSON 포맷팅은 깨끗하고 유지 관리 가능한 코드를 위한 필수 기술입니다. 온라인 도구를 사용하든, IDE 단축키를 사용하든, 프로그래밍 방식으로 포맷팅하든 올바른 접근 방식은 작업 흐름에 따라 다릅니다.
주요 요점:- 일관된 들여쓰기 사용 (2 또는 4칸)
- IDE에서 자동 포맷팅 활성화
- 팀 전체에서 일관성 유지
- 개발에는 포맷, 프로덕션에는 최소화
- 자동화 도구 활용
정기적으로 JSON을 포맷하면 코드 품질이 향상되고 디버깅이 쉬워지며 팀 협업이 더 원활해집니다.
관련 글
JSON이란 무엇인가? JavaScript Object Notation 완벽 가이드
JSON(JavaScript Object Notation)의 기본 개념부터 실제 활용까지. 웹 개발의 필수 데이터 형식인 JSON을 완벽하게 이해해보세요.
온라인 JSON 도구: 2026년 최고의 무료 도구 TOP 15
JSON 작업을 위한 최고의 온라인 도구를 발견하세요. 포맷터, 검증기, 에디터, 변환기 등 - 모든 무료 도구를 한 곳에서 비교합니다.
JSON Beautifier 가이드: 데이터를 읽기 쉽게 만들기
JSON beautifier를 사용하여 압축된 JSON을 읽기 쉬운 형식으로 변환하는 방법을 배우세요. 도구, 기술 및 모범 사례에 대한 완벽한 가이드입니다.