OpenDocument vs. OpenXML

지난 6월 30일에 한국 전산원 정보화 표준팀을 찾아 뵙고 OpenDocument 에 관한 세미나를 했습니다. OpenDocument 와 OpenXML 의 등장 배경 및 기술적인 차이점에 대해서 소개 드리고, 정보화 표준팀의 고민을 들을 수 있는 유익한 시간이었습니다. 표준 오피스 문서 포맷에 관심있는 분들을 위해 세미나를 준비하며 작성한 글을 올립니다.

Open Document Format 소개

컴퓨터와 인터넷의 사용으로 인하여 자유로운 전자 문서 교환에 대한 요구가 날로 증가하고 있습니다. 그러나, DOC 나 HWP 와 같은 독점 포맷은 특정 소프트웨어에 종속되므로 이러한 요구에 부응하지 못합니다. 포맷의 라이센스 문제는 업체들의 기술 개발 및 혁신을 저해하고 있습니다.

자유로운 문서 교환에 대한 요구는 특히 공공 부문에서 중요한 이슈입니다. 국민의 세금으로 운영되는 공공 기관에서 작성한 문서는 국민들에게 법적, 기술적 제약이 없는 접근을 보장해야 합니다. 하지만, 공공 기관에서 제공하는 HWP 나 DOC 문서에 접근하기 위해서 국민들이 값비싼 소프트웨어를 구입해야 하는 것이 현실입니다. 또한, 그러한 소프트웨어가 영원히 존재한다고 장담할 수도 없습니다.

이러한 문제점을 해결하기 위해 등장한 것이 Open Document Format (ODF) 입니다. ODF는 플랫폼과 소프트웨어에 종속되지 않고 자유로운 문서 교환을 할 수 있도록 하는 사무용 문서의 표준 포맷입니다.

ODF 의 표준화 작업은 2002년 12월에 OASIS 컨소시엄을 통하여 시작됩니다. 표준화 작업에는 OpenOffice.org, Sun Microsystems, IBM, Corell, KDE 와 같은 다양한 업체와 커뮤니티가 참가합니다. 한 가지 흥미로운 사실은 OASIS 멤버인 마이크로소프트가 표준화 작업에서 빠졌다는 것입니다. 마이크로소프트는 이후 자사의 오피스 문서 포맷의 표준화를 ECMA 를 통해 독자적으로 추진합니다.

포맷은 바닥부터 새로 만들어진 것이 아니라 이미 검증된 오픈오피스의 1.0 의 XML 포맷을 기반으로 만들어졌습니다. 이 후 다양한 업체 및 커뮤니티의의 요구를 수용하여 2005년 5월에 OASIS 표준으로 승인된 ODF 가 탄생하게 됩니다. 그리고, OpenOffice.org 는 ODF 를 채택한 오픈오피스 버전 2.0 을 발표합니다. 계속된 표준화 작업으로 2006년 5월에 ISO 표준 (ISO 26300) 으로 승인됩니다.

현재 ODF 포맷으로 문서를 작성할 수 있는 소프트웨어는 OpenOffic.org (및 이를 기반으로 한 StarOffice, IBM Workplace 등의 소프트웨어) 와 KOffice 가 있습니다. 또한, Google Desktop Search 나 Windows Desktop Search 에서 간단한 플러그 인을 통하여 검색을 지원합니다. XML 에 기반한 표준 포맷이므로 검색을 위한 인덱스를 추출하는 것이 어렵지 않기 때문입니다. HTML/XHTML 포맷과의 상호 변환도 용이하여 Writely 같은 웹 기반의 워드프로세서나 CMS(Content Management System) 의 저장 포맷으로 사용되고 있습니다.

ODF 가 국제 표준으로 자리 잡고 다양한 소프트웨어들이 이를 지원하면서, 각국 정부는 표준화 노력의 일환으로 ODF 의 도입을 검토하거나 이미 결정하였습니다. 대표적인 것이 미국 메사추세츠 주 정부가 정부 문서를 작성하는 표준 포맷으로 ODF 를 사용하기로 한 결정입니다. 최근에는 벨기에 정부도 ODF 를 도입하는 등, ODF 는 이제 정부 문서의 표준 포맷으로 받아들여지는 추세입니다.

Open XML 소개

기업의 다양한 전산 환경에서는 문서와 백엔드 시스템 간의 데이터 통합이 중요합니다. 그러나, 기존의 바이너리 포맷으로는 데이터를 상호 운용하는 것이 어렵습니다. 이러한 문제를 해결하고자 마이크로소프트는 자사의 오피스 소프트웨어에 XML 포맷의 도입을 추진하였습니다. 그 노력의 결과로 Office XML 포맷을 개발하고 MS Office 에서 단계적으로 지원하게 됩니다. XML 기반의 포맷을 이용하면 구조화 된 문서의 표현이 가능하므로, 기존의 바이너리 포맷이 가진 문제점을 상당 부분 해결할 수 있습니다.

그러나, 마이크로소프트가 포맷에 대한 통제를 유지하려고 하는 것에 대해 다양한 이슈가 제기되었습니다. 특히, ODF 가 국제 표준으로 인정 받고 각국 정부가 표준 포맷의 도입을 고려하는 상황은 마이크로소프트에 상당한 압력으로 작용합니다. 그 결과 마이크로소프트는 Office XML 포맷 표준화를 결정하고 작업에 착수합니다. ECMA 를 통한 표준화 작업은 아직 진행 중인데, 그 결과로 나오게 될 포맷이 OpenXML (OXML) 입니다.

표준화 결정에도 불구하고 특허 등의 문제로 라이센스에 대한 이슈가 계속 제기되었는데, 이를 해결하기 위해서 마이크로소프트는 ‘Covenant Not to Sue‘ 라는 독특한 방법을 취하고 있습니다. 포맷의 사용에 대해서 어떠한 경우에도 법적으로 책임을 묻지 않겠다는 약속으로, 달리 말하면 포맷 사용에 라이센스가 필요 없다는 것입니다.

OXML 은 2006년 6월 21일에 업데이트가 올라온 상태입니다. OXML 은 현재 공개된 베타 테스트를 진행 중인 MS Office 2007 의 기본 포맷으로 채택될 예정입니다.

Open Document 의 구성

ODF 는 하나의 XML 문서로도 표현이 가능하지만, 일반적으로 여러개의 XML 문서와 그림과 같은 바이너리 파일을 하나의 zip 컨테이너 안에 묶는 형태입니다. zip 컨테이너를 사용하면 파일 구성이 용이하고 파일의 크기를 줄일 수 있다는 장점이 있습니다.

오픈오피스를 사용하여 작성한 텍스트 예제 파일을 통하여 ODF 의 세부 사항을 살펴볼 수 있습니다.

HelloODF.odt

예제 파일을 HelloODF.odt 로 저장하고 zip 유틸리티를 사용하여 압축을 해제하면 다음과 같은 파일 구성을 볼 수 있습니다.

Inside HelloODF

  • mimetype 은 문서의 MIME 타입을 기술합니다. 텍스트 문서는 application/vnd.oasis.opendocument.text 이고, 각 문서의 확장자 및 MIME 타입은 ODF 규격에에서 지정하고 있습니다.
  • meta.xml 은 문서의 메타데이터를 포함하고 있습니다. 메타데이터를 기술하는데는 Dublin Core 와 같은 기존의 표준을 적극적으로 활용합니다.

    Dublin Core

  • content.xml 은 문서의 실제 내용을 담고 있는 파일입니다. 한 가지 특징은 내용을 구성하는데 있어서 HTML/XHTML 과 같은 혼합 모델을 사용한다는 것입니다.

    mixed model

  • styles.xml 은 문서에 사용되는 스타일을 담고 있는 파일입니다. 오픈 도큐먼트는 내용과 스타일의 분리에 중점을 두고 있으며, 모든 포매팅이 스타일을 통하여 이루어집니다.
  • Pictures 는 문서에서 사용하는 그림 파일을 담고 있는 폴더 입니다. 문서에서 그림을 참조할 때는 XLink 표준을 사용합니다.

    XLink in ODF

Open XML 의 구성

OXML 도 zip 컨테이너를 사용하는데, 문서의 논리적 구조를 zip 파일에 대응시키는 방법은 마이크로소프트의 출력 문서 포맷인 XPS (Xml Paper Specification) 과 동일합니다.

MS Office 2007 Beta2 를 이용하여 작성한 텍스트 예제 파일을 통하여 OpenXML 의 세부 사항을 살펴볼 수 있습니다.

HelloOXML

예제 파일을 HelloOXML.docx로 저장하고 zip 유틸리티를 사용하여 압축을 해제하면 다음과 같은 파일 구성을 볼 수 있습니다.

Inside HelloOXML 2

word/ 폴더 안의 구조는 다음과 같습니다.

Inside HelloOXML 2

  • [Content_Types].xml 은 파일이 포함한 각 요소(Part) 의 타입에 대해서 기술하고 있습니다.
  • _rels/.rels 는 문서에 포함된 각 요소 간의 관계를 기술하고 있습니다.
  • word/document.xml 은 실제 문서의 내용을 포함하고 있는 파일입니다. OpenXML 은 ODF 와 달리 비혼합 모엘을 사용하고 있습니다.
  • word/media/image1.gif 은 문서에 포함된 그림입니다. 문서(document.xml) 는 그림을 직접 참조하는 것이 아니라 관계(relationship) 를 참조합니다.

    Reference to image in OXML

    document.xml 이 포함한 요소들 사이의 관계를 지정하는 word/_rels/document.xml.rels 을 보면 rId4 라는 관계가 media/image1.gif 에 대응된다는 것을 확인할 수 있습니다.

    Relationship

    문서에서 그림의 위치를 직접 지정하지 않고 관계를 통해서 표현하는 것의 장점은 무엇일까요? 문서를 살펴 보지 않고도 문서에 포함된 요소들을 파악할 수 있다는 것입니다. 이 예제에서 document.xml 파일을 전부 읽지 않고 document.xml.rels 파일만 읽어도 문서에 image1.gif 파일이 포함되어 있다는 것을 알 수 있습니다.

OpenDocument vs. OpenXML

ODF 와 OXML 모두 사무용 문서를 다루기 위한 포맷이며 XML 에 기반한다는 점에서 유사합니다. 하지만, 세부적인 사항에서 몇 가지 차이점을 발견할 수 있습니다.

  • ODF 는 특정 플랫폼에 종속된 요소를 배제합니다.

    ODF 는 기존 문서의 표현에 중점을 두면서도 문서의 상호 운용성 또한 중요하게 고려해서 만든 포맷이기 때문입니다. 이에 비해, OXML 은 기존 오피스 문서와의 호환성을 최우선으로 고려해서 만든 포맷입니다. 그러므로, VBA 코드나 OLE 객체를 포함하는 방법까지도 제공하고 있습니다.

  • 내용을 구성하기 위한 XML 모델이 다릅니다.

    XML content model

    위의 비교에서 알 수 있듯이 non-mixed model 은 구조화 된 데이터를 표현하는데 적합하고, mixed model 은 서술을 표현하는데 적합합니다. OXML 은 문서를 표현하는데 non-mixed model 을 사용하기 때문에 사람이 알아보기 힘든 XML 문서가 된다는 단점이 있습니다.

  • 내용과 스타일의 분리라는 측면에서는 ODF 가 OXML 에 비해서 더 엄격합니다.

    ODF 는 모든 포맷팅에 스타일을 이용합니다. 스타일을 명시적으로 지정하지 않은 포맷팅의 경우에는 자동 스타일을 만들어서 지정합니다.

  • OXML 은 사용자가 임의의 XML 스키마를 추가할 수 있도록 합니다.

    임의의 스키마를 추가하는 것은 문서 포맷의 확장을 의미하는데, 비지니스 환경의 다양한 요구를 반영할 수 있다는 장점이 있습니다. 그러나, 다양한 스키마가 난립하면 문서의 상호 운용성을 해칠 수도 있습니다. ODF 에서는 XForms 표준을 수용하는 것으로 이에 대응하고 있습니다.

이러한 차이에도 불구하고, 포맷 간의 일반적인 상호 변환을 위한 기술 개발은 여렵지 않을 것으로 보입니다. 마이크로소프트는 외주를 통하여 MS Office 에서 ODF 를 저장하는 것에 대한 기술적인 검토를 진행 중입니다. 아직 일반에는 공개되지 않았지만, OpenDocument Foundation 은 MS Office 문서를 ODF 로 저장할 수 있는 플러그 인을 개발했다고 알려져 있습니다.



참고 자료

Open Document

OpenDocument, Wikipedia
About OpenDocument Format – An Introduction, ODF Alliance
The Importance of OpenDocument Format for Governments, ODF Alliance
OpenDocument: 시장을 바꾸는 힘, 한국 소프트웨어 진흥원
Comparative Assessment of Open Documents Formats Market Overview, Valoris
Introduction to the format internals, OpenDocument Fellowship
OpenDocument vs Microsoft OpenXML Part I Part II, OpenDocument Fellowship
Plug-Ins: Frequently-Asked Questions, ODF Alliance

Open XML

Microsoft Office Open XML, Wikipedia
Ecma Office Open XML File Formats Standard – Status Report - 21 June 2006, ECMA
Ecma International Standardization of OpenXML File Formats Frequently Asked Questions, Microsoft
Microsoft Covenant Regarding Office 2003 XML Reference Schemas, Microsoft
Microsoft Office Open XML Formats Architecture Guide, Microsoft
Example Office 12 XML File, Brian Jones


이 글에 대한 정보