XML이란? 데이터 저장과 교환을 위한 표준 포맷 완벽 정리
인터넷과 소프트웨어에서 데이터 교환이 필수적인 시대가 되면서 JSON, XML 같은 데이터 포맷이 중요해졌습니다.
그중에서도 XML(Extensible Markup Language)은 구조화된 데이터를 저장하고 교환하는 표준 형식으로 오랫동안 사용되어 왔습니다.
이번 글에서는 XML이 무엇인지, JSON과의 차이점, 실제 사용 사례, 예제 코드와 함께 쉽게 이해할 수 있도록 설명하겠습니다.
1. XML이란?
XML(Extensible Markup Language, 확장 가능한 마크업 언어)은 데이터를 저장하고 구조화하여 교환하기 위한 포맷입니다.
▶ XML의 핵심 개념
- 사람과 기계가 읽을 수 있는 데이터 표현 방식
- 태그(Tag) 기반의 데이터 구조
- HTML과 유사하지만 데이터 저장을 위한 용도로 사용됨
- 서버와 클라이언트 간 데이터 교환, 설정 파일 등에 활용됨
2. XML을 쉽게 이해하기 (일상 속 예시)
▶ XML을 책의 목차에 비유하기
책을 읽을 때, 목차(Table of Contents)를 보면 내용이 정리되어 있는 것을 알 수 있습니다.
XML을 이용하면 데이터를 체계적으로 구조화하여 저장할 수 있습니다.
예를 들어, 도서 정보를 저장하는 XML 문서는 다음과 같습니다.
<도서>
<제목>XML의 모든 것</제목>
<저자>홍길동</저자>
<출판사>한빛미디어</출판사>
<출판년도>2023</출판년도>
</도서>
3. XML의 기본 문법
XML은 HTML과 유사하지만 데이터 저장을 위한 구조화된 언어입니다.
▶ XML 문법의 주요 요소
- 태그(Tag) 사용: <태그>내용</태그> 형태로 구성
- 중첩(Nesting) 가능: <부모><자식></자식></부모> 구조 사용
- 속성(Attribute) 사용 가능: <태그 속성="값">내용</태그>
▶ XML 기본 예제
<이름>김철수</이름>
<학년>3학년</학년>
<전공>컴퓨터공학</전공>
</학생>
이해 포인트:
- XML 문서는 계층 구조(Tree Structure)를 가짐.
- HTML과 비슷하지만 데이터를 저장하는 용도로 사용됨.
4. XML과 JSON의 차이점
JSON과 XML은 서로 다른 데이터 교환 방식으로, 각각의 장단점이 있습니다.
비교 항목XMLJSON
구조 | 태그 기반 | 키-값 기반 |
가독성 | 사람이 읽기 쉬움 | 더 간결함 |
데이터 크기 | 크기가 큼 | 가벼움 |
데이터 타입 | 문자열만 저장 가능 | 숫자, 배열 등 다양한 타입 지원 |
사용 분야 | 설정 파일, 문서 저장 | 웹 API, 데이터 교환 |
이해 포인트:
- XML은 구조화된 데이터 표현에 적합, JSON은 가볍고 웹 API에서 많이 사용.
- 대규모 데이터나 문서 저장에는 XML이 유리.
5. XML의 주요 활용 사례
활용 분야설명
설정 파일 (Config 파일) | 프로그램의 설정 값을 저장하는데 사용 (예: .xml 설정 파일) |
웹 서비스 (SOAP API) | XML을 이용해 데이터를 주고받는 프로토콜 |
문서 저장 및 전송 | 뉴스 기사, 전자 문서 저장 |
데이터베이스 연동 | XML 기반 데이터 저장 및 변환 |
6. XML의 동작 방식과 예제 코드
▶ 1) XML 문서 저장 예제
<음악>
<노래 제목="가을바람">
<가수>아이유</가수>
<앨범>가을의 시작</앨범>
<장르>발라드</장르>
</노래>
<노래 제목="여름밤">
<가수>방탄소년단</가수>
<앨범>SUMMER</앨범>
<장르>팝</장르>
</노래>
</음악>
▶ 2) JavaScript에서 XML 파싱하기
const xmlString = `<도서><제목>XML 입문</제목><저자>홍길동</저자></도서>`;
const xmlDoc = parser.parseFromString(xmlString, "text/xml");
console.log(xmlDoc.getElementsByTagName("제목")[0].textContent); // 출력: XML 입문
▶ 3) Python에서 XML 데이터 다루기
xml_data = """<학생>
<이름>김철수</이름>
<학년>3학년</학년>
<전공>컴퓨터공학</전공>
</학생>"""
root = ET.fromstring(xml_data)
print(root.find("이름").text) # 출력: 김철수
7. XML의 장점과 단점
장점설명
데이터 구조화 가능 | 트리 구조를 통해 복잡한 데이터 표현 가능 |
사람이 읽기 쉬움 | HTML과 비슷하여 직관적으로 이해 가능 |
문서 저장에 적합 | 전자문서, 뉴스, 설정 파일 등에 활용 가능 |
표준화된 형식 | W3C 표준으로 널리 사용됨 |
단점설명
데이터 크기 큼 | 태그 사용으로 인해 파일 크기가 커질 수 있음 |
처리 속도 느림 | JSON보다 파싱 속도가 느림 |
데이터 타입 한정적 | JSON처럼 숫자, 배열 등을 직접 저장할 수 없음 |
이해 포인트:
- 대규모 문서 저장, 문서 포맷 관리에는 XML이 적합.
- API, 웹 개발에서는 JSON이 더 많이 사용됨.
8. XML을 사용해야 하는 경우
사용 환경XML 적합 여부
설정 파일 저장 (Config) | 적합 |
SOAP API 사용 | 적합 |
전자문서, 뉴스 데이터 저장 | 적합 |
웹 API 개발 (REST API) | JSON이 더 적합 |
이해 포인트:
- XML은 데이터 저장과 문서 포맷 관리에 적합.
- JSON은 웹 API에서 더 많이 사용됨.
9. 결론: XML이란?
- XML은 데이터를 저장하고 교환하기 위한 마크업 언어.
- 태그(Tag) 기반의 트리 구조로 데이터를 구조화하여 저장 가능.
- 설정 파일, 문서 저장, SOAP API 등에 주로 사용됨.
- JSON과 비교했을 때, 문서 저장에는 XML이 적합하고, 데이터 교환에는 JSON이 더 적합.
XML은 현재도 다양한 분야에서 사용되는 데이터 저장 및 교환 포맷으로, 개발자가 반드시 알아야 할 기술입니다.
'프로그래밍 > 웹(Web)' 카테고리의 다른 글
부트스트랩(Bootstrap)이란? 완전 개념 정리! (0) | 2025.02.09 |
---|---|
AJAX란 무엇인가? 개념 완전 정리! (0) | 2025.02.08 |
JSON이란? 데이터 교환의 표준 포맷 완벽 정리 (1) | 2025.02.03 |
Node.js란? 비동기 서버 개발의 핵심 기술 완벽 정리 (0) | 2025.02.03 |
HTTP요청방식 GET vs POST 완벽정리 (0) | 2025.02.02 |