본문 바로가기
IT/Network

JSON이란? JSON을 사용하는 이유, JSON의 장점, JSON의 데이터 이동 경로, 아니 그러니까 JSON을 왜 쓰는건데?

by Echinacea 2025. 2. 4.
반응형

✅ JSON이 탄생한 이유

과거에는 데이터를 교환할 때 XML(Extensible Markup Language)이 주로 사용되었습니다. 하지만 XML은 구조가 복잡하고, 읽기 어려우며, 파싱 속도가 느린 단점이 있었습니다.

이를 해결하기 위해 Douglas Crockford가볍고, 가독성이 뛰어나며, 파싱 속도가 빠른 데이터 형식을 만들었고, 그것이 바로 JSON(JavaScript Object Notation)입니다.


✅ JSON vs XML 비교

같은 데이터를 XML과 JSON으로 표현해보겠습니다.

📌 XML 사용 예시

xml
<user>
    <name>Alice</name>
    <age>30</age>
    <isStudent>false</isStudent>
    <hobbies>
        <hobby>reading</hobby>
        <hobby>traveling</hobby>
    </hobbies>
</user>

📌 JSON 사용 예시

json
 
{
  "name": "Alice",
  "age": 30,
  "isStudent": false,
  "hobbies": ["reading", "traveling"]
}

💡 JSON이 더 간결하고, 사람이 읽기 쉽습니다.
💡 JSON은 JavaScript의 객체 표기법과 유사하여 다루기 쉽습니다.


✅ JSON을 사용하면 어떤 장점이 있을까?

📌 1. 코드 비교 (JavaScript)

🛑 XML을 파싱하는 코드 (복잡함)

javascript
 
const parser = new DOMParser();
const xmlString = `
<user>
    <name>Alice</name>
    <age>30</age>
    <isStudent>false</isStudent>
</user>`;
const xmlDoc = parser.parseFromString(xmlString, "application/xml");

const name = xmlDoc.getElementsByTagName("name")[0].textContent;
const age = parseInt(xmlDoc.getElementsByTagName("age")[0].textContent);
const isStudent = xmlDoc.getElementsByTagName("isStudent")[0].textContent === "true";

console.log({ name, age, isStudent });
  • XML을 다루려면 복잡한 DOM(Document Object Model) 조작이 필요합니다.
  • 문자열을 숫자나 불리언으로 변환해야 하는 불편함이 있습니다.

JSON을 파싱하는 코드 (간단함)

javascript
 
const jsonString = '{"name": "Alice", "age": 30, "isStudent": false}';
const user = JSON.parse(jsonString);

console.log(user); // { name: 'Alice', age: 30, isStudent: false }
  • 한 줄로 JSON을 객체로 변환할 수 있습니다
  • 데이터 타입 변환이 필요하지 않습니다.

📌 2. 코드 비교 (Python)

🛑 XML을 파싱하는 코드

python
 
import xml.etree.ElementTree as ET

xml_data = """<user>
    <name>Alice</name>
    <age>30</age>
    <isStudent>false</isStudent>
</user>"""

root = ET.fromstring(xml_data)

name = root.find("name").text
age = int(root.find("age").text)
is_student = root.find("isStudent").text == "true"

print({"name": name, "age": age, "isStudent": is_student})
  • XML 파싱을 위해 xml.etree.ElementTree 모듈을 사용해야 합니다.
  • 데이터 타입(숫자, 불리언) 변환이 필요합니다.

JSON을 파싱하는 코드

python
import json

json_data = '{"name": "Alice", "age": 30, "isStudent": false}'
user = json.loads(json_data)

print(user)  # {'name': 'Alice', 'age': 30, 'isStudent': False}
 
 
  • 한 줄로 JSON을 파싱할 수 있습니다.
  • 데이터 타입 변환이 필요 없습니다.

✅ JSON의 주요 장점

비교 항목JSON vs XML
가독성 높음 낮음
크기 작음
파싱 속도 빠름 느림
데이터 타입 지원 숫자, 문자열, 불리언, 배열, 객체 문자열만 가능 (추가 변환 필요)
사용 편의성 간편 (JSON.parse, json.loads) 복잡 (DOM 조작 필요)
API 사용 RESTful API에서 표준 사용 SOAP에서 사용되지만 감소 추세

➡ 결론: JSON은 가볍고 빠르며 다루기 쉬워 현재 대부분의 웹 및 API에서 표준 데이터 형식으로 사용됩니다. 

 

✅ JSON 데이터는 어디서 어디로 전달될까?

JSON은 서버와 클라이언트, 시스템 간 데이터 교환을 위해 사용됩니다.
웹 개발, 모바일 앱, API, 데이터 저장소 등 다양한 곳에서 JSON이 사용됩니다.

 

반응형

댓글