Knowledge
XML (eXtensible Markup Language)
De1fin
2019. 9. 1. 22:37
웹 페이지를 구축하는 데 쓰이는 웹 프로그래밍 언어에는 다양한 언어들이 있다.
누구나 한번쯤 들어봤을 법한 HTML 부터 PHP, JSP, XML 등 구조와 특징이 차별화 된 언어들이 즐비해 있다.
물론 위의 언어들을 모조리 다 마스터해야 하는 것은 아니지만 기본적인 개념은 알아둘 필요가 있다.
이번 포스팅에서는 XML에 대해 알아보도록 한다.
XML ( eXtensible Markup Language ) : 확장 가능한 Markup 언어
※ 여기서 Markup 언어란, 간단히 표현하자면 태그 등을 이용하여 데이터의 구조를 기술하는 언어 중 한 가지를 말한다.
- W3C에서 권장하는 여러 특수 목적의 마크업 언어를 만드는 용도의 언어
- 기존 HTML과 달리 웹상에서 구조화된 문서를 전송 가능하도록 설계되어 있다.
- 정보들을 태그로 마크하여 필요한 내용을 안에 적는 양식
- 인터넷으로 연결된 시스템끼리 쉽게 식별 가능한 데이터 교환이 가능
- 데이터에 의미를 부여하는 메타 데이터 기술이 가능한 구조를 가진 다목적 문서 형식 표준
XML 의 특징
- 데이터 이름 및 데이터 단위와 실제 데이터 범위 표현이 가능
- XML에는 스키마(Schema)가 있어서 데이터의 무결성 검증이 가능하다.
- SGML의 파생형 : SGML의 부분집합에 새롭게 변화한 인터넷 및 컴퓨팅 환경에 맞는 확장성을 더함
※ SGML : XML과 동일한 목적을 가진 1980년대에 등장한 언어 (
인터넷 등장보다 빨랐다)
HTML과의 차이점
HTML은 약속된 태그들만 사용 가능하지만 XML 태그는 사용자가 임의로 작성
HTML은 데이터 범위 표시가 불가능하지만, XML에서는 각각의 데이터 범위 표현이 가능
XML 파서(Parser) 종류
종 류 |
특 징 |
DOM |
XML 문서 전체가 메모리로 올라가 객체 모델로 생성 |
W3C 공식 표준으로, W3C에서 표준화된 API들의 기반 | |
조직화 되어 있어 문서 요소를 임의적으로 접근 및 사용하기 적합 | |
논리 구조가 통으로 업로드 되어 메모리 부족 발생 가능 | |
SAX |
XML 문서를 애플리케이션에서 사용하기 위한 파서 |
DOM에 비해 저수준의 인터페이스, 데이터 내용 조직 기능은 미흡 | |
처리해야 할 파일이 클 때 용이함 ( 대용량 비휘발성 저장공간에 SAX로 입력 후, 해당 공간에서 데이터를 조작하는 방식) |
|
이벤트 기반 처리방식 ( XML 구조에 따라 이벤트 발생 시, 이벤트 핸들러 작성을 통해 필요한 데이터 추출이 가능 ) |
|
내결함성을 이용하여 일부 손상된 XML 읽기 및 처리 가능 |
- 위의 두 Parser는 실제 구현체가 아닌 인터페이스 수준으로 정의되어 있어
프로그래밍 언어 또는 플랫폼 별로 실제 사용법이 상이할 수 있다. - XML 초기 당시에는 기본 구조화된 데이터를 읽는 API 보다
훨씬 복잡한 형태의 구조화된 데이터를 읽고 쓰는데 XML이 편리한 점을 이용해 널리 퍼졌다. - 현재는 웹 관련 한정으로 JSON이 많이 쓰이고 있는 추세이다.
그렇다면 JSON은 무엇일까?
JSON은 다음 포스팅에서 이어 알아보도록 한다.
참고:
[XML]
[Parser]