JSON(JavaScript Object Notation) 이란?

2025. 3. 17. 16:10테크IT

반응형

📝 JSON(JavaScript Object Notation) 완벽 분석

🔍 JSON이란?

**JSON(JavaScript Object Notation)**은 데이터를 저장하고 교환하기 위한 경량 데이터 형식입니다. 사람이 읽고 쓰기 쉽고, 기계가 효율적으로 파싱하고 생성할 수 있도록 설계되었습니다. 원래는 JavaScript의 객체 리터럴 문법을 기반으로 만들어졌지만, 현재는 다양한 프로그래밍 언어에서 널리 사용됩니다.

JSON은 특히 웹 개발, API 통신, 데이터 저장 및 교환에서 필수적인 형식이며, XML을 대체하는 데이터 형식으로 자리 잡았습니다.

📌 JSON의 주요 특징

1. 📃 가벼운 텍스트 기반 데이터 형식

  • 텍스트 형식으로 이루어져 있어 사람이 쉽게 읽고 작성할 수 있음
  • 데이터가 키-값 쌍(Key-Value Pair) 구조로 저장되어 직관적임
  • 공백을 최소화하여 저장하면 데이터 크기가 작아 전송 속도가 빠름

2. 🌍 다양한 프로그래밍 언어에서 지원

  • JSON은 언어에 종속되지 않는 데이터 형식으로, 대부분의 프로그래밍 언어에서 사용 가능
  • Python, JavaScript, Java, C++, PHP, Ruby 등 다양한 환경에서 라이브러리를 통해 쉽게 처리 가능

3. 🔄 웹 애플리케이션 및 API 통신의 핵심

  • RESTful API, GraphQL 등의 데이터 송수신에서 기본적인 데이터 형식으로 사용됨
  • 서버와 클라이언트 간의 데이터 교환에서 가장 일반적인 포맷
  • 비동기 통신(AJAX, Fetch API)에서 데이터 요청 및 응답 처리 시 유용

4. 🛠️ 간결하고 직관적인 데이터 구조

  • 배열과 객체를 활용한 계층적 데이터 표현 가능
  • XML보다 구조가 간단하고 가독성이 뛰어남
  • JSON 스키마(JSON Schema)를 사용하면 데이터 구조를 명확하게 정의할 수 있음

📑 JSON의 문법 구조

1. 📌 기본 데이터 타입

JSON은 다음과 같은 6가지 기본 데이터 타입을 지원합니다.

2. 📂 JSON 객체(Object) 구조

JSON 객체는 중괄호 {} 를 사용하며, 여러 개의 키-값 쌍으로 구성됩니다.

{
  "name": "Alice",
  "age": 25,
  "email": "alice@example.com"
}

3. 📋 JSON 배열(Array) 구조

JSON 배열은 대괄호 [] 를 사용하여 여러 개의 값을 저장할 수 있습니다.

{
  "users": [
    { "id": 1, "name": "Alice" },
    { "id": 2, "name": "Bob" }
  ]
}

🔄 JSON과 XML 비교

JSON은 가볍고 빠르며 가독성이 뛰어나기 때문에 XML을 대체하는 표준 데이터 형식으로 자리 잡았습니다.

🛠️ JSON 사용 예시

1. 📡 JavaScript에서 JSON 다루기

JSON 객체를 JavaScript 객체로 변환 (Parsing)

const jsonString = '{ "name": "Alice", "age": 25 }';
const user = JSON.parse(jsonString);
console.log(user.name); // "Alice"

JavaScript 객체를 JSON 문자열로 변환 (Stringify)

const user = { name: "Alice", age: 25 };
const jsonString = JSON.stringify(user);
console.log(jsonString); // '{"name":"Alice","age":25}'

2. 🐍 Python에서 JSON 다루기

JSON 파싱 및 변환

import json

# JSON 문자열을 Python 객체로 변환
json_data = '{ "name": "Alice", "age": 25 }'
user = json.loads(json_data)
print(user["name"])  # "Alice"

# Python 객체를 JSON 문자열로 변환
json_string = json.dumps(user)
print(json_string)  # '{"name": "Alice", "age": 25}'

⚠️ JSON 사용 시 주의할 점

❌ 1. 데이터 타입 제약

  • JSON은 문자열, 숫자, 불리언, 배열, 객체, null만 지원하며, 날짜(Date)나 함수(Function)는 직접 저장할 수 없음.
  • 날짜는 ISO 8601 형식(예: "2024-03-17T12:34:56Z")으로 저장하거나, 타임스탬프(Unix Timestamp)를 활용해야 함.

❌ 2. 주석(Comments) 미지원

  • JSON은 주석을 지원하지 않음 (XML과 차이점)
  • 개발 시 JSON 대신 JSONC(JSON with Comments)나 YAML을 사용하여 주석을 추가하는 경우가 있음

❌ 3. 순환 참조 불가

  • JSON 구조 내에서 객체가 자기 자신을 참조하는 순환 참조(Circular Reference)를 포함할 수 없음

📈 JSON의 미래 전망

🔮 1. JSON 기반 데이터 기술의 확장

  • JSON은 REST API, GraphQL, NoSQL 데이터베이스(MongoDB, Firebase)에서 기본 형식으로 자리 잡음
  • AI와 머신러닝 데이터 교환에서도 JSON이 널리 사용됨

🔮 2. JSON Schema의 발전

  • JSON 데이터 검증 및 표준화를 위한 JSON Schema 사용 증가
  • 복잡한 JSON 데이터를 다룰 때 유용하게 활용될 전망

🏆  JSON은 왜 중요한가?

JSON은 웹 개발 및 데이터 교환의 핵심 기술로 자리 잡았으며, 가볍고 빠른 데이터 처리 방식 덕분에 XML을 대체하는 표준으로 자리 잡았습니다.

추천 사용처:

  • RESTful API 및 비동기 데이터 전송
  • NoSQL 데이터베이스 저장 및 관리
  • 설정 파일, 로깅 데이터, 구성 정보 저장

JSON은 단순하지만 강력한 데이터 형식으로, 현대 소프트웨어 개발에서 필수적인 도구입니다!

반응형