← 블로그로 돌아가기

JSON 포맷하는 방법: 완벽 가이드 2026

JSON을 올바르게 포맷하는 방법을 배우세요. 온라인 도구, IDE 설정, 명령줄 도구 및 프로그래밍 방식 포맷팅에 대한 종합 가이드입니다.

Big JSON Team11분 소요tutorial
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

11 분 읽기

# 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 검증
  • 자동 포맷팅
  • 오류 표시
  • 구문 강조

사용 방법:
  • jsonlint.com 방문
  • JSON 붙여넣기
  • "Validate 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

    방법 2: 명령 팔레트
  • Ctrl + Shift + P (또는 Cmd + Shift + P)
  • "Format Document" 입력
  • Enter 키
  • 설정 구성:
    {
    

    "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

    설정:
  • Settings → Editor → Code Style → JSON
  • 들여쓰기 크기 설정
  • 공백 규칙 구성
  • Sublime Text

    패키지 설치:
  • Package Control 설치
  • "Pretty JSON" 패키지 설치
  • 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을 포맷하면 코드 품질이 향상되고 디버깅이 쉬워지며 팀 협업이 더 원활해집니다.

    Share:

    관련 글

    Read in English