OFD의 정의와 배경
OFD(Open Fixed-layout Document)는 중화인민공화국 국가표준화관리위원회가 발행한 고정 레이아웃 문서 형식 표준이며, 표준 번호는 GB/T 33190-2016입니다. Adobe가 만들고 나중에 ISO 32000 국제 표준이 된 PDF와 달리, OFD는 중국이 독자적으로 개발한 국가 표준으로, 고정 레이아웃 문서 영역에서의 자율 통제 문제를 해결하기 위해 설계되었습니다.
고정 레이아웃 문서의 핵심 특성은 "레이아웃 잠금"입니다 — 문서의 레이아웃, 글꼴, 이미지 위치가 생성 시점에 고정되며, 여는 데 사용하는 장치에 관계없이 동일하게 렌더링됩니다. 이는 화면 크기, 글꼴 가용성 등의 요인에 따라 재배열되는 Word나 HTML 같은 "리플로우 가능 문서"와 대조적입니다. 고정 레이아웃 문서는 레이아웃을 잠가 WYSIWYG(보이는 대로 얻는 것)를 보장합니다.
OFD 파일은 XML을 사용하여 문서 구조를 설명하고 ZIP 패키지로 구성됩니다 — 본질적으로 여러 XML 파일과 미디어 리소스를 포함하는 압축 컨테이너입니다. 텍스트, 이미지, 그래픽, 서명, 인장, 애니메이션을 지원하며, 문서의 시각적 레이아웃을 정확하게 보존합니다. 이 표준은 고정 레이아웃 문서 산업 연맹(OFD 연맹)에 의해 산업화로 추진되었고 2016년에 국가 권장 표준으로 발행되었습니다.
2020년 이후 OFD는 당 및 정부 기관의 전자 공문서 시스템에 널리 채택되어, 정부 부문에서 고정 레이아웃 문서의 사실상 표준이 되어가고 있습니다. 오늘날 OFD 파일은 전자 인보이스, 전자 라이선스, 전자 계약 등의 시나리오에서 점점 더 보편화되고 있습니다. OFD의 기술 체계를 이해하는 것은 정부 문서 처리 및 정부-기업 시스템 인터페이스를 위한 필수 지식이 되었습니다.
OFD vs PDF: 두 가지 고정 레이아웃 형식의 기술 비교
OFD와 PDF는 모두 고정 레이아웃 문서 형식으로 유사한 기능적 위치를 가지고 있습니다 — 둘 다 문서 레이아웃을 정확하게 보존하고 장치 간 일관성을 보장하는 데 사용됩니다. 그러나 두 형식은 기술 체계와 에코시스템에서 크게 다릅니다. 이러한 차이를 이해하면 다양한 시나리오에 적합한 형식을 선택하는 데 도움이 됩니다.
| 차원 | OFD | |
|---|---|---|
| 형식 표준 | 중국 국가 표준 GB/T 33190-2016 | 국제 표준 ISO 32000(Adobe에서 유래) |
| 파일 구조 | XML + ZIP 컨테이너, 개방형 구조 | 바이너리/텍스트 하이브리드, 비교적 폐쇄적 구조 |
| 사용 사례 | 정부 문서, 전자 라이선스, 입찰 | 일반 문서, 계약서, 보고서, 출판물 |
| 지원 도구 | 적음, 주로 Suke, Foxit 등 국내 도구 | 성숙한 에코시스템, Adobe, Foxit 및 많은 무료 도구 |
| 인장/서명 지원 | 네이티브 전자 인장, 중국 암호 표준 준수 | 디지털 서명 지원, 중국 암호는 추가 적응 필요 |
| 국제적 인정 | 주로 국내 사용 | 전 세계적으로 인정 |
아래 순서도는 표준 기원, 파일 구조, 응용 에코시스템의 세 가지 차원에서 OFD와 PDF의 기술적 경로를 비교합니다:
1. 형식 표준
OFD는 공개적으로 투명한 기술 사양을 가진 중국 국가 표준입니다. 문서 구조는 XML을 기반으로 하여 국내 적응과 중국 암호 알고리즘(SM2, SM3, SM4)과의 통합에 편리합니다. PDF는 가장 성숙한 에코시스템과 글로벌 채택을 가진 국제 표준이지만, 분류 및 정부 시나리오에서는 자율 통제에 대한 우려가 있습니다. 두 형식은 대체 관계가 아니며, 다른 규정 준수 요구사항과 응용 영역을 다루는 병행 표준입니다.
2. 파일 구조
이것은 OFD와 PDF의 가장 근본적인 기술적 차이입니다. OFD 파일은 본질적으로 ZIP 아카이브이며, XML이 내부적으로 페이지, 텍스트, 이미지 및 기타 요소를 설명합니다 — 구조가 명확하고 파싱하기 쉽습니다. PDF는 바이너리/텍스트 하이브리드 형식을 사용하며, 내부적으로 객체, 크로스 레퍼런스 테이블, 트레일러 구조로 구성됩니다 — 비교적 복잡합니다. 개발자에게 OFD는 더 강한 가독성과 파싱 가능성을 제공합니다. 최종 사용자에게는 열었을 때 두 형식의 시각적 외관이 유사합니다.
3. 지원 도구
PDF의 도구 에코시스템은 매우 풍부하여, 무료 브라우저 내장 뷰어부터 전문적인 Adobe Acrobat까지 모든 종류의 편집, 변환, 압축 도구가 있습니다. 비교하면 OFD의 도구 체인은 아직 초기 개발 단계에 있습니다. OFD를 보고 편집할 수 있는 소프트웨어 응용 프로그램의 수는 제한적이며, OFD 압축을 지원하는 도구는 더욱 희귀합니다. 이것이 현재 에코시스템에서 OFD의 주요 단점입니다.
4. 인장 및 서명 지원
OFD는 중국 암호 표준을 준수하는 전자 인장과 인장 검증을 네이티브로 지원합니다. 인장 데이터는 문서 구조 내의 독립 노드로 임베드되어, 공문서 워크플로우에서 진정성, 무결성, 부인 방지 요구사항을 충족합니다. PDF는 PKI 시스템 기반의 디지털 서명을 지원하지만, 중국 암호 알고리즘 적응을 위해서는 추가 개발이 필요합니다. 정부 문서 시나리오에서 OFD의 인장 시스템은 국내 암호 인프라와 더 밀접하게 정렬됩니다.
OFD 파일 구조: XML + ZIP 컨테이너
OFD 파일 구조를 이해하는 것은 그 압축 방법과 도구 에코시스템을 이해하는 기초입니다. PDF의 바이너리 형식과 달리, OFD는 현대 오피스 문서(OOXML, ODF 등)와 유사한 "XML + ZIP 컨테이너" 아키텍처를 채택합니다.
컨테이너 구성
OFD 파일은 본질적으로 ZIP 아카이브입니다. 파일 확장자를 .zip으로 변경하고 압축을 풀면, 명확한 다층 디렉토리 구조를 볼 수 있습니다. 최외곽층에는 OFD.xml 엔트리 파일이 포함되어 있으며, 문서의 기본 정보와 물리적 파일 경로를 선언합니다. 내부적으로는 콘텐츠가 "문서(Doc) — 페이지 — 객체"의 계층으로 구성됩니다.
XML 설명 계층
OFD는 XML 파일을 사용하여 문서의 논리 구조와 페이지 콘텐츠를 설명합니다. Document.xml은 문서의 페이지 트리, 아웃라인, 메타데이터 등을 정의합니다. 각 페이지는 Content.xml에 해당하며, 해당 페이지의 텍스트, 이미지, 그래픽, 경로 및 기타 레이아웃 객체와 그 좌표 및 스타일을 설명합니다. 이 XML 기반 설명 접근 방식은 여러 특성을 가져옵니다:
- 높은 가독성: 모든 텍스트 편집기로 OFD의 페이지 설명을 볼 수 있어, 디버깅과 감사가 용이
- 파싱 용이: 표준 XML 파서가 전문 바이너리 파서 없이 문서 구조를 읽을 수 있음
- 좋은 확장성: 새로운 기능 추가는 XML Schema 확장만으로 기존 구조에 영향 없이 가능
PDF의 바이너리 형식과의 비교
PDF는 바이너리/텍스트 하이브리드 형식을 사용하며, 내부적으로 크로스 레퍼런스 테이블(Cross-Reference Table)을 통해 연결된 번호가 매겨진 객체로 구성되고, 파일 끝의 트레일러가 루트 객체를 가리킵니다. 이 설계는 파일 콤팩트함에 장점이 있지만, 구조가 불투명합니다 — 일반 사용자는 내부 콘텐츠를 직접 볼 수 없습니다.
두 형식의 차이는 압축 수준에서도 분명합니다: OFD는 이미 ZIP 컨테이너이므로 내부 리소스가 이미 압축 계층을 거쳤으며, 전체 파일을 재압축해도 얻는 이득이 제한적입니다 — 최적화 초점은 내부 리소스(이미지, 글꼴)에 있습니다. 반면 PDF의 압축은 개별 스트림 객체에 분산되어 있으며, 각 스트림 객체가 독립적으로 압축 알고리즘을 선택할 수 있습니다.
정부 문서에서의 OFD 응용
OFD의 정부 부문에서의 추진에는 실용적인 배경이 있습니다. 전통적인 정부 문서는 주로 종이 기반이며, 전자화는 레이아웃을 정확하게 보존하고, 전자 인장을 지원하며, 국가 암호 관리 요구사항을 준수하는 고정 레이아웃 형식을 필요로 합니다. PDF는 강력하지만, 외국 표준으로서 기밀 정보 시스템에서 자율 통제 우려를 제기합니다. OFD는 국가 표준으로서 이 간극을 채웁니다.
전자 공문서
중국 여러 지역의 당 및 정부 기관의 전자 공문서 시스템이 OFD를 표준 형식으로 채택했습니다. 기안, 심사, 서명, 배포, 보관의 전체 워크플로우에서 OFD 파일을 매체로 사용하며, 중국 암호 전자 인장과 결합하여 변조 방지와 추적 가능성을 달성합니다. OFD의 고정 레이아웃 특성은 문서가 다른 오피스 시스템 간에 일관된 레이아웃을 유지하도록 보장하며, 글꼴 누락이나 소프트웨어 차이로 인한 서식 오류가 발생하지 않습니다.
전자 라이선스
전자 사업자등록증, 부동산 등록 증명서, 전자 신분증 및 기타 전자 라이선스가 점진적으로 OFD 형식으로 마이그레이션하고 있습니다. OFD 파일은 라이선스 정보, 소유자 사진, 발급 기관 전자 인장을 임베드할 수 있으며, 위조 방지 검증을 지원합니다. 종이 라이선스와 비교하여 OFD 전자 라이선스는 온라인 검증과 부서 간 공유에 더 편리합니다.
전자 인보이스
일부 지역의 전자 인보이스가 OFD 형식을 채택했습니다. OFD 인보이스에는 인보이스 코드, 금액, 세액 등의 구조화된 데이터가 포함되어 있으며, 시각적 레이아웃도 보존됩니다 — 사람이 읽기와 기계 파싱 모두에 편리합니다. OFD 인보이스의 인장 메커니즘은 진정성과 부인 방지를 보장합니다.
응용 규모가 확장됨에 따라 OFD 파일 크기의 문제가 뚜렷해졌습니다 — 대량의 스캔 문서와 문서에 임베드된 고해상도 인장 이미지로 인해 공문서가 수십 MB에 달하여, 저장과 전송에 압력을 가하고 OFD 압축에 대한 수요를 발생시키고 있습니다.
OFD 압축 방법
OFD 압축의 원리는 PDF 압축과 매우 유사합니다 — 핵심은 파일 내에서 가장 많은 공간을 차지하는 부분을 최적화하는 것입니다. OFD는 이미 ZIP 컨테이너이며 파일 구조가 DEFLATE 압축 계층을 거쳤으므로, OFD 압축의 핵심은 또 다른 압축 계층을 추가하는 것이 아니라 내부 리소스(이미지, 글꼴)를 최적화하는 것입니다.
이미지 리샘플링
OFD 파일의 스캔 문서와 인장 이미지는 일반적으로 파일 크기의 가장 큰 원인입니다. 스캔된 공문서는 여러 300dpi 고해상도 스캔 페이지를 임베드할 수 있으며, 각각 수 MB입니다. 고해상도 이미지를 합리적인 해상도(예: 300dpi에서 150dpi)로 낮추면 크기를 크게 줄일 수 있으며, 화면 읽기와 인쇄에 미치는 영향은 허용 가능한 수준입니다.
리샘플링은 해상도와 선명도의 균형이 필요합니다: 정부 문서의 텍스트 콘텐츠는 150dpi에서도 명확하게 읽을 수 있지만, 정밀 인장의 미세한 디테일은 더 높은 해상도가 필요할 수 있습니다. 합리적인 접근 방식은 이미지 용도에 따라 다른 목표 해상도를 설정하는 것입니다.
폰트 서브셋팅
OFD 파일은 장치 간 일관된 표시를 보장하기 위해 완전한 글꼴을 임베드하지만, 문서는 일반적으로 글꼴 파일의 문자 중 일부만 사용합니다. 폰트 서브셋팅은 문서에서 실제로 사용된 문자 글리프만 유지하고 미사용 글꼴 데이터를 폐기합니다.
이 기술은 중국어 문서에 특히 효과적입니다. 완전한 중국어 글꼴 파일은 일반적으로 수만 개의 한자 글리프를 포함하며 크기가 10MB를 초과할 수 있습니다. 그러나 정부 문서는 1~2천 자의 한자만 사용할 수 있으며, 서브셋팅을 통해 글꼴 데이터를 80% 이상 줄일 수 있습니다.
중복 객체 정리
OFD 패키지에는 미참조 리소스와 중복 객체가 포함될 수 있습니다: 편집 중 삭제된 이미지가 리소스 디렉토리에 여전히 남아 있을 수 있고, 여러 번 저장하면 중복 메타데이터가 생성될 수 있습니다. 중복 객체 정리는 문서 구조를 순회하여 페이지에서 참조되지 않는 모든 리소스를 제거하고, 문서 구조 트리를 간소화합니다.
이미지 형식 최적화
OFD는 압축되지 않은 비트맵(BMP)과 압축 형식(JPEG, PNG)을 포함한 여러 이미지 형식의 임베드를 지원합니다. 압축되지 않은 비트맵을 JPEG 같은 압축 형식으로 변환하면 이미지 리소스 사용량을 직접 줄일 수 있습니다. 넓은 단색 영역을 가진 인장 그래픽의 경우 PNG가 JPEG보다 작을 수 있습니다. 색상이 풍부한 스캔 사진의 경우 JPEG가 더 높은 압축률을 제공합니다.
다음 코드는 OFD 파일의 압축을 풀고 내부 리소스 사용량을 분석하는 방법을 보여줍니다 — 압축 최적화의 첫 번째 단계입니다:
import zipfile
import os
from collections import defaultdict
def analyze_ofd(ofd_path):
"""OFD 파일의 압축을 풀고 내부 리소스 사용량을 분석"""
with zipfile.ZipFile(ofd_path, 'r') as zf:
# 각 파일 타입별 크기 집계
type_sizes = defaultdict(int)
type_counts = defaultdict(int)
total_size = 0
for info in zf.infolist():
ext = os.path.splitext(info.filename)[1].lower()
type_sizes[ext] += info.compress_size
type_counts[ext] += 1
total_size += info.compress_size
print(f"Total OFD size: {total_size / 1024 / 1024:.2f} MB\n")
print(f"{'Type':<12} {'Count':<8} {'Size(MB)':<12} {'Share'}")
print("-" * 45)
for ext, size in sorted(type_sizes.items(), key=lambda x: -x[1]):
pct = size / total_size * 100
print(f"{ext or '(none)':<12} {type_counts[ext]:<8} "
f"{size / 1024 / 1024:<12.2f} {pct:.1f}%")
# 사용 예
# analyze_ofd("sample.ofd")
이런 종류의 분석 스크립트를 실행하면 일반적으로 OFD 파일 크기의 80% 이상이 이미지 리소스(.jpg, .png, .bmp)에서 발생하며, 글꼴 파일(.ttf, .otf)이 그 다음인 것을 발견할 수 있습니다. 이는 OFD 압축의 핵심 전략을 확인합니다: 이미지 최적화를 우선시하고, 그 다음 글꼴 최적화를 수행합니다.
50MB의 OFD 스캔 공문서는 합리적인 이미지 리샘플링과 폰트 서브셋팅 후 일반적으로 8-12MB로 압축할 수 있으며, 텍스트와 인장은 여전히 명확하게 읽을 수 있습니다 — 정부 워크플로우와 보관 요구사항을 완전히 충족합니다.
OFD 도구 에코시스템의 현황
OFD의 국가 표준으로서의 지위는 명확하지만, 그 도구 에코시스템은 PDF만큼 성숙하지 못합니다. 현재 OFD를 볼 수 있는 소프트웨어는 주로 Suke 리더와 Foxit OFD 같은 국내 도구입니다. 브라우저는 OFD 미리보기를 네이티브로 지원하지 않으며, OFD를 압축할 수 있는 도구는 더욱 희귀합니다.
도구 에코시스템의 약점은 두 가지 실질적인 문제를 가져옵니다. 첫째, OFD 파일을 받은 일반 사용자는 적절한 도구를 찾지 못해 전용 리더를 다운로드해야 할 수 있습니다. 둘째, OFD 파일이 너무 클 경우, 기성 압축 도구가 없어 많은 사용자가 있는 그대로 저장하거나 전송할 수밖에 없어 저장과 대역폭 비용을 부담합니다.
기술적 관점에서 OFD의 개방형 XML + ZIP 구조는 파싱과 처리의 장벽이 PDF의 바이너리 형식보다 이론적으로 낮다는 것을 의미합니다. 도구 에코시스템의 지연은 기술적 장벽이라기보다 시장 추진과 응용 규모의 문제입니다. OFD 응용이 정부와 금융 분야에서 계속 확장됨에 따라 도구 체인이 점진적으로 성숙할 것으로 예상됩니다.
비교표: OFD vs PDF 압축 방법
| 압축 방법 | OFD 적용성 | PDF 적용성 | 비고 |
|---|---|---|---|
| 이미지 리샘플링 | 높음 | 높음 | 두 형식 모두 이미지가 크기를 지배; 해상도 감소가 가장 효과적 |
| 폰트 서브셋팅 | 높음 | 높음 | 중국어 문서에 특히 효과적; 글꼴 데이터를 80% 이상 감소 가능 |
| 중복 객체 정리 | 중간 | 중간 | 미참조 리소스와 중복 제거, 구조 간소화 |
| 이미지 형식 최적화 | 높음 | 높음 | 비트맵을 JPEG로 변환; 이미지 타입에 따라 최적 형식 선택 |
| 전체 파일 ZIP 압축 | 낮음 (이미 ZIP) | 중간 | OFD는 이미 ZIP 컨테이너; 재압축 효과 미미 |
| 스트림 객체 압축 | N/A | 높음 | PDF 전용; 각 Stream이 독립적으로 압축 선택 가능 |
FAQ
Q1: OFD 파일을 PDF로 변환할 수 있나요?
네. 일부 OFD 리더와 변환 도구는 OFD를 PDF로 내보내기를 지원합니다. 그러나 전자 인장과 같은 OFD 고유 정보는 변환 중에 완전히 보존되지 않을 수 있습니다. OFD의 중국 암호 인장 시스템과 PDF의 PKI 서명 시스템이 완전히 대응하지 않기 때문입니다. 장기 보관이나 법적 효력이 필요한 시나리오에서 변환할 때는 주의하는 것이 좋습니다 — 변환 전 백업하고 변환된 문서의 인장 상태를 검증하세요.
Q2: OFD 압축이 전자 인장의 유효성에 영향을 미치나요?
적절한 OFD 압축은 이미지와 글꼴 같은 리소스만 최적화하며, 인장 데이터나 문서 해시 검증 정보를 수정하지 않으므로 전자 인장의 유효성에 영향을 미치지 않습니다. 그러나 인장의 무결성 검증은 일반적으로 문서의 특정 부분을 포함한다는 점에 유의하세요 — 압축 과정에서 인장으로 보호된 콘텐츠를 수정하면 인장 검증이 실패합니다. 전문 도구를 사용하고 압축 후 인장 상태를 재검증하여 문서의 법적 유효성이 손상되지 않도록 하는 것이 좋습니다.
Q3: 일반적인 오피스 시나리오에서 OFD를 사용해야 하나요?
일반적인 비즈니스 문서에는 PDF로 충분합니다. OFD는 주로 정부 문서, 전자 라이선스 및 기타 공식 시나리오에 사용됩니다. 정부 인터페이스에 관여하지 않는다면 의도적으로 OFD를 사용할 필요가 없습니다. 그러나 정부 기관과 전자 공문서를 교환하거나 OFD 형식의 입찰 문서를 제출해야 하는 경우 OFD를 사용해야 합니다. 두 형식은 대체 관계가 아니며, 규정 준수 요구사항과 응용 시나리오에 따라 선택합니다.
Q4: OFD와 PDF 중 어느 것이 크기가 더 작나요?
절대적인 답은 없습니다. 파일 크기는 주로 컨테이너 형식 자체가 아니라 내부 리소스(이미지, 글꼴)에 의해 결정됩니다. 동일한 콘텐츠의 경우 OFD의 XML 설명이 PDF의 바이너리 설명보다 약간 클 수 있지만, 둘 다 압축을 사용하며 차이는 일반적으로 무시할 수 있습니다. 크기를 결정하는 주요 요인은 이미지 해상도와 글꼴 임베드 전략이지, 형식 선택이 아닙니다. 많은 고해상도 스캔 페이지를 임베드한 OFD 공문서는 일반 텍스트 PDF보다 훨씬 클 것이며, 그 반대의 경우도 마찬가지입니다.
요약
OFD와 PDF는 모두 고정 레이아웃 문서 형식이지만, 서로 다른 기술적 경로와 응용 에코시스템을 대표합니다:
- OFD는 중국 국가 표준(GB/T 33190-2016)으로서 개방형 XML + ZIP 컨테이너 구조를 채택하고, 중국 암호 전자 인장을 네이티브로 지원하며, 정부 문서, 전자 라이선스, 전자 인보이스 등 국내 공식 시나리오에서 안정적인 위치를 차지하고 있습니다. 도구 에코시스템은 아직 초기 개발 단계이지만, 개방형 구조가 국내 적응과 맞춤 개발에 편의를 제공합니다.
- PDF는 국제 표준(ISO 32000)으로서 바이너리/텍스트 하이브리드 형식을 채택하고, 전 세계적으로 가장 성숙한 도구 에코시스템을 갖추고 있으며, 일반 오피스 시나리오에서 대체 불가능합니다.
두 형식은 압축 방법에서 매우 유사합니다 — 핵심은 임베드된 이미지와 글꼴 리소스의 최적화입니다. OFD 압축의 네 가지 핵심 기술(이미지 리샘플링, 폰트 서브셋팅, 중복 객체 정리, 이미지 형식 최적화)은 고정 레이아웃 문서의 크기 구성 원리가 보편적이기 때문에 PDF 압축과 같은 계통을 공유합니다.
OFD를 이해하는 핵심은 "XML + ZIP 컨테이너"의 본질을 파악하는 것입니다: 개방적이고 파싱 가능하며 쉽게 적응할 수 있는 고정 레이아웃 아키텍처로, 그 압축 초점은 — PDF와 마찬가지로 — 컨테이너 자체가 아닌 내부 리소스에 있습니다.
관련 글:
파일 압축이 필요하신가요? SmartSlim을 사용해 보세요
자체 개발한 Rust 압축 엔진 기반으로 PDF/이미지/비디오/Office/OFD 등 10대 분류 40+ 포맷을 지원합니다. 로컬 압축으로 데이터가 외부로 나가지 않습니다.