본문 바로가기
PROGRAM/XML

[본문스크랩] [XML 강좌] 8. Valid Documents란 무엇인가?

by 반화넬 2008. 1. 22.
반응형
[XML 강좌] 8. Valid Documents란 무엇인가?
김은중
2002/04/22
우리는 지금까지‘Well-Formed Documents'에 대해 알아보았다. W3C가 표준화한 스펙에 맞는다면 우리는 그 문서를 'XML Documents'라고 하며, 또 다른 말로 ‘Well-Formed Documents'라 부른다.

그런데 앞 부분에서 XML이 무엇인지를 거론할 때 XML을 간단히 표현하면 '업종별 표준화가 되게 하기 위한 문서의 저장형태’라고 지칭했던 것을 기억할 것이다. 그러면 과연 업종별 표준화 문서가 되기 위해서 XML이 지정한 스펙에만 맞는다면 그 문서는 표준화되었다고 할 수 있을까?

다른 예를 들어보려고 한다.

우리는 지금 아리바(Ariba)나 커머스원(Commerce one) 같은 세계적 유수의 MP(MarketPlace) 업체를 운영하고 있다고 가정한다. 우리의 상품 카달로그(Catalog)에 상품을 게재하고자하는 업체는 하루에도 수 백 혹은 수 천여 개의 업체가 희망을 하고 있다.

카달로그에 올려놓을 상품을 XML의 스펙 에만 맞추어서 우리회사로 전송을 하면 그들이 보낸 정보가 ‘Well-Formed 한가?’를 조사해봐서 그렇다면 그들을 우리의 시스템에 올려주고 있다.
 


어느 날 A, B, C 등 3개의 회사에서 전자제품을 우리의 MP에 올려놓으려고 자료를 전송해 주었다.


A사의 제품내역


B사의 제품내역


C사의 제품내역


앞의 그림을 보면 언뜻 보아도 3개의 회사가 보낸 상품의 정보가 상당히 다름을 알 수 있다. 그러나 이 그림만 보아서는 이들이 ‘Well-Formed Documents'인지 아닌지도 알 수 없고, 역시 ’Valid Documents'인지 아닌지도 알 수 없다. 그래서 이들이 보낸 XML파일을 열어 보았다.

 

A사의 제품 내역
<제품정보>
<제품>
<제품개발회사>A사</제품개발회사>
<제품명>삼성전자렌지 RE-21C</제품명>
<상품코드>11030100019</상품코드>
<배송업체>HTH</배송업체>
<판매가격>124,000원</판매가격>
<게시일>
<연도>2001</연도>
<월>5</월>
<일>15</일>
</게시일>
</제품>
</제품정보>

B사의 제품 내역
<제품정보>
<제품>
<제조회사>B사</제조회사>
<제품명>드럼세탁기 (WD-870S)</제품명>
<상품코드>296989</상품코드>
<판매가>869,000원</판매가>
<게시희망일>2001-5-15</게시희망일>
</제품>
</제품정보>

C사의 제품 내역
<상품내역>
<상품>
<제조사>C사</제조사>
<제품명>뉴명품 식기세척기</제품명>
<코드번호>8538902</코드번호>
<판매가>599,000원</판매가>
<제품게시일>2001년 5월 15일</제품게시일>
<할부>10개월 무이자할부</할부>
</상품>
</상품내역>

3개사에서 우리에게 보낸 컨텐츠는 모두 비슷비슷하다. 그리고 세 파일 모두 ‘Well-Formed Documents'이다. 그런데 중요한 것은 비슷하다는 것이 아니라 3개사가 모두 동일한 자료의 형태를 취하고 있냐는 것이다.

단적인 예로 회사명을 기록하는 태그만 보아도 A사는 <제품개발회사>, B사는 <제조회사>, C사는 <제조사>란 다 다른 엘리먼트 태그를 사용하고 있다. 이 외에도 앞의 파일을 보면 유사한 듯 하지만, 표준화되게 사용하기에는 너무나 많은 문제를 가지고 있다.

물론 MP를 운영할 우리가 마음이 좋고 시간이 넉넉한 사람들이라면 A사의 제품내역이 오면 A사의 문서를 읽고 그것에 맞는 처리를 해주고, B사의 제품내역이 들어오면 B사의 문서를 읽고 그것에 맞는 처리를 해주고 또 C사도 마찬가지 동일하게 처리해 주면 된다. 좋다.

그렇다면 우리가 가정하기를 하루에 수 천여 개의 업체가 신상품을 우리 MP에 올릴려고 하고 있다고 했는데 그들의 제품내역으로 들어오는 XML파일이 모두 제각각 일텐데 그 요청을 매 회사마다 다 일일이 보고 처리해 줄 것인가? 그래서 어쩔 수 없이 표준이 나와야 한다.

그럼 A사와 B사, C사 중에 어떤 문서를 표준으로 채택할 것인가?

물론 이것은 동전을 던지기로 결정할 수도 있을 것이다.(아님, 어렸을 때 침을 튀겨서

 


가는 쪽^^) 그러나 만약 저에게 표준을 택할 권한을 준다면 A사를 택하지도 B사를 택하지도 또 C사를 택하지도 않을 것이다. 왜냐하면 어차피 우리 MP가 유명한 MP라서 많은 업체가 우리쪽에 제품을 올릴려고 노력중이라면 굳이 내가 그들에게 맞출필요는 없는 것이다.

힘은 우리에게 있고 A사나 B사, C사가 모두 굳이 우리 MP에 제품을 올리려고 한다면 내가 그들의 문서에 맞춰주는 것이 아니라 내가 문서의 형태를 정의하고 그들이 내가 정의한 형태에 맞춰서 문서를 만드는 것이 표준화되는 데 가장 빠르고 편리할 것이기 때문이다.

XML을 실무에서 활용을 할려면 Well-Formed 보다 더 중요한 것이 있는 데 이것이 바로 굵은 글씨로 표현된 문서 형태 정의라는 것이다. 어차피 표준이라는 것이 정해지면 그것에 맞게 따르는 사람은 살아남는 것이고, 그 표준에 따르지 못하면 도태되는 것이기 때문이다.

그래서 XML에서는 ‘문서 형태 정의(DTD: Document Type Definition)’라는 것이 발생하게 되는 데 이를 DTD라고 한다. DTD가 왜 나오게 되었으며 왜 중요한 가를 이해가 되었을까? 이렇게 해서 업계 혹은 업종별로 표준화가 된 문서를 Valid Documents라고 한다. @

 

출처 : ZDNet Korea

반응형