|
WWW의 기술 표준을 정하는 단체인 월드 와이드 웹 컨소시엄(World Wide Web Consortium: W3C)에서 XML(eXtensible Markup Language) 표준 확정. XML은 기본적으로 HTML처럼 웹 문서 작성을 위해 개발된 언어지만, HTML이 웹 문서가 '어떻게 보여야 할지' 지정해 주는 것과는 달리, XML은 문서 내용이 무슨 뜻인지, '각 데이터가 문서 전체에서 어떤 의미를 갖는지'를 설명해 줌.
HTML은 모두 정해진 태그에 의해서만 WWW 문서를 작성하는데 비해, XML은 이 태그의 정의를 사용자의 필요에 따라 마음대로 만들어 낼 수 있음. 이렇게 사용자 필요에 따라 달라지는 태그를 이용해 XML는 서로 다른 애플리케이션과 플랫폼 사이에 데이터를 정의하고, 전송하고, 승인하고, 해석할 수 있도록 만들 수 있음.
XML은 각 데이터를 사용자의 편의에 맞도록 ‘정리’해 줌으로써 데이터의 활용도와 수명을 크게 향상시킬 수 있으며, 인터넷에 존재하는 수많은 서로 다른 컴퓨터 환경에서 데이터를 더욱 손쉽게 교환하게 해줌. XML의 이런 특징은 인터넷 애플리케이션을 개발하는 새로운 방식, "웹 서비스(Web Service)"의 실용화를 위한 근간이 됨.
XML의 핵심은 데이터의 호환입니다. WWW이 폭발적으로 확장되고, 거기에서 오고 가는 데이터의 양도 크게 늘어나면서 다양한 컴퓨터 환경에서 데이터가 호환될 필요가 급증한 것이죠. 이를 위해 개발된 WWW 페이지 작성 언어가 XML이었습니다.
XML은 1986년 국제 표준화 기구(International Organization for Standards: ISO)에서 개발한 SGML(Standard Generalized Markup Language)에 기초하고 있습니다.
SGML은 여러 번의 교정과정을 거치고 다양한 포맷으로 출력돼야 하는 거대 문서를 관리하기 위해 만들어진 페이지 작성 언어입니다. 원래는 대형 컴퓨터 시스템에서 주로 쓰이던 SGML은 WWW의 HTML에 도입되면서 그 존재가 부각되기 시작했습니다. SGML의 가장 큰 특징은 "태그(tag) 기술"로, 이 태그를 문서를 구성하는 각 요소에 달아 문서를 내용과 모양을 조절할 수 있었습니다. 그러나 SGML은 이 태그를 특별히 정의해 두지 않았으며, 단지 각 요소에 어떻게 태그를 걸어야 하는지에 대한 규칙만 마련해 두었죠. SGML의 태그 기술은 이후 HTML과 XML에 도입됩니다.
SGML, HTML, XML 모두 "마크업(Markup)"이라는 수식어가 붙습니다. 마크업이란 페이지의 구성 요소가 어떻게 보일지를 결정하는 기술로, 글자의 크기, 색깔, 문장 사이의 간격과 같은 문서의 외적 요소들을 표현해 줍니다. 마크업은 반드시 문서의 모양을 표현하는 것만이 아니라, 문서의 내용이나, 구성 요소의 구조를 표현해 주기도 합니다. 따라서 마크업 언어란 문서, 즉 페이지의 모든 것을 조절/관리하는 프로그래밍 언어인 셈이죠.
HTML은 복잡하고 까다로운 SGML의 태그 기술을 간소화 시키기 위해, 정해진 수의 태그만 사용하고 그 태그들에 미리 성격을 지정해 놓았습니다. 프로그래밍 초보더라도 흔히 쓰이는 태그 수십 가지만 외우면 바로 HTML을 작성해 웹 페이지를 만들 수 있도록 말이죠. HTML의 이런 간결한 태그 기술은 '웹 프로그래머'의 인구를 크게 늘려주었으며, 이는 폭발적인 웹사이트 수의 증가로 이어졌습니다.
HTML 태그는 웹 페이지의 작성을 쉽게 해주긴 했지만, 웹 페이지에 포함되는 데이터의 성격을 정의하는 데는 치명적인 한계가 있습니다. HTML은 기본적으로 웹 문서가 어떻게 보여야 할 지를 알려주는 페이지 언어입니다. 데이터가 있으면 그 데이터가 어느 위치에 어떤 성격으로 보여야 할 지를 표현해 줄 뿐, 데이터가 문서 내에서 어떤 성격이나 의미를 갖는지를 정의해 주지는 못한다는 것이죠.
웹 문서 내에서 데이터의 성격이나 의미를 지정해 주기 위해 탄생한 또 다른 "태그 페이지 언어"가 바로 XML입니다. XML은 태그를 사용자의 필요에 따라, 문서를 구성하는 요소에 따라 매번 다르게 정의될 수 있게 해 놓았습니다. 즉, 어떤 데이터가 있으면 이 데이터의 성격과 의미, 그리고 구조를 결정하는 태그를 붙여줄 수 있는 것이죠. XML에서 사용자는 자신의 필요에 따라 원하는 태그를 만들어 낼 수 있으며, 이렇게 사용자가 원하는 태그를 만들어 낼 수 있다고 해서 XML을 "확장형(extensible)" 마크업 언어라고 부릅니다.
데이터를 위한 페이지 언어이긴 하지만, XML은 데이터베이스를 만들어 주진 못합니다. 사실, XML은 데이터가 어디에 저장되는지 알려주지도 못하죠. XML은 각각의 데이터들이 ‘어떻게’ 저장되는지를 알려줄 뿐입니다.
그러나 프로그래머들은 XML을 이용해 데이터를 '보관'하는데 필요한 형식을 결정할 수 있습니다. 데이터가 XML 태그와 함께 저장되기만 하면, 나중에 XML 태그를 읽어 들일 수 있는 애플리케이션이나 브라우저로 얼마든지 검색이나 전송, 혹은 업데이트가 가능한 것이죠. XML은 이렇게 태그로 데이터의 형식을 결정해 다른 컴퓨터 환경에서도 얼마든지 그 데이터를 해석할 수 있게 해줍니다.
오늘날 컴퓨팅 환경에서 애플리케이션보다는 애플리케이션에서 읽히는 데이터가 훨씬 높은 가치를 지닙니다. XML이 담당하는 기능은 바로 이런 데이터를 사용자의 편의에 맞도록 '정리/보관'해 주는 것입니다. 이렇게 정리/보관된 데이터는 다른 환경에서 호환이 가능하기 때문에, 한번 저장된 데이터가 여러 다양한 애플리케이션, 플랫폼, 서비스에서도 생명력을 갖는 것이죠. 예를 들어, 사용자의 개인 정보를 XML을 이용해 한번 저장해 놓으면 이 정보는 (정보를 다루던 애플리케이션이 소멸되고 제작자가 죽는다 하더라도) WWW의 어느 곳, 어떤 서비스에서도 다시 읽혀질 수 있다는 것입니다.
XML의 가장 큰 의미는 '표준'에 있습니다. XML을 표준으로 삼으면, 위에서 설명한 대로, 각 컴퓨터 환경과 애플리케이션의 종류에 상관없이, 모든 종류의 데이터들을 서로 교환하고 출력할 수 있습니다. 데이터 교환 및 이용을 위한 표준을 세우는 것. 이것이 바로 XML이 개발된
근본적인 목적입니다.
|