1.1 XML이란?

|




1. XML 이란?

  참으로 오래간만에 사이트를 다시 열었네요.. 예전의 xmlis.pe.kr로 운영했었는데 사정상 이 사이트로 바꾸게 되었습니다. 지난번보다는 좀더 나은 강좌로 여러분을 찾아가고자 합니다. 그럼, 부족하지만 함 시작해 보기로 하겠습니다.

 

  이제는 SQL-2000은 보편화되어 많이 사용되고 있습니다. SQL-2000은 DB 차원에서 XML을 지원하기 시작한 거였죠.. 물론 그전에도 타미노나 엑서스였던가요? XML에서 출발한 DB는 있었지만-.- 그런데 얼마전 Oracle XML DB도 발표되었습니다. 자료를 보셨는지 모르겠군요.. 아마도 OTN 사이트에 가면 있을 겁니다.

 

  어쨌거나 XML은 1998년 2월 W3C에서 첨 XML 표준을 발표한 이래 정말 꾸준히 발전하면서 세인들의 관심을 끌어오고 있습니다. 엄청난 영향력인 셈이죠.. 아마도 이 사이트를 찾으신 분들도 그런 영향을 받지 않았을까 싶네요..

 

  우연찮게 저는 1998년 말부터 XML을 접하게 되었습니다. 그래서 XParser라는 XML파서도 개발하였구요. 각종 XML관련된 일을 하게 되었지요. 엥~~ 왠 지자랑!!

그래서 제가 알고 있는 조그마한 지식이나마 첨으로 XML을 시작하는 분들에게 도움을 줄 수 있으면~ 하네요.

 

에궁.. 서론이 넘 길었죠.. 자 이제부터 저랑 함께 XML의 세계로 접근해 보자구요!!

 

XML이 왜 필요하게 되었을까요?

 

웹에서 사용하기에 HTML은 지금도 잘 쓰이고 있습니다. 그죠.. 거기에 자바스크립트, DHTML, CGI, ASP, PHP...

을 통해서 이제는 동적인 페이지의 구성도 가능하죠.. 하지만 그 이면에는 우리도 느끼지 못하는 문제점이 있네요.

 

첫째로 NT-IIS-ASP-MSSQL, LINUX-Apache-PHP-MySQL 무얼 말하려는지 눈치 채셨나요?

바로 호환성입니다. 여기에 지금은 그나마 나아졌지만 초기에 IE와 넷스케이프의 호환도 엄청난 문제였죠.

즉, 정적인 HTML의 기능을 보완하다 보니 각 스크립트, 제품별로 상호호환이 안되는 거죠.

 

둘째로는 홈페이지를 새롭게 개편한다고 해보죠.. 디자인이 바뀌면 HTML페이지의 내용이 모두 바꿉니다.

그죠.. 물론 텍스트니까 복사&붙여넣기를 사용한다고 해도 넘 불편하죠..

즉, 디자인 부분만 바뀌면 되는데,, 데이터부분도 바꾸어야 하는 거죠..

 

셋째로 만약 악보를 웹에서 표현하고 싶다면 어떻게 할까요? 이미지로 그려야겠죠.. 그럼 그 그림을 다른 사람에게 보내면

그 사람이 그 악보를 해석해 낼 수 있을까요? 당연히 하죠.. 사람인데..

하지만 컴퓨터는 해석할 수 없죠... 이미지 프로세싱도 아니고 그림에서 어디가 '도''레''미'인지 컴퓨터가 어찌 알겠습니까?

 

이런걸 XML로 해결할 수 있다는 겁니다.

 

여기에서 잠시만 뻘소리를 좀 하자면, 제가 이렇게 막 XML이 좋다고 설명을 하면 마치 XML을 만병통치약 정도로 생각하는 사람들이 있습니다.

죄송하지만 아직 XML은 만들어지고 있는 언어입니다. 즉, 이론은 모두 나와 있지만 실제로는 제한된 부분만 구현이 되고 있습니다.

아마도 2~3년 내에는 실제로 모든 구현도 이루어 질수 있으리라고는 보지만,, 지금은 일단 추세를 따라가 주는 것이 중요할 듯합니다.

잠시.. 헛소리였습니다... 지송함다..

 

그렇다고 이러한 표준이 XML이 먼저는 아니었습니다. 아실분은 다 아시죠.. SGML(표준화된 일반 마크업 언어)라구요..

SGML은 실제로 정부 기관에서 많이 사용되었습니다. 하지만 넘 덩치가 큰 표준이었고요..

웹이 발달하기 이전에 나온 것이라 웹에 대한 지원이 미약했습니다. 하지만 이것이 바로 XML의 부모인 셈이죠..

XML은 SGML에서 사용되는 많은 기술들을 받아들여서 간소화하고 보완하면서 현재 발전해 나가고 있습니다.

아래 그림을 그걸 간단히 보여주고 있습니다.

                           <그림 : SGML과 XML의 관계>

 

자 이제 정리 해 보도록 하죠... 하~~ 역시 말로만 설명하는 건 넘 어렵죠.. 걱정 마세요. 담부터는 예제 중심으로 설명하도록 하죠.

지도 힘드네요.. 말도 잘 못하는 것이 주저리주저리 타이핑하려니 장난이 아니군요.. T__T

 

XML의 장점이 뭐죠?

 

1. 문서의 내용과 디자인이 완전히 분리 되어 있다는 겁니다. 즉, 문서의 구조와 프리젠테이션의 분리라 할 수 있죠.

문서의 구조는 XML문서를 통해서 트리구조의 구조적인 형태로 나타냅니다. 그리고 출력, 포매팅은 XSL 문서를 통해서 나타낼 수 있습니다.

   

2. 다양한 방식의 링크 기능을 제공합니다. XLink, XPointer를 이용하면 기존 HTML에서 이용하던 하이퍼링크 이상의 기능을 발휘할 수 있습니다.

자세한 내용은 강좌를 진행하면서 설명하도록 하죠.

 

3. 표준화된 DTD를 통해서 모든 분야에서 사용이 가능합니다. 요즘 많이 사용되는 WML, SMIL, SVG등이 모두 XML에 기반을 둔

언어입니다. 이것은 XML의 DTD를 선언하고 모든 사용자가 그 규칙에 맞추어 사용하면 컴퓨터나 사람이 모두 해석할 수 있는 메타 언어가 된다는 거죠.

 

야.. 갑작스럽게 어려운 용어가 많이 나왔네요.. 이론... 머리가 어지럽네요.. 앞으로 차근차근 제가 아는 것만큼 설명해 드리도록 하죠..

 

XML 문서의 구조와 포매팅의 구분

 

여기서는 참고로 XML의 구조와 포매팅의 분리에 대해서 설명을 좀 더 할까 합니다.

자동차를 하나 예로 들어서 설명을 해보죠.. 자동차 음~~ 현대 아반테의 엔진에 대한 설명서를 XML문서로 하나 가지고 있다고 해보죠.

 

그렇다면 지금 XML 문서는 준비가 되어 있는 겁니다. 그리고 포매팅을 할 수 있는 것이 없는 상태죠.

차 엔진 설명서에는 XML 형태로 아반테의 엔진에 대한 모든 내용이 포함되어 있습니다.

 

아반테를 생산하는 공장에서는 엔진을 조립하는 방법이 필요합니다.

그리고 차를 수리하는 카센타와 같은 곳에서는 엔진이 고장났을 때 수리하는 방법이 필요합니다.

마지막으로 차량 구입자에게는 아반테 엔진을 사용하는 방법의 설명서가 필요합니다.

 

이런걸 기존의 미디어라면 모두 각각 만들어야 합니다.

하지만 XML이라면 포매팅만 새롭게 해주면 기존의 XML문서를 이용하여 모두 만들어 낼 수 있습니다.

XML이라는 것이 좀더 매력으로 느껴지지 않으세요?? 안그런가? 쩝... 어쨌던~~

 

어떻게 그럴수 있을까요?? XSLT라고요.. XML을 변환하는 것에 대한 표준안이 W3C에서 이미 발표된 상태입니다.

각 벤더들이 그에 대한 솔루션을 각각 발표하겠죠..

 

또한 이 XSLT를 이용하면 다른 미디어로도 출판이 가능하다고 합니다.

즉, 위의 아반테 엔진을......

 

CD-ROM 버전으로 출판할 수 있구요.

웹에서 사용할 수 있는 형태로 출판할 수도 있구요..

요즘 많이 사용되는 PDA에서 사용할 있도록 나타낼 수도 있답니다.

 

실제로 제가 본 것은요.. XSL의 포매팅 객체 (Formatting Object)를 이용해서 PDF파일(아크로뱃리더)형식과 HTML과 WAP의

3가지 형태로 출력하는 외국의 사이트를 본적이 있네요.. (http://www.renderx.com/)

 

이제는 이런 형태의 XML이용이 점차 보편화 되고 있는 추세죠..

 

첫 강좌는 여기까집니다. 휴~~ 그럼.......   2002/08/01  From 미니

2002/08/01 - [XML Developer/XML기초] - 1.1 XML이란?
2002/08/02 - [XML Developer/XML기초] - 1.2 XML의 시작
2002/08/02 - [XML Developer/XML기초] - 1.3 XML의 구성 요소
2002/08/02 - [XML Developer/XML기초] - 1.4 DTD란?
2002/08/02 - [XML Developer/XML기초] - 1.5 XML & DTD
2002/08/02 - [XML Developer/XML기초] - 1.6 XSL & XML
2002/08/02 - [XML Developer/XML기초] - 1.7 마치면서

 

신고

'XML Developer > XML기초' 카테고리의 다른 글

1.6 XSL & XML  (0) 2002.08.02
1.5 XML & DTD  (0) 2002.08.02
1.4 DTD란?  (0) 2002.08.02
1.3 XML의 구성 요소  (0) 2002.08.02
1.2 XML의 시작  (0) 2002.08.02
1.1 XML이란?  (0) 2002.08.01



Trackback 0 And Comment 0