XML과 JSON
XML과 JSON에 대해 알아보고 둘을 비교해보자!
프로그래밍 언어론
XML
- 데이터를 저장하고 전송하기 위한 마크업 언어
- 화면에 표시하는 목적이 아닌 데이터의 의미와 구조를 정의, 컴퓨터 간에 데이터를 교환하는 데 특화
- 태그 기반 구조: 데이터의 각 요소를 태그로 감싸, 유저가 원하는 태그명 정의 가능
- 트리 구조: 데이터가 루트 요소를 기준으로 하위 요소들이 중첩되어 계층적으로 표현됨
- 확장성: 다양한 목적에 맞는 태그와 구조를 자유롭게 설계
- 사람과 기계 모두 읽기 쉬움: 텍스트 기반이라 사람이 직접 읽고 편집 가능, 기계도 구조적으로 데이터를 처리하기 쉬움
- 플랫폼/언어 독립적: 플랫폼이나 언어 상관없이 널리 사용 가능
예시:
<?xml version="1.0" encoding="UTF-8"?> <book category="fantasy"> <title>Harry Potter</title> <author>J.K. Rowling</author> <year>1997</year> </book>
- 구성 요소
- 요소(Element):
<title>Harry Potter</title> - 속성(Attribute):
<book category="fantasy"> - 텍스트 데이터(Text Content): 태그 안의 실제 값
- 주석(Comment):
<!-- 주석 내용 -->- 처리 명령(Processing Instruction):
<?xml version="1.0">
- 처리 명령(Processing Instruction):
- 요소(Element):
JSON
- 데이터를 저장하고 교환하기 위한 텍스트 기반 데이터 포맷
- JS의 객체 표기법에서 파생, 언어나 플랫폼 관계없이 널리 사용
- 구조
key-value쌍{}로 감싼다JSON의 값으로String,Number,Boolean,Array,Object,null등이 올 수 있음key값은 반드시""로 감싼다
예시:
{ "name": "정승준", "age": 23, "isStudent": true, "skills": ["JavaScript", "React"], "address": { "city": "Suwon" } }
- 특징
- 사람과 기계 모두 해석하기 쉬움
- 파싱과 생성이 쉬움
- 가볍고 간결해 XML 대비 효율적
- 함수나 주석, undefined 등은 표현 불가능
JSON과 XML의 차이점
기본적인 구조 차이
JSON
- key-value 쌍 구조
- 최소한의 문법으로 데이터 표현
{
"name": "booduki",
"job": "Sending DM"
}
XML
- 태그 기반 구조
- 태그명으로 데이터의 의미를 명확히 표현
<bot>
<name>booduki</name>
<job>Sending DM</job>
</bot>
같은 데이터에 대해서 다룰 때의 장단점
JSON
- 장점
- 파싱 속도가 XML에 비해서 빠름
- 용량이 작다
- 구문이 간단해서 읽기/쓰기가 쉽다
- 단점
- 주석이 불가능
- 데이터 타입 제한(문자열, 숫자, 배열 등 기본 타입만 지원)
- 문법 오류에 취약: 콤마 하나만 틀려도 전체 문서 해석 불가
XML
- 장점
- 스키마 검증: 데이터 무결성 검정 가능
- 다양한 데이터 타입
- 구조화 우수: 복잡한 계층구조, 메타데이터 표현
- 주석 지원
- 단점
- XML 파서가 필요해 파싱 속도 저하
- 큰 파일 크기
- 복잡한 구문
어떤 게 더 좋아?

나니가스키JSON: 웹 API와 모바일 앱에서 빠른 데이터 교환에 적합 XML: 복잡한 문서 구조와 엄격한 데이터 검증이 필요한 경우에 적합