자유롭게 게시물을 올릴수있는 게시판입니다.
  • 유년추억
  • 학교생활
  • 입시준비
  • 대학생활
  • 군생활
  • 알바생활
  • 취업준비
  • 직장생활
  • 원룸생활
  • 연애중
  • 결혼준비
  • 집안살림
  • 자녀교육
  • 창업준비
  • 이민유학
  • 노후생활
  • 전체보기


XML 기술 및 표준화 동향

 

XML 기술 및 표준화 동향




이준섭* 구경철** 송기평*** 박기식****


최근 HTML(Hyper Text Markup Language)을 기본으로 하는 웹의 급격한 확산과 응용프로그램이 웹을 기반으로 하는 분산 환경으로 이동함에 따라 어플리케이션에서 사용될 수 있는 자료 구조로서의 데이터와 HTML의 장점을 모두 갖춘 새로운 형태인 XML(eXtensible Markup Language)이 출현하게 되었다. 본 고에서는 XML의 소개 및 출현 배경과 XML을 사용함으로써 얻을 수 있는 장점, XML 관련 어플리케이션, 표준화 현황 및 시장 동향을 살펴 보고자 한다. ▒



I. 서 론


eXtensible Markup Language는 뜻 그대로 사용자가 원하는 형태로 확장이 가능한 메타 언어(Meta Language)이다. 즉, 사용자가 원하는 용도에 맞도록 적당한 태그 세트(Tag Set)를 정의함으로써 문서 구조 및 표현하고자 하는 정보를 정확하게 기술할 수 있는 언어로, W3C(World Wide Web Consortium)에서 표준화를 진행하여 1996년에 권고(Recommendation)로 발표되었다.


XML은 SGML(ISO 8879:1986 “Information Processing-Text and Office Systems-Standard Generalized Markup Language)에 그 기반을 두고 있으며, 특정 소프트웨어에 제한되지 않는 문서를 제작할 수 있도록 마크업(Markup)을 이용하여 문서의 구조, 데이터, 포맷팅 정보를 기술하는 것이다. SGML은 DTD(Document Type Definition)를 통하여 사용자에게 원하는 문서의 형식을 정의할 수 있는 기능을 부여하는 메타 언어이며, 정보 제공자가 자신이 전달하고자 하는 정보를 위해 자신만의 구조를 정의할 수 있는 기능을 제공한다. 그러나 SGML은 규모가 크고 인터넷에서 사용하기에 적합하지 못하다는 단점을 가지고 있다.


SGML의 어플리케이션으로 개발된 HTML이 등장하였고 간단하고 배우기 쉽다는 장점으로 인하여 웹의 보급 및 성공에 많은 역할을 하였다. 그러나 HTML은 확장이 불가능하기 때문에 점점 복잡화 되어가는 사용자의 요구를 수용하는 데는 많은 한계가 있다. 이에 SGML의 확장성 및 구조화 정보 표현의 강점과 HTML의 간결함과 인터넷에서 사용 가능하다는 장점을 갖춘 새로운 마크업의 개발이 필요하게 되었고, 그 결과 XML이 등장하게 되었다.


XML이 가지는 특징은 GML(Generic Markup Language)을 지원하고, 웹에서 사용이 가능하며, 하이퍼링킹(hyper linking)과 스타일시트(style sheets)를 지원한다는 것이다. XML은 확장성과 인터넷을 지원한다는 장점으로 인하여 많은 분야에서 문서의 교환을 위한 표준으로 자리잡아 가고 있다.


이미 XML을 바탕으로 화학 실험 과정이나 결과를 표현하기 위한 CML(Chemical Markup Language)이라든가 공학적이거나 기술적인 용어와 표현이 필수적인 문서를 위한 TecML(Technical Markup Language), 웹에서 악보를 다루기 위한 마크업 언어, 세익스피어 희곡을 묘사하기 위한 마크업 언어 등이 작성되어 있다.


본 고에서는 XML 및 관련 기술을 소개하고, 표준화 동향을 살펴보고자 한다.



II. XML의 개요



1. XML의 예


XML의 권고 규격은 A4용지 35쪽 분량의 적은 규모에서 볼 수 있듯이 간단하고 사용하기 쉽도록 만들어져 있다. 또한 관련된 다른 규격들을 함께 활용하면 아주 복잡하고 다양한 기능을 수행할 수 있다. 본 절에서는 기본적인 XML 문서의 예와 구성요소를 살펴보고자 한다.



(그림 1)은 간단한 XML 문서를 Microsoft사의 Internet Explorer 5.0브라우저에 내장된 기본 스타일시트를 이용하여 브라우징 한 모습이다.


그림에서 보는 바와 같이 XML 문서는 몇 개의 태그와 속성, 속성 값으로 이루어 지며, 시작 태그와 종료 태그 사이에 사용자의 데이터가 위치하게 된다. 태그의 이름은 사용자가 임의로 정의할 수 있으며, <?XML version=“1.0” Encoding=“EUK-KR”?>와 같은 처리 지시자(Processing Instruction)를 사용하면 태그 이름을 한글로 정의 할 수도 있다.




2. XML의 장점


XML 기술이 중요한 이슈로 대두되고 있는 이유는 다음의 세가지로 생각해 볼 수 있다.[1] 첫째로, 지능적인 에이전트의 구현이 가능해 진다는 것이다. 응용프로그램이 데이터를 처리할 때 사용되는 데이터가 어떤 구조로 되어 있으며 의미가 무엇인지를 알고 있는 에이전트라면 보다 효과적인 처리가 가능할 것이다. 둘째로, 효율적인 검색이 가능해 진다. (그림 2)와 같이 데이터 중에서 ‘chip’을 찾고자 할 때, 기존의 HTML 문서는 사람 이름, 쿠키, 반도체 칩을 구별해 낼 수 없다. 그러나 XML 문서를 사용하는 경우에는 사용자가 정의한 <first-name> 태그 등을 이용하여 정확하게 원하는 정보를 찾을 수 있다. 웹에서 제공되는 정보들을 XML 문서로 작성하면 웹을 통한 검색이 보다 정확하고 효율적인 서비스로 발전할 수 있다. 셋째로, CALS와 같은 비즈니스와 비즈니스 간의 정보 교환이 가능해진다. 서로 다른 응용프로그램과 데이터 구조를 사용하는 기업들이 고유의 응용프로그램을 사용하여 만들어진 데이터를 XML로 변환하여 전송하고, 수신하는 쪽에서 다시 XML 문서를 자신들이 사용하는 응용프로그램에 맞는 형태의 데이터로 변환함으로써, 모든 기업이 상대방 기업에서 사용하는 응용프로그램과 데이터 구조에 상관없이 데이터를 교환할 수 있게 된다.



XML을 사용함으로써 얻을 수 있는 장점을 살펴 보면, 우선 응용프로그램의 개발에 있어 상호 운용성(Interoperability) 확보 및 유지 보수(Maintenance)의 편리성을 들 수 있다. XML은 플랫폼에 독립적이기 때문에 새로운 응용프로그램의 개발 시 기반 운영체제나 데이터베이스 시스템을 고려할 필요가 없으며, 데이터의 형태에 변화가 발생하는 경우 응용프로그램에 미치는 영향을 최소화 할 수 있다. 또한 기존의 데이터 시스템과의 호환성 확보가 쉽고, 웹에서 활용가능하기 때문에 현재 개발 및 운영되고 있는 시스템과의 연동이 가능하다. 또 다른 장점으로는 전술한 바와 같이 보다 지능적이고 정확한 검색이 가능하다는 것과 네트워크의 효율성을 들 수 있다. 웹을 기반으로 사용할 경우 기존의 HTML은 페이지의 일부 정보 변경되면 전체 페이지를 다시 전송해야 하지만 XML 문서의 경우에는 변경된 일부분만을 전송할 수 있도록 설계되어 네트워크의 부하를 줄일 수 있다.




3. XML 표준


XML 관련 기술은 W3C에서 표준화를 진행하고 있으며, 몇 개의 관련 표준으로 이루어져 있다. XML 관련 기술은 지금까지 설명한 XML 자체의 표준 이외에 HTML에서 하이퍼링크와 같은 기능을 제공할 수 있도록 하기 위한 XPointer(XML Pointer Language)와 XLink(XML Linking Language), XML 문서를 브라우저 등에 표현하기 위한 XSL(eXtensible Stylesheet Language)등으로 이루어져 있다.


또한 XML을 이용한 응용프로그램의 개발에 필요한 API(Application Programming Interface)로 DOM(Document Object Model)이 있다. 이와 같은 기술의 표준화 현황은 <표 1>과 같다[2].




III. XML의 적용



1. XML의 사용


XML 문서를 사용하기 위해서는 XML 문서와 그 문서의 구조를 정의한 DTD(Document Type Definition), 문서의 외형을 결정하는 XSL 문서가 필요하다. XML을 사용하는 기본적인 과정은 (그림 3)과 같다.



먼저 XML Parser를 사용하여 XML 문서가 정확한가를 검사한다. 여기서 XML 문서는 정의가 정확한 문서와 그렇지 않은 문서로 나뉘어지며, 정의가 정확하지 않은 문서는 XML 문서로써의 가치가 없다. 정확한 문서는 유효한 문서(Valid Document)와 잘 정의된 문서(Well-Formed Document)로 나뉘어 진다. XML 문서는 기본적으로 준수해야 하는 태그에 관련된 규칙이 몇 가지 있으며, 이 규칙을 준수하면서 DTD를 정의하고 있는 경우를 유효한 문서라고 한다. 태그 규칙을 준수 하지만 DTD를 정의하지 않고 있는 문서를 잘 정의된 문서라고 한다. 기본적으로 준수해야 하는 태그 규칙은 최상위 수준의 태그는 반드시 하나만 존재해야 하며, 태그의 중첩이 정확해야 한다는 것이다. 즉, 어떤 요소의 시작 태그와 종료 태그가 서로 다른 요소 내에 위치하지 않아야 한다.


문서의 검증이 완료되면 XML 문서를 사용자에게 보여주기 위해 XSL 문서를 적용하여 외형을 결정하며, 결과가 웹 브라우저나 전용 브라우저에 보여지게 된다.




2. XML 문서의 브라우징


XML의 장점 중 한가지는 XML 문서에 서로 다른 XSL 문서를 적용하여, 다른 형태로 표현할 수 있다는 것이다. 이것은 HTML과는 달리 문서에 문서 자체의 구조 및 데이터만 포함되고 외형을 결정하는 부분이 XSL로 분리 되어 있기 때문이다. HTML의 경우는 사용되는 태그가 문서의 구조를 결정하기 위한 것이 아니라 문서의 외형을 결정하기 위한 것이다. 예를 들어 HTML의 <P>, <BR>, <H1> 등의 태그는 문단의 위치 조정이나 글자의 크기를 지정하는데 사용된다. (그림 4)는 경매 결과 정보를 포함하는 XML 문서에 서로 다른 XSL을 적용하여 브라우징한 모습이다[3].



이와 같은 기능은 XML 문서를 서로 다른 형태의 디스플레이 방식을 갖는 장비에 보여 질 수 있도록 한다. 같은 데이터를 데스크 탑 PC에서는 그래픽 등을 사용하여 보다 많은 정보를 보여주고, 이동전화와 같은 무선 단말기에는 간단한 텍스트 정보만을 보여 줄 수 있도록 할 수 있다.




3. XML을 이용한 프로그래밍


프로그래밍에 XML을 이용하고자 할 때, 용도에 따라 XML 문서를 간단한 텍스트 파일, 이벤트들의 집합, 또는 트리 구조를 갖는 계층적 구조로 간주 할 수 있다[4].


XML 문서를 단수한 텍스트 파일로 보는 경우에는 grep과 같은 유닉스 명령어를 이용하여 문서내의 특정 태그가 몇 번 나오는가를 확인하여 볼 수 있다. 앞장에서 예를 들었던 표준연구센터의 팀원을 정의한 파일을 예로 든다면, “표준연구센터 내에 팀원은 모두 몇 명인가?”하는 문제는 grep ?c “<팀원>” 표준연구센터.xml과 같은 간단한 명령어로 답을 구할 수 있다.


이보다 더 복잡한 기능을 수행하기 위해서는 다른 방법이 필요하며, SAX(Simple API for XML)나 DOM을 이용하는 방법이 있다. SAX는 XML 문서를 이벤트의 집합으로 간주하고, DOM은 계층적 구조로 간주 한다. SAX는 DOM 규격이 완성되기 전에 XML을 이용한 프로그램을 작성하기 위하여 기본적인 기능을 포함하는 간단한 API를 만들기로 합의한 결과로 탄생된 것이다.


SAX는 XML 문서 내에서 문서의 시작이나 특정 태그의 시작 및 종료를 이벤트의 발생으로 간주하고, 특정 이벤트의 발생에 때라 원하는 처리를 하도록 지시할 할 수 있다. SAX를 이용한 처리는 빠르고 간단하며, 적은 메모리를 사용한다는 장점이 있다. 반면 DOM은 SAX에 비해 처리 속도가 느리고 많은 메모리를 필요로 하지만 보다 복잡하고 많은 기능을 수행할 수 있다. 1-패스 방식인 SAX와는 달리 DOM은 2-패스 방식이며, 첫번째 패스에 XML 문서를 분석하여 트리 구조로 메모리에 저장한 후, 두 번째 패스에서 필요한 처리를 할 수 있도록 되어 있다. 따라서 SAX에서는 처리가 불가능한 것을 처리할 수 있다. 예를 들어, 특정 요소의 형제 노드가 몇 개가 있는지 등을 미리 알 수 있다.




4. XML을 이용한 일반적인 처리 흐름


지금까지 소개한 기본적인 사항을 종합하여 XML을 이용한 데이터 처리 절차를 살펴보면 (그림 5)와 같다. 우선 XML은 기반 운영 체계나 데이터베이스 시스템에 독립적이므로 어떠한 데이터 저장 시스템에서도 데이터를 추출하여 사용할 수 있다. 단지 그러한 데이터를 XML 형태의 텍스트 파일로 변환하는 과정을 수행하기만 하면 된다. 데이터베이스에서 데이터를 가져오는 경우 테이블 구조를 표현 할 수 있도록 태그를 추가하여 XML문서로 만들 수 있다. 이렇게 만들어진 XML 문서는 Parser를 이용하여 검증 절차를 거치게 되고, 응용프로그램에서 데이터를 가공하고 처리할 수 있도록 DOM 인터페이스를 사용한다. DOM에서는 우선 XML 문서를 계층적 트리 구조를 갖는 DOM tree로 변환하여 저장한다. 다음 응용프로그램이 생성된 DOM tree를 이용하여 필요한 처리나 연산을 수행한다. 처리가 필요 없는 경우에는 바로 XML 문서를 XSL에 적용하고, 처리를 한 경우에는 결과를 필요한 XSL을 적용하여 사용자에게 전송한다. 이때 처리나 연산을 통해서 문서의 일부가 변경된 경우에 전체 문서를 다시 전송하지 않고, 문서의 일부분만을 전송할 수 있기 때문에 네트워크의 효율을 향상 시킬 수 있다.





5. XML의 응용 분야


XML의 응용 분야는 이루 헤아릴 수 없을 만큼 많다. 크게는 비즈니스와 비즈니스 간의 문서 교환, 효과적인 웹 검색 시스템 구현을 위한 웹 페이지 작성, 전자 출판 등이 있으며, 무선 이동 단말을 이용한 데이터 전송, 전자 백과 사전 등에도 사용될 수 있다.


현재 XML을 활용하고자 하는 가장 중요한 영역으로 출판과 문서 교환 시스템을 들 수 있으며, 출판의 경우 XML 문서에 서로 다른 스타일을 적용함으로써 서로 다른 형태의 인쇄물을 얻을 수 있다. 문서 교환 시스템 영역은 현재 관련 업계나 솔루션 제공 업계들이 가장 관심을 두고 있는 부분으로 궁극적으로 비즈니스와 비즈니스를 통합하는 기능을 제공할 수 있다.



문서 교환 시스템의 메커니즘은 (그림 6)과 같다[5]. 두 회사가 문서를 교환하고자 할 때, 공용 DTD 서버에서 관련 문서에 적용할 수 있는 DTD를 검색, 적용하여 문서를 생성해 내고, 이 문서를 받은 회사 쪽에서는 같은 DTD를 검색하여 문서를 검증하고 자신의 응용프로그램에서 사용할 수 있는 데이터 형태로 변형하여 사용하게 된다. 이러한 방식은 각 회사와 회사간의 정보 교환에 필요한 모든 조합마다 각각의 DTD를 사용하기 보다는 공용 DTD를 한 서버에 보관하고 공유하는 방식을 사용함으로써 보다 효율적인 처리가 가능해 진다.




6. XML과 웹 응용프로그램


현재의 웹 응용프로그램은 서버와 클라이언트간의 상호 작용을 가능하게 하는 수준에 도달해 있다. 향후 XML을 이용하는 웹 응용프로그램의 영역은 XML의 여러 기능으로 인해 보다 확장될 것으로 보인다. 먼저 기업과 기업간의 정보 교환이 가능해 질 것이다. 즉 클라이언트와 서버 뿐만 아니라 서버와 서버의 상호 작용이 가능해 지는 것이다. 데스크탑 PC 뿐만 아니라 휴대 단말이나 휴대용 컴퓨터와의 상호 작용도 가능하게 될 것이다. 또한 서버 측의 구조도 현재의 단순한 2-tier 또는 3-tier에서 벗어나 n-tier의 형태로 발전할 것이다[1].



IV. XML 표준화 동향



1. 표준화 동향


XML과 관련된 표준화는 주로 W3C에서 수행되고 있으며, 비즈니스와 비즈니스 간의 정보 교환을 위한 방법은 OASIS(Organization for the Advancement of Structured Information Standards)[7]에서 연구 및 의견 수렴을 통해 W3C에 표준으로 제시하고 있다. OASIS는 이를 위해 관련 협의체인 XML.org[8]를 구성하여 운영 중에 있다. 한때 Microsoft를 주축으로 같은 기술에 대한 의견 수렴을 위해 BizTalk.org[9]를 결성하여 표준의 분열 양상을 보였지만, Microsoft가 XML.org에 참여하기로 하면서 일단락 되었다.


XML 및 관련 기술들의 표준화 현황은 <표 2>와 같다[6].





2. 브라우저 비교(Microsoft Internet Explorer vs. Netscape Communicator)


1999년 12월 미국 필라델피아에서 열린 Markup Technologies ’99 행사에서 양대 브라우저 업계의 제품에 대한 성능 비교가 있었다. 현재 Netscape사의 Communicator는 XML을 지원하지 않는 반면 Microsoft 사의 Internet Explorer 5.0은 XML 표준의 일부를 지원하고 있다.


Internet Explorer 5.0은 XML 1.0과 호환 가능한 MSXML Parser를 사용하며, XSL과 CSS(Cascading Style Sheets)를 지원한다. 또한 DOM과 Namespace 1.0을 지원하며, W3C의 표준화 현황에 따라 새로운 버전이 나올 때 마다 변경된 표준 및 작업 문서 내용을 반영하고 있다. 2000년도 상반기에 출시될 것으로 알려진 Internet Explorer 5.5는 현재의 기능을 좀더 강화하고 성능을 향상시킬 계획이며, XSLT(XSL Transformations) 및 XPath(XML Path Language), SMIL(Synchronized Multimedia Integration Language)을 지원할 계획이라고 한다.


한편, 2000년 초에 발표를 목표로 여러 개발자들이 공동으로 참여하여 공개적으로 진행하고 있는 Netscape사의 Communicator의 다음 버전인 Mozilla는 James Clark의 Expat Parser를 사용하고, Keith Visco의 XSLT 처리기를 사용한다. 이는 CSS Level 1과 Namespace를 지원하며, CSS Level 2 및 DOM level 1의 일부 및 수학 기호를 표기하기위한 MathML (Mathematical Markup Language)을 지원한다.


Internet Explorer와 Netscape Communicator의 가장 큰 차이는 Internet Explorer는 검증(Validating) Parser를 사용하고 Netscape Communicator는 비검증(Non-Validating) Parser를 사용한다는 것이다주1).



V. 결 론


XML 기술은 몇 개의 표준으로 이루진 것이 아니라 수 많은 관련 표준들이 서로 연관되어 움직이도록 되어 있다. 그러나, 아직까지 XML 자체의 표준을 제외한 다른 표준들은 표준화를 진행 중에 있으며, 진행 속도 또한 매우 느리다. 따라서 관련 기술을 이용한 솔루션을 제공하는 업계의 제품 개발에도 많은 문제가 있다. 최근의 표준화 추세에서 볼 수 있듯이 동시표준화를 실현하지 않고는 결코 시장을 선점 할 수 없다. 즉, 표준을 반영한 제품을 생산하기 위해 표준이 완성되기를 기다리는 것은 결국 시장을 선점할 수 없을 것이다. Microsoft의 Internet Explorer의 경우에는 XML 관련 기술의 표준화 진행됨에 따라 조금씩 그 기술을 최대한 반영하고 있다.


국내에서도 XML 관련 기술 표준화의 중요성 및 필요성을 인식하고, XML 기술의 국내 확산을 위해 관련 기술에 대한 정보 공유의 차원에서 정보의 공유 및 기술 교류를 시도하고 있다. 최근 XML 관련 기술의 표준화의 필요성이 부각되면서 국내에서도 학계와 연구소, 관련 업계를 중심으로 국내 XML 기술 활성화 및 단일화를 위해 협의체 구성을 준비하고 있다. 국내 XML관련 기술의 단일화를 위한 정보 교류가 무엇보다 시급한 과제이며, 이를 위해 기반 환경의 구축 및 제공과 함께 관련 학술대회 등을 활성화 하여야 할 것이다.


XML 기술은 그 활용 범위가 매우 광범위하여 최근 이슈가 되고 있는 이동 인터넷에서 멀티미디어 데이터베이스까지 그 영역이 넓어지고 있다. 또한 웹 어플리케이션 개발에 객체지향 웹[10]의 개념이 등장하고 있으며, 이 개념의 핵심 기술 중에 하나가 XML이다. 그만큼 XML 기술의 중요성이 증가하고 있으며 국내에서도 많은 연구와 노력이 필요할 것이다.


기술적으로는 XML의 처리에 필요한 Parser나 Editor 등의 기본적인 도구 개발이 필요할 것이며, XML 문서 환경에 적응하기 위한 준비과정으로 기존 문서를 XML 문서로 변환하기 위한 각종 Converter의 개발이 필요할 것이다. 또한 문서 교환을 위한 XML DTD의 공유 메커니즘의 연구 및 기반 환경 구축에 관한 연구가 필요할 것이다. Microsoft사의 MS Word에 추가되는 XML 관련 기술을 볼 때, 국내 워드프로세서를 위한 XML 처리 기능의 개발 또한 중요한 과제라 할 수 있다.


<참 고 문 헌>




  1. Introduction to XML, //www-4.ibm.com/software/developer/education/xmlintro/ xmlintro.html



  2. World Wide Web Consortium, //www.w3.org/



  3. XML Developer Center //msdn.microsoft.com/xml/c-frame.htm?953094186124#/xml/ demos/default .asp



  4. Simon North, Paul Hermans 저/노정윤 역, 초보자를 위한 XML 21일 완성, p314~320



  5. Tutorial Booklet, Markup Technologies ’99, Pennsylvania Convention Center, Philadelphia, PA, December 7 ~ 9, 1999



  6. XML-related standards and working drafts, //www.xml.com/pub/stdlist



  7. Organization for the Advancement of Structured Information Standards, //www.oasis-open.org/



  8. XML.org, //www.xml.org/



  9. BizTalk.org, //www.biztalk.org/



  10. 이준섭, 구경철, 송기평, 박기식, “Object Web 관련 기술 표준화 동향”, 주간기술동향 제 941호, 2000, p17-31.




2001-05-06 02:38:39
2152 번 읽음
☞ 로그인 후 의견을 남기실 수 있습니다
 캐시선물





365ch.com 128bit Valid HTML 4.01 Transitional and Valid CSS!
태그