오픈 패키징 컨벤션스
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
오픈 패키징 컨벤션스(OPC)는 Office Open XML 표준의 일부로, ZIP 파일 형식을 기반으로 하는 파일 형식의 컨테이너 구조를 정의한다. OPC는 XML Paper Specification(XPS) 및 Office Open XML(OOXML)과 같은 다양한 파일 형식에서 사용되며, 3D 제조 형식(3MF), DWFX, .appx 등 여러 파일 형식을 지원한다. OPC는 ZIP 아카이브 내에서 바이너리 및 XML 파일의 위치 독립성을 위해 명명 규칙과 간접 참조 방식을 정의하며, 패키지, 파트, 관계, 청킹, 상대 간접 참조 등의 개념을 사용한다. OPC는 .NET Framework 및 Windows API를 통해 프로그래밍적으로 지원되며, 파일 손상을 줄이고 데이터 접근성을 향상시키기 위해 문서를 작은 덩어리로 나누는 청킹 방식을 사용한다.
OPC는 오피스 오픈 XML 표준 '''ISO/IEC 29500:2008''' 및 '''ECMA-376'''의 파트 2에 명시되어 있다.[1][2]
오픈 패키징 컨벤션스(OPC)는 XML Paper Specification(XPS)[5][27]와 Office Open XML(OOXML)과 같은 여러 파일 형식에서 공통된 ZIP 형식의 프로파일을 제공하기 위해 사용된다. OPC는 ISO/IEC 29500:2008 및 ECMA-376의 파트 2에 명시되어 있으며,[39][40] 이는 PKWARE의 .ZIP 파일 형식 사양 버전 6.2.0(2004)을 규범적으로 참조한다.[39]
OPC는 마이크로소프트 .NET Framework 3.0에서
OPC 용어에서 패키지는 ZIP 아카이브에 해당하며, 파트는 ZIP 아카이브 내에 저장된 개별 파일을 의미한다. 패키지 안의 모든 파트는 고유한 URI 형식의 파트 이름을 가지며, MIME 미디어 타입 형식으로 표현된 콘텐츠 유형을 지정받는다. 이 콘텐츠 유형은 파트에 저장된 데이터의 종류를 명확히 정의하여, 파일 확장자만으로는 발생할 수 있는 중복이나 모호함 문제를 줄여준다.
2. 사양
ISO/IEC 29500-2:2008 사양과 ECMA-376 제2판은 PKWARE, Inc.의 ''.ZIP 파일 형식 사양'' 버전 6.2.0(2004)을 규범적으로 참조하며, 일련의 규범적 설명을 추가한다.[1] 이전의 ECMA-376 제1판에서는 PKWARE Inc의 ".ZIP 파일 형식 사양" 버전 6.2.1(2005)을 정보 제공용(즉, 규범적이지 않음)으로 참조했다.[1] ZIP 형식 자체는 국제 표준으로 지정되지는 않았지만, 커뮤니티와 개발자들 사이에서 널리 받아들여지고 사용되고 있다.
마이크로소프트는 2006년에 OPC 기반 패키지에 대한 URI 참조에 사용할 "pack" URI 체계(pack://
)에 대한 초안을 인터넷 엔지니어링 태스크 포스에 제출했다.[41] 그러나 이 초안은 2009년에 만료되었으며, 지정된 구문은 URI 체계에 대한 인터넷 표준 (STD 66, RFC 3986)과 호환되지 않는다.[3] 현재 이 체계는 역사적인 것으로 분류된다.[4]
ISO 19165:1-2018은 오픈 아카이브 정보 시스템(OAIS)에 정의된 지리공간 패키지를 구현하기 위해 오픈 패키징 컨벤션(OPC)을 사용할 것을 권장한다.
3. 사용
OPC 기반의 ZIP 패키지 안에는 XML 마크업으로 된 데이터나 문서 콘텐츠 외에도 PNG, BMP, AVI, PDF, RTF 같은 다양한 형식의 텍스트 및 바이너리 파일, 심지어 이미 패키지된 ODF 파일까지 포함될 수 있다. OPC는 파일들이 ZIP 아카이브 내의 특정 위치에 의존하지 않도록 명명 규칙과 간접 참조 방식을 정의하여 파일 위치의 독립성을 보장한다.
OPC 파일은 일반적인 ZIP 압축 해제 유틸리티를 사용하여 내용을 확인할 수 있다. 또한, OPC는 파일 내용을 여러 부분으로 나누어 저장하는 청킹(Chunking)과 상대 간접 참조(Relative indirection) 기능을 지원한다.[6][28]
2006년 마이크로소프트는 OPC 기반 패키지에 대한 URI 참조를 위해 'pack://' URI 체계를 인터넷 엔지니어링 태스크 포스에 제안했으나, 이 초안은 2009년에 만료되었고 현재는 역사적인 기록으로 남아있다.[41][42] 한편, ISO 19165:1-2018 표준은 개방형 아카이브 정보 시스템(OAIS)에서 정의하는 지리공간 정보 패키지를 구현하는 데 OPC를 사용할 것을 권장하고 있다.
3. 1. OPC를 사용하는 파일 형식
OPC는 다수의 새로운 파일 형식의 기반 기술이 되었다:[7][29]파일 형식 파일 확장자 내용 표준 3MF 컨소시엄 3차원 제조 형식(3MF) 파일 형식[8] .3mf CAD 설계 데이터, 적층 제조(3D 프린팅)용 오토데스크 오토캐드 디자인 웹 형식(DWFX) 파일 형식[9][30] .dwfx CAD 설계 데이터(2D/3D 컴퓨터 그래픽 및 기술 도면) AutomationML 컨테이너 형식 .amlx 플랜트 엔지니어링 정보 회로도 문서[10][31] .cddx 레이아웃, 연결 및 포함된 구성 요소를 포함하는 회로도 Family.Show 파일 형식[11][32] .familyx 가계 데이터, 이야기 및 사진 필드 장치 통합 FDI 패키지[12][13] .fdix 필드 장치 통합 정보 IEC 62769-4:2015 마이크로소프트 응용 프로그램 가상화 파일 형식 .appv 이식 가능한 응용 프로그램 마이크로소프트 파워 BI 보고서 파일 형식 .pbix 데이터 및 정보 시각화 보고서 파일 마이크로소프트 파워 BI 템플릿 파일 형식 .pbit 데이터 및 정보 시각화 템플릿 파일 마이크로소프트 셈블리오 파일 형식 .semblio 이미지, 오디오 및 비디오를 포함하는 전자책과 같은 대화형 학습 자료 마이크로소프트 비주얼 스튜디오 2010+ 확장 파일 형식 .vsix 통합 개발 환경 확장 마이크로소프트 비지오 2013 드로잉 파일 형식 .vsdx 이전 버전에서 사용된 .vsd(Visio 바이너리 파일) 및 .vdx(Visio XML 드로잉) 형식을 대체[14][33] 마이크로소프트 윈도우 8, 윈도우 8.1 및 윈도우 폰 8.1 앱 패키지[15][34] .appx 마이크로소프트의 윈도우 스토어 및 윈도우 폰 스토어에 나열된 응용 프로그램의 소프트웨어 패키지[16][35] 마이크로소프트 윈도우 8.1 및 윈도우 폰 8.1 앱 번들[17][36] .appxbundle 마이크로소프트의 윈도우 스토어 및 윈도우 폰 스토어에 나열된 응용 프로그램의 하드웨어 플랫폼, 언어 및 리소스를 번들로 묶는 소프트웨어 패키지 마이크로소프트 윈도우 애저 C# 패키지 .cspkg 클라우드 플랫폼 데이터 마이크로소프트 XML 종이 사양 .xps 문서 교환을 위한 고정 문서 MiraMon 압축된 맵 열기 .mmzx 지리 정보(지리 공간 래스터 그래픽, 벡터 그래픽 및 표 형식 데이터, 기호화 및 메타데이터 파일, 지리 서비스에 대한 링크 등) ISO 19165-1:2018 NuGet 패키지 .nupkg 패키지 관리 시스템용 소프트웨어 패키지 Office Open XML 문서 .docx 워드 프로세싱 문서 ECMA-376, ISO/IEC 29500:2008 Office Open XML 프레젠테이션 .pptx 프레젠테이션 파일 ECMA-376, ISO/IEC 29500:2008 Office Open XML 통합 문서 .xlsx 스프레드시트 통합 문서 ECMA-376, ISO/IEC 29500:2008 Open XML 종이 사양 .oxps 문서 교환을 위한 고정 문서 ECMA-388 플랫폼 Industrie 4.0 - 관리 자산 셸[18] .aasx 관리 자산 셸(AAS)용 패키지 파일 형식 지멘스 디지털 인더스트리 소프트웨어 파일 형식 .jtx MathWorks 시뮬링크 모델 파일 .slx 모델 기반 설계를 위한 동적 시스템 사양 SMPTE 미디어 패키지 .smpk 멀티미디어 비디오 및 오디오 파일의 배포 및 재생을 위한 저장 형식 SMPTE ST 2053-2011 SpaceClaim 3D 솔리드 모델 파일[19][37] .scdoc 포함된 3D CAD 데이터 파일에는 표준 ACIS 바이너리(SAB) 솔리드 모델 파일이 포함됩니다. 마이크로소프트 XAML 패키지 – 사양이 아닙니다. 이미지가 있는 WPF FlowDocument를 저장하기 위해 .NET Framework에서만 지원하는 기능[20]
4. 프로그래밍
System.IO.Packaging
네임스페이스를 통해 기본적으로 지원된다. 다른 언어를 위한 오픈 소스 라이브러리도 존재한다.
윈도우 7부터는 윈도우 API에서도 COM 인터페이스를 통해 기본적으로 지원되며, 이는 통칭하여 [https://msdn.microsoft.com/en-us/library/windows/desktop/dd371623.aspx 패키징 API]라고 불린다.
또는 ZIP 라이브러리를 사용하여 OPC 파일을 만들고 열 수도 있다. 다만, 이 경우에는 ZIP 파일 내에 올바른 파일들이 포함되어 있고 관련 명명 규칙이 준수되어야 한다.
5. 패키지, 파트 및 관계
OPC 패키지는 패키지 자체, 패키지 내의 파트, 그리고 외부 리소스 간의 연관 관계를 정의하는 관계를 포함할 수 있다. 단순히 디렉토리와 파일 계층 구조를 사용하는 것 외에도, OPC 패키지는 일반적으로 이러한 관계들의 방향 그래프를 통해 콘텐츠에 접근한다. 관계는 다음 네 가지 요소로 구성된다.5. 1. 예약된 이름
OPC 패키지 내에서는 특정 파일 이름, 폴더 이름, 확장자가 특별한 용도로 예약되어 있다. 이들은 패키지의 구조와 내용을 정의하는 데 필수적인 역할을 수행한다. 예약된 이름은 다음과 같다.
이 세 가지 이름(`[Content_Types].xml`, `_rels`, `.rels`)은 OPC 패키지에서 특별한 의미를 가지므로, 사용자가 임의로 파일이나 폴더를 생성할 때 이 이름들을 사용해서는 안 된다.
5. 2. /[Content_Types].xml 파일
5. 3. /_rels
루트 레벨의 `/_rels` 폴더는 패키지 전체의 관계 정보를 저장하는 특별한 폴더이다. 이 폴더 이름 `_rels`는 OPC 규격에서 예약된 이름 중 하나이다.
`/_rels` 폴더 안에는 일반적으로 `.rels`라는 확장자를 가진 파일이 포함되는데, 특히 `/_rels/.rels` 파일은 매우 중요하다. 이 파일은 패키지를 처음 열 때 필요한 패키지 수준 관계(package-level relationships) 정보를 담고 있는 XML 파일이다. 애플리케이션이 OPC 형식의 파일을 열면, 가장 먼저 이 `/_rels/.rels` 파일에 접근하여 패키지의 기본적인 구조나 시작 파트 등에 대한 관계 정보를 읽어들인다.
`.rels` 확장자 역시 OPC에서 관계 메타데이터를 저장하기 위해 예약된 확장자이다. 따라서 `/_rels` 폴더와 그 안의 `.rels` 파일은 OPC 패키지의 핵심적인 구조를 이해하고 내용을 탐색하는 데 필수적인 역할을 한다.
5. 4. ''[파트 이름]''.rels
각 파트는 자체적인 관계를 가질 수 있다. _rels 폴더는 주어진 패키지 내의 특정 파트에 대한 관계를 저장하는 곳이다. 특정 파트의 관계를 찾으려면, 해당 파트와 같은 위치(계층)에 있는 _rels 폴더 안을 확인한다. 만약 파트가 관계를 가지고 있다면, 이 _rels 폴더 안에는 원래 파트 이름 뒤에 .rels 확장자가 붙은 파일이 존재한다. 예를 들어, [Content_Types].xml 파일에 관계가 있다면, /_rels 폴더 안에 [Content_Types].xml.rels 라는 이름의 파일이 존재하게 된다.
6. 청킹
문서를 작은 덩어리(chunk)로 나누는 것을 권장한다. 이는 파일 손상의 영향을 줄이는 데 더 효과적이며[21][38], 데이터 접근성을 향상시키는 데에도 도움이 된다.
예를 들어, 모든 스타일 정보를 하나의 XML 파트(부분)에 저장하고, 각 워크시트나 표를 별도의 파트로 분리할 수 있다. 이렇게 하면 문서를 사용하는 클라이언트(애플리케이션)가 필요한 정보에 더 빠르게 접근할 수 있고, 불필요한 객체 생성을 줄일 수 있다. 또한, 여러 프로세스가 동시에 같은 문서에서 작업하는 것을 더 용이하게 만든다.
오픈 패키징 컨벤션스(OPC)는 이러한 청킹 기능을 지원하며[6][28], XML Paper Specification(XPS)나 Office Open XML(OOXML)과 같은 파일 형식에서 사용된다.
7. 상대 간접 참조
오픈 패키징 컨벤션스(OPC)에서는 참조를 가진 각 파일이 간접 참조 목록을 포함하는 고유의 _rels 파일을 가진다. 이는 관련된 모든 리소스를 포함한 정보를 쉽게 잘라내어 붙여넣을 수 있게 하고, 파일 간의 이름 충돌 가능성을 제거하는 이름 범위를 제공하는 등의 장점이 있다.
참조
[1]
간행물
ISO/IEC 29500-2:2008 - Information technology -- Document description and processing languages -- Office Open XML File Formats -- Part 2: Open Packaging Conventions
http://www.iso.org/i[...]
ISO
[2]
웹사이트
Standard ECMA-376 Office Open XML File Formats
http://www.ecma-inte[...]
Ecma International
2007-04-04
[3]
웹사이트
pack Status: historical
https://www.iana.org[...]
IANA
2013-05-12
[4]
웹사이트
Uniform Resource Identifier (URI) Schemes
https://www.iana.org[...]
IANA
2013-05-12
[5]
웹사이트
Open Packaging Conventions & Open XML Markup Compatibility
http://blogs.msdn.co[...]
XPS team blog
2007-04-04
[6]
웹사이트
Comment on Can a file be ODF and Open XML at the same time?
http://www.oreillyne[...]
O'Reilly net XML blogs
2007-07-29
[7]
블로그
Adventures in Packaging - Episode 1
http://blogs.msdn.co[...]
Microsoft Packaging Team Blog: Open Packaging Conventions
2009-05-18
[8]
웹사이트
Archived copy
https://web.archive.[...]
2016-05-26
[9]
웹사이트
What's AutoCAD DWF file | DWG to DGN
https://web.archive.[...]
2014-08-30
[10]
웹사이트
CDDX File Format - Circuit Diagram
https://www.circuit-[...]
[11]
웹사이트
CodePlex Archive
https://archive.code[...]
[12]
웹사이트
Technology - FDI-Cooperation
https://web.archive.[...]
[13]
웹사이트
IEC 62769-4:2015 | IEC Webstore
https://webstore.iec[...]
[14]
웹사이트
Developer tools, technical documentation and coding examples
https://msdn.microso[...]
[15]
웹사이트
App packages and deployment (Windows Runtime apps) - Windows app development
https://msdn.microso[...]
2015-10-06
[16]
웹사이트
Windows Phone 8.1 includes universal apps and lots of feature updates
https://www.theverge[...]
2014-02-11
[17]
웹사이트
Content Moved (Windows)
https://web.archive.[...]
2015-01-26
[18]
문서
Details of the Asset Administration Shell - Part 1
https://www.plattfor[...]
[19]
뉴스
SpaceClaim file format
https://web.archive.[...]
2017-08-14
[20]
웹사이트
DataFormats.XamlPackage Field (System.Windows)
https://msdn.microso[...]
[21]
웹사이트
Using OPC to Store Your Own Data: Page 3
http://www.devx.com/[...]
[22]
간행물
ISO/IEC 29500-2:2008 - Information technology -- Document description and processing languages -- Office Open XML File Formats -- Part 2: Open Packaging Conventions
http://www.iso.org/i[...]
ISO
[23]
웹사이트
2006-12-01
[24]
간행물
ISO/IEC 29500-2:2008 - Information technology -- Document description and processing languages -- Office Open XML File Formats -- Part 2: Open Packaging Conventions
http://www.iso.org/i[...]
ISO
[25]
웹사이트
pack Status: historical
https://www.iana.org[...]
IANA
2013-05-12
[26]
웹사이트
Uniform Resource Identifier (URI) Schemes
https://www.iana.org[...]
IANA
2013-05-12
[27]
웹사이트
Open Packaging Conventions & Open XML Markup Compatibility
http://blogs.msdn.co[...]
XPS team blog
2006-09-01
[28]
웹사이트
2007-07-29
[29]
블로그
Adventures in Packaging - Episode 1
http://blogs.msdn.co[...]
Microsoft Packaging Team Blog: Open Packaging Conventions
2009-05-18
[30]
웹사이트
http://dwgtodgn.com/[...]
[31]
웹사이트
http://www.circuit-d[...]
[32]
웹사이트
Family.
http://familyshow.co[...]
[33]
웹사이트
https://msdn.microso[...]
[34]
웹사이트
https://msdn.microso[...]
[35]
웹사이트
http://www.theverge.[...]
[36]
웹사이트
https://msdn.microso[...]
[37]
웹사이트
http://www.mxcad.com[...]
[38]
웹사이트
Using OPC to Store Your Own Data (page 3) - OPC Recommendations
http://www.devx.com/[...]
[39]
간행물
ISO/IEC 29500-2:2008 - Information technology -- Document description and processing languages -- Office Open XML File Formats -- Part 2: Open Packaging Conventions
http://www.iso.org/i[...]
ISO
[40]
웹인용
Standard ECMA-376 Office Open XML File Formats
http://www.ecma-inte[...]
Ecma International
2006-12-00
[41]
웹인용
pack Status: historical
https://www.iana.org[...]
IANA
2013-05-12
[42]
웹인용
Uniform Resource Identifier (URI) Schemes
https://www.iana.org[...]
IANA
2013-05-12
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com