← 블로그로 돌아가기

JSON 파일: 구조와 사용법 완벽 가이드

JSON 파일에 대한 종합 가이드 - .json 확장자, MIME 타입, 구조 및 JSON 파일을 효과적으로 생성, 열기, 사용하는 방법을 배워보세요.

Big JSON Team9분 소요beginner
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.

9 분 읽기

# JSON 파일: 구조와 사용법 완벽 가이드

JSON 파일은 현대 소프트웨어 개발에서 어디에나 있습니다. 구성 파일에서 데이터 저장까지 JSON 파일을 이해하는 것은 개발자, 데이터 분석가 및 디지털 데이터를 다루는 모든 사람에게 중요합니다. 이 종합 가이드는 JSON 파일에 대해 알아야 할 모든 것을 다룹니다.

JSON 파일이란?

JSON 파일은 JavaScript Object Notation 형식으로 구조화된 데이터를 포함하는 텍스트 파일입니다. 이러한 파일은 .json 확장자를 사용하며 컴퓨터가 쉽게 파싱하고 생성할 수 있는 사람이 읽을 수 있는 구조화된 형식으로 데이터를 저장합니다.

파일 확장자

JSON 파일은 .json 확장자를 사용합니다:

  • config.json
  • package.json
  • data.json
  • settings.json

MIME 타입 및 콘텐츠 타입

HTTP를 통해 JSON 파일을 제공할 때 적절한 MIME 타입은 다음과 같습니다:

Content-Type: application/json

이것은 브라우저와 애플리케이션에게 파일 콘텐츠를 해석하는 방법을 알려줍니다.

JSON 파일의 구조

기본 구조

JSON 파일은 일반적으로 객체 또는 배열인 단일 최상위 값을 포함해야 합니다:

루트로서의 객체:
{

"name": "예제",

"version": "1.0.0"

}

루트로서의 배열:
[

{"id": 1, "name": "항목 1"},

{"id": 2, "name": "항목 2"}

]

문자 인코딩

JSON 파일은 BOM(Byte Order Mark) 없이 UTF-8로 인코딩되어야 합니다. 이는 다음을 보장합니다:

  • 범용 호환성
  • 국제 문자의 적절한 처리
  • 더 작은 파일 크기

공백

공백(스페이스, 탭, 줄바꿈)은 파서에 의해 무시되지만 적절한 형식은 가독성을 향상시킵니다:

최소화 (프로덕션):
{"name":"앱","version":"1.0","active":true}
형식화 (개발):
{

"name": "앱",

"version": "1.0",

"active": true

}

일반적인 JSON 파일 타입

1. 구성 파일

애플리케이션은 구성을 위해 JSON을 사용합니다:

config.json:
{

"server": {

"port": 3000,

"host": "localhost",

"ssl": false

},

"database": {

"type": "postgresql",

"host": "localhost",

"port": 5432,

"name": "myapp_db"

},

"logging": {

"level": "info",

"format": "json"

}

}

2. 패키지 관리자 파일

package.json (Node.js):
{

"name": "my-application",

"version": "2.1.0",

"description": "내 멋진 앱",

"main": "index.js",

"scripts": {

"start": "node index.js",

"test": "jest",

"build": "webpack"

},

"dependencies": {

"express": "^4.18.0",

"mongoose": "^7.0.0"

},

"devDependencies": {

"jest": "^29.0.0",

"webpack": "^5.75.0"

}

}

3. 데이터 파일

users.json:
[

{

"id": 1,

"username": "kimcheolsu",

"email": "kim@example.com",

"role": "admin",

"active": true,

"createdAt": "2026-01-10"

},

{

"id": 2,

"username": "leeyounghee",

"email": "lee@example.com",

"role": "user",

"active": true,

"createdAt": "2026-01-12"

}

]

4. API 응답

api-response.json:
{

"status": "success",

"data": {

"user": {

"id": 123,

"name": "홍길동",

"email": "hong@example.com"

},

"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

},

"timestamp": "2026-01-16T10:30:00Z"

}

JSON 파일 생성 방법

1. 텍스트 에디터 사용

모든 텍스트 에디터로 JSON 파일을 생성할 수 있습니다:

  • 새 파일 생성
  • JSON 데이터 입력
  • .json 확장자로 저장
  • 2. 프로그래밍 방식 생성

    Python:
    import json
    
    

    # 데이터 생성

    data = {

    "name": "김철수",

    "age": 30,

    "skills": ["Python", "JavaScript", "Go"]

    }

    # JSON 파일로 저장

    with open('data.json', 'w', encoding='utf-8') as f:

    json.dump(data, f, ensure_ascii=False, indent=2)

    JavaScript (Node.js):
    const fs = require('fs');
    
    

    // 데이터 생성

    const data = {

    name: "이영희",

    age: 28,

    skills: ["React", "TypeScript", "Node.js"]

    };

    // JSON 파일로 저장

    fs.writeFileSync('data.json', JSON.stringify(data, null, 2), 'utf-8');

    JSON 파일 읽기

    Python에서 읽기

    import json
    
    

    # JSON 파일 읽기

    with open('data.json', 'r', encoding='utf-8') as f:

    data = json.load(f)

    print(data['name']) # 출력: 김철수

    JavaScript에서 읽기

    Node.js:
    const fs = require('fs');
    
    

    // JSON 파일 읽기

    const data = JSON.parse(fs.readFileSync('data.json', 'utf-8'));

    console.log(data.name); // 출력: 이영희

    브라우저:
    // Fetch API 사용
    

    fetch('data.json')

    .then(response => response.json())

    .then(data => console.log(data));

    JSON 파일 검증

    일반적인 오류

    1. 후행 쉼표:
    {
    

    "name": "홍길동",

    "age": 30, // 오류: 마지막 속성 뒤의 쉼표

    }

    2. 작은따옴표:
    {
    

    'name': '홍길동' // 오류: 큰따옴표를 사용해야 함

    }

    3. 주석:
    {
    

    // 이것은 주석입니다 // 오류: JSON은 주석을 허용하지 않음

    "name": "홍길동"

    }

    유효성 검사 도구

    JSON 파일을 검증하는 여러 방법:

  • 온라인 검증기: JSONLint, JSON Formatter
  • 명령줄 도구: jq, python -m json.tool
  • IDE 플러그인: VS Code, IntelliJ의 내장 검증기
  • JSON 파일 모범 사례

    1. 적절한 들여쓰기 사용

    좋은 예:
    {
    

    "user": {

    "name": "김철수",

    "preferences": {

    "theme": "dark",

    "language": "ko"

    }

    }

    }

    2. 일관된 명명 규칙

    camelCase 또는 snake_case를 선택하고 일관되게 사용하세요:

    camelCase:
    {
    

    "firstName": "철수",

    "lastName": "김",

    "emailAddress": "kim@example.com"

    }

    snake_case:
    {
    

    "first_name": "철수",

    "last_name": "김",

    "email_address": "kim@example.com"

    }

    3. 의미 있는 구조 사용

    데이터를 논리적으로 구성하세요:

    {
    

    "metadata": {

    "version": "1.0",

    "lastUpdated": "2026-01-16"

    },

    "config": {

    "server": {...},

    "database": {...}

    },

    "users": [...]

    }

    4. 대용량 파일 피하기

    JSON 파일이 너무 크면:

    • 여러 파일로 분할 고려
    • 데이터베이스 사용 고려
    • 압축 사용 (gzip)

    JSON 파일 작업 도구

    VS Code

    VS Code는 훌륭한 JSON 지원을 제공합니다:

    • 구문 강조
    • 자동 완성
    • 스키마 검증
    • 형식 지정 (Shift+Alt+F)

    명령줄 도구

    jq - JSON 프로세서:
    # JSON 예쁘게 출력
    

    cat data.json | jq '.'

    # 특정 필드 추출

    cat data.json | jq '.user.name'

    # 배열 필터링

    cat data.json | jq '.users[] | select(.active == true)'

    Python json.tool:
    # JSON 형식 지정
    

    python -m json.tool input.json output.json

    # JSON 검증

    python -m json.tool data.json > /dev/null

    보안 고려사항

    1. 민감한 데이터

    구성 파일에 민감한 정보를 저장하지 마세요:

    나쁜 예:
    {
    

    "database": {

    "password": "mySecretPassword123"

    }

    }

    좋은 예:
    {
    

    "database": {

    "password": "${DB_PASSWORD}"

    }

    }

    2. 입력 검증

    사용자 제공 JSON을 파싱할 때 항상 검증하세요:

    import json
    
    

    try:

    with open('user_input.json', 'r') as f:

    data = json.load(f)

    # 데이터 검증

    if not isinstance(data, dict):

    raise ValueError("최상위 수준은 객체여야 합니다")

    except json.JSONDecodeError as e:

    print(f"유효하지 않은 JSON: {e}")

    except Exception as e:

    print(f"오류: {e}")

    결론

    JSON 파일은 현대 소프트웨어 개발의 핵심 부분입니다. 구조, 모범 사례 및 일반적인 사용 사례를 이해하면 효과적으로 JSON 파일을 생성하고 작업할 수 있습니다.

    구성, 데이터 저장 또는 API 통신을 위해 JSON 파일을 사용하든 이 가이드의 원칙은 깨끗하고 유지 관리 가능하며 효율적인 JSON 파일을 만드는 데 도움이 될 것입니다.

    JSON 파일로 작업할 때는 항상 검증하고, 일관된 형식을 유지하며, 명확하고 논리적인 구조를 사용하는 것을 기억하세요.

    Share:

    관련 글

    Read in English