카테고리 없음

JSON 데이터란?

idea9329 2024. 12. 18. 16:07
반응형

 

JSON(제이슨, JavaScript Object Notation)은 가볍고 읽기 쉬운 데이터 교환 형식입니다.
주로 서버와 클라이언트 간 데이터를 전송하거나 저장할 때 사용됩니다.
JavaScript에서 파생되었지만, 현재는 대부분의 프로그래밍 언어에서 지원됩니다.


JSON의 특징

  1. 텍스트 기반
    • 사람이 읽기 쉽고 이해하기 쉬운 구조.
    • UTF-8 인코딩을 기본으로 사용.
  2. 키-값 쌍 구조
    • 데이터는 "키(key)"와 "값(value)" 쌍으로 이루어짐.
  3. 경량 데이터 포맷
    • XML보다 간결하며 데이터 전송 속도가 빠름.
  4. 언어 독립적
    • 다양한 언어에서 쉽게 사용 가능(JavaScript, Python, Java 등).

JSON 데이터 구조

1. 기본 형식

  • JSON은 두 가지 주요 구조를 가집니다:
    • 객체(Object): 중괄호 {}로 묶인 키-값 쌍의 집합.
    • 배열(Array): 대괄호 []로 묶인 값의 리스트.

2. 데이터 유형

JSON에서 지원하는 데이터 유형은 다음과 같습니다:
| 데이터 유형 | 예시 |
|----------------|-------------------------------------|
| 문자열 | "hello" |
| 숫자 | 123, 45.67 |
| 불리언 | true, false |
| 객체 | {"key": "value"} |
| 배열 | ["apple", "banana", "cherry"] |
| null | null |


JSON 예제

1. 객체

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false
}

2. 배열

[
  {"name": "Alice", "age": 25},
  {"name": "Bob", "age": 27}
]

3. 복합 구조

{
  "team": "Developers",
  "members": [
    {"name": "Alice", "role": "Frontend"},
    {"name": "Bob", "role": "Backend"}
  ],
  "active": true
}

JSON 사용 사례

  1. 웹 애플리케이션 데이터 전송
    • 클라이언트와 서버 간 요청/응답 데이터 교환.
      예: REST API 응답 데이터
    {
      "status": "success",
      "data": {"id": 1, "name": "John"}
    }
  2. 구성 파일(Configuration Files)
    • 애플리케이션 설정 정보를 저장.
    {
      "appName": "MyApp",
      "version": "1.0.0",
      "debug": true
    }
  3. 데이터 저장
    • 데이터베이스에 JSON 데이터를 저장하거나 로깅에 활용.
  4. 데이터 교환
    • 모바일, IoT 기기, 서버 등 다양한 환경에서 데이터를 주고받는 데 사용.

JSON과 다른 포맷 비교

특징JSONXMLYAML

가독성 좋음 복잡 더 좋음
데이터 크기 작음 중간
구조화 간단한 키-값 태그 기반 들여쓰기 기반
사용성 REST API, 웹 애플리케이션 복잡한 구조 필요 시 설정 파일, 간단한 데이터 저장

JSON을 사용하는 프로그래밍 예시

Python

import json

# JSON 문자열
json_data = '{"name": "John", "age": 30, "isStudent": false}'

# JSON 파싱
data = json.loads(json_data)
print(data["name"])  # 출력: John

# 객체를 JSON으로 변환
new_data = {"name": "Alice", "age": 25}
json_string = json.dumps(new_data, indent=2)
print(json_string)

JavaScript

// JSON 문자열
const jsonData = '{"name": "John", "age": 30, "isStudent": false}';

// JSON 파싱
const data = JSON.parse(jsonData);
console.log(data.name); // 출력: John

// 객체를 JSON으로 변환
const newData = { name: "Alice", age: 25 };
const jsonString = JSON.stringify(newData, null, 2);
console.log(jsonString);

JSON의 한계와 주의점

  1. 스키마 부족
    • 데이터 구조를 검증하는 스키마가 기본적으로 없음(추가 도구 필요).
  2. 큰 데이터 처리
    • 대량의 데이터를 처리할 때 속도가 느려질 수 있음.
  3. 타입 제한
    • JSON은 날짜, 이진 데이터 등을 기본적으로 지원하지 않음(문자열로 처리).

JSON은 단순하면서도 강력한 데이터 포맷으로, 웹 개발 및 다양한 환경에서 필수적으로 사용됩니다. 활용하려는 환경에 따라 JSON의 특징을 잘 이해하고 최적화된 방식으로 사용하는 것이 중요합니다.

반응형