XML 기본과 자바를 이용한 XML 처리 과정_ JAXP,SAX,DOM

                                                                                고 범 석 교수님

우리 앞에 'XML'이란 기술이 등장한 지도 벌써 10년이 넘어섰습니다. 몇 살 연상의 '자바' 기술이 그러하듯 비교적 짧은 역사에도 불구하고 XML은 현재 컴퓨터 산업 분야에서 가장 많은 관심을 끌고 있는 기술 중의 하나입니다.

XML은 'Extensible Markup Language'의 약자로 대략 '확장 가능한 마크업 언어' 정도로 직역될 수 있을 것입니다.
여기서 '확장 가능'이란 '기존에 없던 것을 새로 만들 수 있다'는 것이고, '마크업 언어'란 문서의 내용을 구체적으로 전달하기 위한 추가적인 정보 표시 언어를 말합니다. 즉, XML이란 '기존에 없던 것을 새로 만들 수 있는 마크업 언어' 정도의 뜻이 됩니다.

실제로 XML은 새로운 마크업 언어를 개발하여 응용 프로그램 간의 데이터 전달 수단으로 사용될 수 있도록 하는 메타 언어(Meta Language, 어떤 언어를 기술하는 언어)입니다.

메타 언어의 대표적인 예로 SGML(Standard Generalized Markup Language)이 있습니다. 그리고 SGML로 개발된 웹 문서 작성용 마크업 언어가 바로 HTML(HyperText Markup Language)입니다.
잘 알려져 있듯이 HTML은 W3C(World Wide Web Consortium)에서 정의한 마크업 언어로 웹 서버에서 웹 클라이언트(브라우저)로 정보를 전달하기 위해서 개발된 것입니다. 하지만 웹 브라우저에서 HTML 문서가 보여지기 위해서는 이미 약속된(정해진) HTML 태그만을 이용해야 하며, 문서 작성자가 임의로 태그를 만들어 사용할 수는 없습니다.

XML은 SGML과 같은 메타 언어이기에 HTML과 같은 다양한 마크업 언어를 만들어 낼 수 있는 언어인 것입니다. 일례로 흔히 HTML의 후속 버전처럼 인식되고 있는 XHTML도 XML로 만든 마크업 언어입니다.

이러한 XML을 사용하면 간단한 텍스트 기반의 포맷으로 구조적인 정보(문서, 데이터, 구성, 도서, 거래, 송장 등)를 나타낼 수 있기 때문에, XML은 오늘날 응용 프로그램 간의 정보 교환의 수단으로 가장 널리 사용되는 형식 중의 하나가 되었습니다.
또한 플랫폼과 응용 프로그램 구현 언어에 독립적으로 사용될 수 있다는 큰 장점 때문에 운영 시스템, 네트워크 프로토콜, 프로그래밍 언어, 데이터베이스, 클라이언트 응용 프로그램 및 서버 응용 프로그램, 웹 서비스 등 다양한 분야에서 기본 기술로 자리 매김하고 있습니다.
현재의 XML의 광범위한 활용 모습은 최초 W3C의 XML 규격에서 제시되었던 XML 설계 목표(design goals for XML, 아래 참고1)와도 잘 맞아 떨어지는 당연한 결과인 듯 싶습니다.

이렇듯 현재의 IT 개발자라면 필연적으로 만날 수 밖에 없는 기술인 XML이지만, 이를 새로이 접하게 되는 경우 사실 무엇부터 어떻게 준비하고 공부해야 할 지 막막하고 난감할 것입니다. 게다가 Namespace, DTD, XML Schema, CSS, XSLT, SAX, DOM 등과 같은 용어들은 대부분 생소하기만 하고 어렵게도 느껴질 것입니다.


한국 썬 교육센터의 'XML 기본과 자바를 이용한 XML 처리 과정 (SL-024)'은 기존 자바 개발자들을 위한 과정으로, XML 관련 주요 핵심 기술과 자바 기반 플랫폼에서 XML을 활용하기 위한 기본 기술을 학습할 수 있는 과정입니다.

사실 본 과정은 원래 별개의 과정으로 존재하는 'Introduction to XML'과 'Managing XML with the Java Platform'의 두 과정을 우리나라 교육 실정에 맞춰 일주일 간 함께 진행되도록 변경한 맞춤형 과정입니다. (아래 참고2)

먼저 앞 과정인 'Introduction to XML (DTX-110)'에서는 마크업의 개념으로부터 출발하여 XML의 특징 및 응용 분야 등을 소개하고, XML의 주요 핵심 기술들을 학습하게 됩니다.

잘 짜여진 XML 문서(well-formed document)가 되기 위해서는 반드시 지켜야 할 기본 규칙이 있으며, 나아가 유효한 문서(valid document)가 되기 위해서는 문서의 구조를 잘 따르고 있어야 할 것입니다. 이를 위해서 XML 문서의 구조를 정의하는 DTD(Document Type Definition)와 XML Schema를 이해하고 작성할 수 있어야 합니다.

XML 문서는 그 자체로써 구조적인 정보의 역할은 가능하지만 그 내용을 어떻게 표현해야 하는 지에 대해서는 정해진 규칙이 없습니다.
이러한 표현 작업을 위해 필요한 표현 규칙을 담고 있는 것을 흔히 스타일 시트(Style Sheet)라고 하며, XML에 적용할 수 있는 스타일 시트 기술에는 CSS(Cascading Style Sheet)와 XSL(eXtensible Stylesheet Language) 등이 있습니다.
CSS를 사용해 웹 브라우저를 통한 XML 문서의 표현 방법을 배우며, XSLT(eXtensible Stylesheet Language Transformations)와 XPath(XML Path Language) 기술을 사용해 XML 문서를 HTML이나 XML, 또는 기타 TEXT 문서로 변환할 수 있는 기술을 습득할 수 있습니다.

두 번째 과정인 'Managing XML with the Java Platform (SL-385)'을 통해서는 자바 응용 프로그램에서 XML을 처리하고 활용할 수 있는 방법에 대해 학습합니다.

앞서 보았듯 XML은 이식성 있는 데이터(portable data)가 될 수 있으며, 자바 기술은 이식성 있는 코드(portable code)를 제공할 수 있습니다.
따라서 XML과 자바 기술이 함께 사용된다면 환상의 궁합이며, 인터넷과 웹 기반의 어플리케이션을 위한 최적의 솔루션이 될 수 있을 것입니다.
 
이를 위해서는 응용 프로그램에서 XML 문서를 분석하고 처리할 수 있는 방법이 필요할 것입니다. 이러한 방법(parsing)에 대한 표준이 바로 SAX(Simple API for XML)와 DOM(Document Object Model)입니다. SAX와 DOM 인터페이스 규격은 언어에 독립적이기 때문에 이를 자바로 구현하는 것 역시 가능합니다. 또한 응용 프로그램에서는 XSLT 기술을 활용한 XML 문서의 변환 작업도 필요할 것입니다.

이러한 일련의 처리 작업(SAX, DOM, XSLT 등)이 가능하도록 제공되는 자바 표준 API가 바로 JAXP(Java API for XML Processing)입니다.
JAXP를 활용함으로써 우리는 XML을 사용하는 자바 응용 프로그램을 어렵지 않게 작성할 수 있게 됩니다.
 
 
XML 문서는 전자 상거래 뿐만 아니라 제조 산업, 의약, 출판, 학술 분야를 막론하고 두루 사용되고 있으며, 그 활용 분야를 더욱 확대해 가고 있습니다. 또한 기업과 기업 간(B2B), 기업과 정부 행정기관 간(B2G), 기업과 소비자 간(B2C)에도 XML 문서를 기반으로 하는 많은 응용 프로그램과 사이트가 구축되고 있습니다. XML의 핵심은 바로 시스템의 통합입니다. 시스템의 통합이 필요한 곳이라면 어디서든 XML 기술이 적용될 수 있습니다.

이와 같이 XML이 제공하는 잠재적인 가능성은 무궁무진합니다. XML과 관련된 응용 기술 또한 쉽게 나열할 수 없을 정도로 방대합니다.
 
본 과정은 이렇듯 방대한 XML 기술에 입문하려는 개발자나 XML의 깊이 있는 사용을 원하는 자바 개발자 모두에게 좋은 입문 과정의 역할을 충실히 수행할 것으로 기대합니다.


(참고1) XML 설계 목표 (The design goals for XML)
 1. XML은 인터넷에서 바로 사용할 수 있어야 한다. (XML shall be straightforwardly usable over the Internet.)
 2. XML은 다양한 어플리케이션을 폭넓게 지원해야 한다. (XML shall support a wide variety of applications.)
 3. XML은 SGML과 호환되어야 한다. (XML shall be compatible with SGML.)
 4. XML 문서를 처리하는 프로그램을 작성하는 것이 쉬워야 한다. (It shall be easy to write programs which process XML documents.)
 5. XML의 부가적인 기능은 가능한 최소화되어야 한다. (The number of optional features in XML is to be kept to the absolute minimum, ideally zero.)
 6. XML 문서는 사람이 읽기 쉽고 명확해야 한다. (XML documents should be human-legible and reasonably clear.)
 7. XML 디자인은 빠르게 이루어져야 한다. (The XML design should be prepared quickly.)
 8. XML의 디자인은 격식 있고 간결해야 한다. (The design of XML shall be formal and concise.)
 9. XML 문서는 작성하기 쉬워야 한다. (XML documents shall be easy to create.)
10. XML 마크업의 간결함은 크게 중요하지 않다. (Terseness in XML markup is of minimal importance.)
 
 
(참고2) 과정 소개와 내용 목차
 1. Introduction to XML (DTX-110)
http://www.sun.com/training/catalog/courses/DTX-110.xml

 - Course Content -
Module 1 - Introducing XML
Module 2 - Using XML
Module 3 - Creating DTDs and Validating Documents
Module 4 - Using CSS With HTML and XML
Module 5 - Transforming With XSLT
Module 6 - Transforming With XSLT and Basic XPath
Module 7 - Using XML Schemas
Module 8 - Reviewing Current XML Standards

 2. Managing XML with the Java Platform (SL-385)
http://www.sun.com/training/catalog/courses/SL-385.xml
 
 - Course Content -
Module 1 - Overview of XML and JAXP
Module 2 - SAX Programming Basics
Module 3 - XML Using DTDs
Module 4 - DOM Programming Basics
Module 5 - More on DOM
Module 6 - Introduction to XSLT
Module 7 - XML Applications and Java Technology
Module 8 - XML Application Issues, Future Work, and Products


> XML 기본과 자바를 이용한 XML 처리 과정_ JAXP,SAX,DOM
(강의장소: 삼성동 썬교육장)
2009/11/25 14:42 2009/11/25 14:42
TAG , ,

TRACKBACK :: http://blog.sdnkorea.com/sls/trackback/202

댓글을 달아 주세요

[로그인][오픈아이디란?]

◀ Prev 1 2 3 4 5 6 7 8  ... 187  Next ▶