본문 바로가기

학습컨텐츠/XML

XML다루기 - 6. XML 의 장점과 단점

사람들은 다음과 같은 XML의 장점에 열광하고 있습니다.

간편성
호환성

확장성
누구나 알 수 있는 Context 정보

내용과 표현의 분리
데이터의 비교와 연산이 간편

이렇게 주욱 나열해 놓으니 무슨 소리인지 잘 감이 안 오시겠죠. 하나하나 간단히 설명 드리겠습니다.


간편성

일단 간편성이란, XML의 단순한 문법과 형식을 뜻합니다. Tagging과 tree구조라는 것만 잘 알면 XML구조의 전부를 이해했다고도 할 수 있지요. 그리고 XML파일은 텍스트 형식이기 때문에 컴파일도 필요하지 않은 아주 간편한 언어입니다.


호환성

유니코드로 작성되는 텍스트 형식이기 때문에, XML문서는 호환성도 매우 좋습니다. XML문서는 유니코드를 인식하는 모든 운영 체제 상에서 호환성 있는 문서가 됩니다.


확장성

확장성은 HTML언어와 비교하면 쉽게 이해하실 수 있습니다. HTML의 경우 정해져 있는 tag외의 다른 tag를 우리가 정의할 수 없습니다. 하지만 XML은 메타 언어이기 때문에 얼마든지 새로운 tag를 정의해서 사용할 수 있지요. 이것이 XML의 확장성입니다.


누구나 알 수 있는 Context 정보

XML문서는 data와 meta-data가 tag형식으로 동시에 저장됩니다. 따라서 누구나 쉽게 data와 meta-data를 구분할 수 있고, 따라서 쉽게 이해할 수 있는 구조를 가지고 있지요.


내용과 표현의 분리

또한 XML 문서 자체는 데이터의 표현을 어떤 식으로 할지 컨트롤 하지 않습니다. XML 문서가 다루는 것은 오직 데이터내용의 구조화이지요. 우리는 XSL같은 또 다른 언어를 사용하여 XML문서의 data를 표현하게 됩니다. 즉, data의 내용과 표현이 완전히 분리되어 있기 때문에 우리는 data를 좀더 쉽게 다룰 수 있게 됩니다.


데이터의 비교와 연산이 간편

Tree구조인 XML 문서는 데이터 검색 시에 비교, 연산 과정이 간단하기 때문에 원하는 결과를 더욱 빨리 얻게 할 수 있습니다.


네, 하지만 아직도 그리 와 닫지는 않을 겁니다. 왜냐하면 여러분이 실제로 XML을 많이 써보지 않았기 때문이죠. 그럼 한번 고수들의 경험담을 들어볼까요? 사실 저도 XML을 거의 써보지 않았기 때문에 인터넷에서 몇 가지를 퍼왔습니다.


 

위에서는 XML의 간편함을 강조하고 있는 것 같군요!


 

위는 데이터 내용과 표현의 구분이라는 장점을 설명하고 있네요.



 


 

 위의 글은 XML문서의 트리구조가 다른 언어에 비해 얼마나 쉽게 데이터를 처리하는지 얘기해주고 있습니다.

   

이제 XML의 장점에 대해 조금 감이 오실런지요?


근데…… 그렇다면 XML이 과연 모든 사람이 좋아하는 팔방미인 언어일까요? 불행히도 세상에는 XML을 매우 싫어하는 사람도 많습니다.

조엘 온 소프트웨어 라는 유명한 책에서는 XML에 대해,

"만일 당신이 어떤 한 문제를 XML을 이용해 풀려고 한다면 그것은 문제를 두 가지로 늘리는 것일 뿐이다." 라고 얘기하는 부분도 있다고 합니다.


또한 XML을 쓸 때에는 간단하고 특수한 어떤 data를 표현할 때도, 지나치게 많은 것을 정의해 주어야 하는 경향이 있습니다. 이것은 XML을 개발한 사람이 XML을 어디서나 활용 가능한 general한 언어로 만들고 싶어하다 보니 그런 건데요, general한 정보입력을 많이 필요로 하는 언어가 되었기 때문입니다.

그리고 XML은 결정적으로 속도가 느리다는 단점이 있습니다. XML문서가 텍스트 파일이기 때문에 호환성은 매우 좋지만, 바로 그렇기 때문에 매번 너무 큰 파일이 생성되는 것이죠.


XML은 많은 장점을 가지고 있는 데이터 처리 언어입니다. XML이 방금 말했듯이 완벽한 언어는 당연히 아니지만, 만일 여러분이 XML을 잘 활용한다면 보다 쉽고 간편하게 데이터들을 저장하고, 수정하고, 표현하는 작업들을 수행할 수 있을 것입니다.