본문 바로가기
PROGRAM/XML

[본문스크랩] [XML 강좌] 2. Extensible이란 무엇인가?

by 반화넬 2008. 1. 22.
반응형
[XML 강좌] 2. Extensible이란 무엇인가?
김은중
2002/04/09
1회에서 언급했듯이 XML은 'Extensible Markup Language'이다. 해석을 한다면 '확장 가능한 마크업 언어'라는 뜻이다. 처음 이 단어를 접하는 독자는 해석을 해놓고도 도대체 이 뜻을 알 수 없을 것이다. '확장 가능한'이라고 하는 데 도대체 무엇이 확장 가능하다는 것일까?

두 번째로 '마크업'이라고 하는데 '마크업'은 무엇일까?

일단 우리는 본격적으로 XML로 들어가기 전에 이 고민부터 해결해야 한다. 모든 문제는 그 근원을 해결하지 않는다면 늘 미봉책을 내놓을 수밖에 없기에 근본을 해결하려는 노력이 필요한 것이다.

일단 두 가지의 문제 중에 Extensible만 먼저 알아본다. 먼저 간단한 아래의 예제를 본다.

<html>

<head><title>학점</title></head>

<body>

<center>수강과목과 학점<br><br>

<table border=1>

<tr>

<td>소프트웨어 공학론</td> <!--과목-->

<td>김은중</td> <!--성명-->

<td>91037835</td> <!--학번-->

<td>92</td> <!--점수-->

<td>A</td> <!--등급-->

</tr>

</table></center></body></html>


위 파일은 우리가 손쉽게 접할 수 있는 HTML 파일이다. 일단 이 파일을 브라우저로 보기 바란다. 위 파일은 HTML을 하루만 공부했다고 하면 누구나 알 수 있는 코드들이다.

다시 위 예제 코드를 보기 바란다.

<td>소프트웨어 공학론</td> <!--과목-->
<td>김은중</td> <!--성명-->
<td>91037835</td> <!--학번-->
<td>92</td> <!--점수-->
<td>A</td> <!--등급-->

위 코드에서 HTML의 문제점을 하나 짚을 수 있다.

과목->성명->학번->점수->등급 순으로 분명 데이터의 구조는 달라지는데 그들을 나타내는 코드는 <td>하나로 동일한 것이다.

즉, 이를 요약해서 말한다면 HTML 코드로는 데이터의 구조를 설명할 수 없고 단지 HTML의 코드는 테이블을 그리고 또 행(row)을 만들며, 열(column)을 만드는 표현 수단에 쓰인다는 것이다.

이제 그렇다면 HTML의 문제점을 알아냈다. 정해진 태그가 있어서 그 태그들을 제외하고 다른 태그들은 사용할 수 가 없으며 정해진 태그들은 표현하는데 쓰인 다는 것이 그들의 단점이다.

그럼 이제 아래의 예를 보도록 한다.

<?xml version="1.0" encoding="euc-kr"?>

<학점>

<과목>소프트웨어 공학론</과목>

<성명>김은중</성명>

<학번>91037835</학번>

<점수>92</점수>

<등급>A</등급>

</학점> 

만약 우리가 '수강과목과 성적'을 알려고 하는 데 HTML로 만들지 않고 위와 같이 XML로 만들었다면 HTML의 문제점을 보완할 수 있을까?

일단 위와 같이 된다면 HTML에서 발생하는 주석을 안 달아도 되고 어떤 사람이 언제 와서 이 문서를 보아도 가독성이 좋아진다는 결론에 이르게 된다.

물론 지금 가독성이나 주석처리 여부를 가지고 HTML과 XML을 비교하자는 것은 아니다. 왜냐하면 가독성이나 주석처리 여부는 XML의 장점 중에 어떡해보면 1%도 안차지 하는 아주 미약한 부분이 될테니 말이다. 그럼에도 불구하고 이 이야기를 하는 것은 눈에 띄는 차이점을 짚고 넘어가고자 하는 것이다.

한 가지 확실하게 달라진 점은 HTML에서는 정해진 태그, 예를 들어서 <body>, <br>, <table>, <td> 이들 밖에 사용할 수 없었는데 위 파일을 보면 전혀 예상하지 않았던 <학점> 이란 태그를 사용하고 있다는 것이다.

여하간 이런 임의의 태그를 내 마음대로 확장해서 사용할 수 있기에 데이터의 구조를 태그만 보아도 알 수 있는 것이다. 따라서 XML은 태그를 마음대로 확장해서 사용할 수 있다는 장점 때문에 문서의 구조를 표현 할 수 있는 것이다.

여기서 우리가 간과하지 말아야할 중요한 키워드가 하나 나오는데 그것이 바로 '확장해서'라는 말이다. 이 '확장해서'라는 말 때문에 Extensible이라는 단어가 나오게 된 것이다.

이제 Extensible이라는 단어가 이해가 되었다면 편안한 마음으로 위 subject.xml을 저장하고 브라우저로 열어보도록 한다.

여러분들이 각자의 화면에서 이 결과를 보면, 많은 분들이 '에게! 이게 뭐야?', '이게 다야?' 하는 반응을 보일 것이다. 화려한 디자인의 신기술일것이라고 생각했던 많은 분들은 실망을 했을 것이다. 그러나 아직 실망은 이르다.

일단 이번 절에서는 위의 결과를 보는 것으로 만족하고 마무리한다. @

 

출처 : ZDNet Korea

반응형