본문 바로가기
프로그래머로의 여정

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의 부상:

  1. 웹 API의 표준으로 자리잡음
  2. NoSQL 데이터베이스에서 기본 형식
  3. 설정 파일에서 YAML과 경쟁

XML의 지속적 사용:

  1. 기업 환경: SOAP, 기존 시스템
  2. 문서 처리: Office 형식, 출판
  3. 산업 표준: HL7(의료), FpML(금융)

선택 가이드

XML을 선택해야 할 때:

  • 복잡한 문서 구조가 필요할 때
  • 메타데이터와 검증이 중요할 때
  • 기업 표준이나 레거시 시스템과 연동
  • 산업별 표준이 XML을 요구할 때

JSON을 선택해야 할 때:

  • 웹/모바일 API 개발 시
  • 간단한 데이터 교환이 필요할 때
  • 성능과 경량성이 중요할 때
  • JavaScript/웹 생태계에서 작업 시

결론

XML구조의 명확성과 검증이 중요한 엔터프라이즈 환경에서, JSON간결함과 성능이 중요한 모던 웹 개발에서 각각 강점을 가집니다. 현대에는 대부분의 새로운 프로젝트에서 JSON이 선호되지만, XML은 여전히 특정 분야에서 대체불가한 역할을 하고 있습니다.