XML (eXtensible Markup Language)


웹 페이지를 구축하는 데 쓰이는 웹 프로그래밍 언어에는 다양한 언어들이 있다.

누구나 한번쯤 들어봤을 법한 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 표현 형태

 

 

 XML 파서(Parser) 종류 

 

종 류

특 징

DOM

XML 문서 전체가 메모리로 올라가 객체 모델로 생성
W3C 공식 표준으로, W3C에서 표준화된 API들의 기반
조직화 되어 있어 문서 요소를 임의적으로 접근 및 사용하기 적합
논리 구조가 통으로 업로드 되어 메모리 부족 발생 가능

SAX

XML 문서를 애플리케이션에서 사용하기 위한 파서
DOM에 비해 저수준의 인터페이스, 데이터 내용 조직 기능은 미흡

처리해야 할 파일이 클 때 용이함

( 대용량 비휘발성 저장공간에 SAX로 입력 후, 해당 공간에서 데이터를 조작하는 방식)

이벤트 기반 처리방식

( XML 구조에 따라 이벤트 발생 시, 이벤트 핸들러 작성을 통해 필요한 데이터 추출이 가능 )

내결함성을 이용하여 일부 손상된 XML 읽기 및 처리 가능
  • 위의 두 Parser는 실제 구현체가 아닌 인터페이스 수준으로 정의되어 있어
    프로그래밍 언어 또는 플랫폼 별로 실제 사용법이 상이할 수 있다.
  • XML 초기 당시에는 기본 구조화된 데이터를 읽는 API 보다
    훨씬 복잡한 형태의 구조화된 데이터를 읽고 쓰는데 XML이 편리한 점을 이용해 널리 퍼졌다.
  • 현재는 웹 관련 한정으로 JSON이 많이 쓰이고 있는 추세이다.

 

 

 

그렇다면 JSON은 무엇일까?

JSON은 다음 포스팅에서 이어 알아보도록 한다.

 

 

 

참고:

[XML]

https://namu.wiki/w/XML#fn-2

https://mommoo.tistory.com/17

[Parser]

https://na27.tistory.com/230

'Knowledge' 카테고리의 다른 글

Garbage Collection ( 쓰레기 수집 )  (0) 2019.09.06
JSON (JavaScript Object Notation)  (0) 2019.09.02
비밀키 / 공개키  (0) 2019.08.31
하드웨어 / 미들웨어 / 소프트웨어  (0) 2019.08.30
소프트웨어 개발 방법론  (0) 2019.08.15