프로그래머로의 여정
XML vs. JSON 비교
by nunaaa
2025. 10. 19.
XML vs JSON 비교
핵심 차이: 구조적 접근 vs 데이터 중심
| 구분 |
XML (eXtensible Markup Language) |
JSON (JavaScript Object Notation) |
| 탄생 |
1996년, W3C 표준 |
2000년대, JavaScript에서 파생 |
| 목적 |
문서 중심 데이터 표현 |
데이터 교환 최적화 |
| 구조 |
계층적 트리 구조 |
객체-배열 구조 |
기술적 차이점
1. 문법 비교
XML 예시:
<사용자>
<이름>홍길동</이름>
<나이>30</나이>
<취미>
<항목>독서</항목>
<항목>등산</항목>
</취미>
<활성>true</활성>
</사용자>
JSON 예시:
{
"이름": "홍길동",
"나이": 30,
"취미": ["독서", "등산"],
"활성": true
}
2. 파일 크기 및 가독성
| 항목 |
XML |
JSON |
| 파일 크기 |
상대적으로 큼 (닫는 태그) |
상대적으로 작음 |
| 가독성 |
장황하지만 구조 명확 |
간결하고 직관적 |
| 데이터 타입 |
모두 문자열 (명시적 변환 필요) |
기본 타입 지원 (숫자, 불린, null) |
상세 특징 비교
XML의 특징:
장점:
- 메타데이터 표현: 속성(attribute) 사용 가능
<책 ISBN="12345">해리포터</책>
- 스키마 지원: DTD, XSD로 구조 검증
- 네임스페이스: 다양한 표준 통합 가능
- XPath/XSLT: 강력한 쿼리 및 변환 기능
단점:
- 복잡한 파싱: DOM/SAX 파서 필요
- 과도한 태그: 데이터 대비 마크업 비율 높음
- 학습 곡선: 고급 기능이 복잡함
JSON의 특징:
장점:
- 간결한 문법: 키-값 쌍으로 직관적
- 경량성: 데이터 전송 효율적
- JavaScript 친화적: 웹 환경에서 즉시 사용 가능
- 파싱 용이성: 대부분 언어에서 기본 지원
단점:
- 주석 불가: 설정 파일로 사용 시 제약
- 데이터 타입 제한: 날짜 등 특수 타입 표현 어려움
- 보안 문제:
eval() 사용 시 보안 위험
사용 영역 비교
XML이 더 적합한 경우:
문서 중심 데이터:
<!-- 법률 문서 -->
<계약서>
<조항 id="1">
<제목>계약 기간</제목>
<내용>이 계약은...</내용>
</조항>
</계약서>
복잡한 구조:
- SOAP 웹 서비스
- Office 문서 형식 (DOCX, XLSX)
- RSS/Atom 피드
- 설정 파일 (Android layout, Maven)
JSON이 더 적합한 경우:
API 데이터 교환:
// REST API 응답
{
"status": "success",
"data": {
"users": [
{"id": 1, "name": "John"},
{"id": 2, "name": "Jane"}
]
}
}
모던 웹 개발:
- RESTful API
- 모바일 앱 통신
- 실시간 데이터 (WebSocket)
- 설정 파일 (package.json, .eslintrc)
성능 비교
파싱 속도:
- JSON: 일반적으로 더 빠름
- XML: 구조 복잡성에 따라 속도 저하
메모리 사용:
- JSON: 경량 구조로 메모리 효율적
- XML: DOM 트리 구성 시 메모리 많이 사용
호환성 및 지원
프로그래밍 언어 지원:
| 언어 |
XML 지원 |
JSON 지원 |
| JavaScript |
DOM Parser |
기본 내장 |
| Python |
xml.etree.ElementTree |
json library |
| Java |
JAXB, DOM |
Jackson, Gson |
| C# |
XmlSerializer |
JsonSerializer |
브라우저 지원:
- JSON: 모든 모던 브라우저에서 기본 지원
- XML: 지원하지만 JSON보다 느림
현대적 추세
JSON의 부상:
- 웹 API의 표준으로 자리잡음
- NoSQL 데이터베이스에서 기본 형식
- 설정 파일에서 YAML과 경쟁
XML의 지속적 사용:
- 기업 환경: SOAP, 기존 시스템
- 문서 처리: Office 형식, 출판
- 산업 표준: HL7(의료), FpML(금융)
선택 가이드
XML을 선택해야 할 때:
- ✅ 복잡한 문서 구조가 필요할 때
- ✅ 메타데이터와 검증이 중요할 때
- ✅ 기업 표준이나 레거시 시스템과 연동
- ✅ 산업별 표준이 XML을 요구할 때
JSON을 선택해야 할 때:
- ✅ 웹/모바일 API 개발 시
- ✅ 간단한 데이터 교환이 필요할 때
- ✅ 성능과 경량성이 중요할 때
- ✅ JavaScript/웹 생태계에서 작업 시
결론
XML은 구조의 명확성과 검증이 중요한 엔터프라이즈 환경에서, JSON은 간결함과 성능이 중요한 모던 웹 개발에서 각각 강점을 가집니다. 현대에는 대부분의 새로운 프로젝트에서 JSON이 선호되지만, XML은 여전히 특정 분야에서 대체불가한 역할을 하고 있습니다.