레거시 WordPerfect 파일을 최신 포맷으로 변환하기: 실용 가이드
WordPerfect는 한때 기업, 법률 사무소, 학술 기관에서 가장 많이 사용되는 워드 프로세싱 플랫폼이었습니다. 프로그램 자체는 아직 존재하지만 대부분의 조직은 Microsoft Word, Google Docs 또는 오픈‑소스 제품군으로 전환했습니다. 그러나 현실은 수많은 레거시 .wpd 파일이 공유 드라이브, 보관함, 백업 테이프에 남아 있어 계약서, 사건 파일, 연구 논문 등 법적·역사적으로 중요한 문서를 포함하고 있다는 점입니다. 이러한 문서를 서식, 임베드된 객체 또는 메타데이터를 잃지 않고 변환하는 일은 쉬운 작업이 아닙니다. 이 가이드는 소스 컬렉션 평가부터 최종 출력 검증까지 전체 워크플로우를 단계별로 설명하며, 충실도 보존과 장기 접근성을 보장하는 데 중점을 둡니다.
1. WordPerfect 변환의 어려움 이해하기
WordPerfect는 DOCX가 사용하는 Office Open XML 구조와 현저히 다른 독점 바이너리 레이아웃을 구현합니다. 가장 흔한 장애물은 다음과 같습니다.
- 글꼴 대체 – WordPerfect는 글꼴 파일 자체가 아니라 글꼴 메트릭을 삽입합니다. 변환 호스트에 원본 서체가 없으면 엔진이 기본 글꼴로 대체하여 줄 바꿈과 페이지 구성이 달라질 수 있습니다.
- 복잡한 레이아웃 기능 – 머리글/바닥글 영역, 다중 컬럼 섹션, 각주, 조건부 텍스트 규칙 등이 미숙한 변환기에서 잘못 해석되어 내용이 잘못 배치될 수 있습니다.
- 임베드 객체 – OLE 객체(예: Excel 차트, Visio 다이어그램)는 바이너리 블롭으로 저장됩니다. 일부 변환 도구는 이를 추출하거나 렌더링하지 못해 정보가 손실됩니다.
- 매크로와 스크립트 – WordPerfect 매크로 언어(WPM)는 네이티브 환경 밖에서는 거의 지원되지 않습니다. 매크로에 의해 생성된 콘텐츠에 의존하는 문서를 변환하려면 별도 전략이 필요합니다.
- 메타데이터 누락 – 오래된 WordPerfect 버전은 저자, 생성 날짜, 수정 이력 등을 독점 필드에 저장합니다. 변환 시 도구가 이를 Dublin Core나 Office Open XML 표준 속성에 매핑하지 않으면 삭제될 수 있습니다.
이러한 함정을 초기에 인식하면 이후 마이그레이션 과정에서 비용이 많이 드는 재작업을 방지할 수 있습니다.
2. 변환 전 원본 파일 준비하기
체계적인 준비 단계는 위험을 줄이고 이후 변환 작업을 재현 가능하게 합니다.
2.1 인벤토리 및 분류
각 .wpd 파일의 경로, 크기, 마지막 수정일, 사용 맥락(예: 법률 계약, 마케팅 브로셔)을 기록한 스프레드시트를 작성합니다. 파일에 우선순위를 태깅하면 리소스 할당이 쉬워집니다: 고위험 법률 문서는 수동 검토가 필요하고, 대량의 뉴스레터는 배치 처리할 수 있습니다.
2.2 글꼴 통합
문서에 사용된 원본 글꼴 파일을 모두 모읍니다. 글꼴이 독점적인 경우 시각적 메트릭이 일치하는 대체 글꼴을 라이선스 구매하여 사용합니다. 변환 워크스테이션에 해당 글꼴을 설치하면 대부분의 변환기가 가장 먼저 일치하는 글꼴을 선택합니다.
2.3 변환 전 백업
원본 아카이브에서 직접 작업하지 마세요. 전체 컬렉션을 전용 변환용 드라이브에 복사합니다. 예상치 못한 손상이 발생했을 때 안전망이 됩니다.
2.4 불필요한 파일 정리
중복되거나 사용되지 않는 .wpd 파일을 삭제합니다. 인벤토리에서 중복 찾기 도구를 실행하면 작업량을 10‑20 % 정도 줄이고 저장소 비용을 최소화할 수 있습니다.
3. 목표 포맷 선택하기
최적의 출력 포맷은 최종 사용 사례에 따라 달라집니다.
- DOCX – 문서를 Office 또는 Google Workspace에서 계속 편집할 경우 최적입니다. DOCX는 대부분의 구조 요소(스타일, 표, 주석)를 유지하고 변경 추적도 지원합니다.
- PDF/A‑2 – 보관용으로 이상적입니다. PDF/A는 외부 글꼴 의존성을 없애고 글꼴을 임베드하며, 활성 콘텐츠를 금지해 읽기 전용 보장을 제공합니다.
- ODT – LibreOffice 등 오픈‑소스 생태계를 선호하는 조직에 유용합니다.
- HTML5 – 웹사이트나 인트라넷에 게시할 경우, 깔끔하고 의미적인 HTML로 변환하면 헤딩 계층 구조가 유지되고 스타일링이 쉬워집니다.
많은 프로젝트에서 이중 출력 방식을 채택합니다: 향후 편집을 위한 DOCX와 준수·장기 보관을 위한 PDF/A를 모두 생성합니다.
4. 변환 엔진 선택하기
변환 도구는 크게 세 가지 범주로 나뉩니다.
| 범주 | 대표 도구 | 장점 | 단점 |
|---|---|---|---|
| 네이티브 WordPerfect 내보내기 | WordPerfect 12‑14 (·docx··pdf 저장) | 지원되는 기능에 대해 100 % 레이아웃 충실도 | Windows용 WordPerfect 라이선스 필요; 자동화 제한 |
| 전용 변환 소프트웨어 | Able2Extract, Zamzar Desktop, UniDOC | 배치 처리, 스크립트 가능한 API, 임베드 객체 지원 | 복잡한 레이아웃 오해 가능; 라이선스 비용 |
| 클라우드 기반 변환기 | convertise.app, CloudConvert, Zamzar (online) | 설치 필요 없음, 확장성, API 접근 | 인터넷 대역폭 의존; 개인정보 보호 준수 확인 필요 |
프라이버시가 중요한 대규모 아카이브에는 하이브리드 접근이 적합합니다: 가장 복잡한 파일은 로컬에 설치된 WordPerfect(또는 라이선스 체험판)로 처리하고, 그 외 대량 파일은 convertise.app 같은 클라우드 서비스를 활용합니다. Convertise는 가능하면 브라우저 내에서 파일을 처리해 소스가 사용자 기기를 떠나지 않도록 하므로 기밀 계약서 처리 시 핵심적인 요소가 됩니다.
5. 상세 변환 워크플로우
아래는 도구가 선정된 후 스크립트화할 수 있는 재현 가능한 단계별 프로세스입니다.
5.1 자동 사전 검사 스크립트 (PowerShell 예시)
# .wpd 파일을 스캔하고 CSV 보고서를 생성
Get-ChildItem -Path "E:\LegacyWPD" -Recurse -Filter *.wpd |
Select-Object FullName, Length, LastWriteTime |
Export-Csv -Path "E:\ConversionReport\wpd_inventory.csv" -NoTypeInformation
생성된 CSV는 배치 엔진에 입력되어 일정 크기(>5 MB) 파일을 수동 검토 대상으로 플래그합니다.
5.2 Convertise CLI를 이용한 배치 변환 (가상 예시)
# Convertise가 cs-cli 라는 CLI 래퍼를 제공한다고 가정
cs-cli batch \
--input "E:/LegacyWPD/**/*.wpd" \
--output-format docx \
--output-dir "E:/Converted/DOCX" \
--log "E:/ConversionReport/batch_log.txt"
CLI는 원본 타임스탬프를 보존하고 각 출력 파일에 체크섬(SHA‑256)을 기록합니다. 이 해시들은 이후 검증의 기반이 됩니다.
5.3 PDF/A 생성 (LibreOffice 헤드리스 모드 활용)
libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir "E:/Converted/PDF" "E:/Converted/DOCX/*.docx"
# Ghostscript로 PDF/A‑2 준수 강제
for f in E:/Converted/PDF/*.pdf; do
gs -dPDFA -dBATCH -dNOPAUSE -sProcessColorModel=DeviceRGB \
-sDEVICE=pdfwrite -sOutputFile="${f%.pdf}_pdfa.pdf" "$f"
done
두 단계 접근 방식은 결과 PDF가 보관 표준을 충족하도록 보장합니다.
5.4 검증 및 품질 보증
- 체크섬 비교 – 사전 변환 해시와 변환 후 메타데이터 파일의 해시가 일치하는지 확인해 원본이 변형되지 않았음을 검증합니다.
- 시각적 샘플 검사 – 변환된 문서 중 5 %를 무작위 선택해 Word/LibreOffice에서 열고 페이지 수, 머리글·바닥글 일관성, 표 정렬 등을 원본과 비교합니다.
- 메타데이터 감사 –
exiftool또는pdfinfo등을 이용해 속성을 추출하고 저자, 생성 날짜, 키워드가 유지됐는지 확인합니다. 누락된 필드는 원본 인벤토리 CSV에서 가져와 스크립트로 주입할 수 있습니다.
6. 임베드 객체 및 매크로 처리
6.1 OLE 객체 추출
WordPerfect는 OLE 객체를 바이너리 스트림으로 저장합니다. Ole2Extract와 같은 도구로 변환 전에 이를 추출합니다. 추출 후 대상 문서에 수동 혹은 매크로를 통해 다시 삽입합니다.
6.2 WordPerfect 매크로 다루기
WPM 매크로는 이식성이 낮으므로 가장 안전한 방법은 WordPerfect 환경에서 매크로를 실행한 뒤 정적 문서(PDF 등)로 내보내고 이를 변환하는 것입니다. 매크로가 텍스트만 생성한다면, python‑wpd(존재 시) 같은 라이브러리를 사용해 간단한 Python 스크립트로 원본 .wpd 파일을 처리해 동일 로직을 재현할 수 있습니다.
7. 메타데이터 보존 및 매핑
변환 후에도 살아남는 표준 메타데이터 필드:
- Title →
dc:title(PDF) 또는coreProperties.title(DOCX) - Author →
dc:creator/coreProperties.author - Subject/Keywords →
dc:description/coreProperties.subject - Creation/Modification Dates →
dcterms:created/dcterms:modified
변환 도구가 이 필드를 누락하면 사후 처리 단계에서 재주입할 수 있습니다. DOCX에 재주입하는 Python‑docx 예시:
from docx import Document
import csv, datetime
from pathlib import Path
metadata = {row['filename']: row for row in csv.DictReader(open('wpd_inventory.csv'))}
for file in Path('E:/Converted/DOCX').glob('*.docx'):
doc = Document(str(file))
meta = metadata.get(file.name, {})
doc.core_properties.title = meta.get('title', '')
doc.core_properties.author = meta.get('author', '')
if meta.get('created'):
doc.core_properties.created = datetime.datetime.fromisoformat(meta['created'])
doc.save(str(file))
8. 대규모 컬렉션을 위한 배치 자동화
수만 개 파일이 존재하는 경우 RabbitMQ 혹은 AWS SQS와 같은 큐 기반 시스템으로 작업자를 비동기적으로 운영할 수 있습니다. 각 작업자는 파일 경로가 담긴 메시지를 받아 변환 파이프라인을 수행하고, 결과를 출력 버킷에 저장한 뒤 성공/실패 이벤트를 발행합니다. 이 설계는 다음 장점을 제공합니다.
- 확장성 – 큐가 백로그될 경우 작업자를 추가로 가동할 수 있습니다.
- 내결함성 – 실패한 작업은 자동 재시도됩니다.
- 감사 로그 – 각 메시지는 고유 식별자를 포함하고 로그가 중앙집중식으로 저장돼 컴플라이언스 보고에 활용됩니다.
9. 프라이버시 및 컴플라이언스 고려사항
많은 레거시 WordPerfect 파일이 내부 문서라도 개인식별정보(PII)나 보호된 건강정보(PHI)를 포함할 수 있습니다. 클라우드 서비스에 파일을 보내기 전에 다음을 확인하세요.
- 데이터 거주지 – 서비스가 조직과 동일한 관할구역에서 파일을 처리하는지.
- 종단 간 암호화 – 전송 중(TLS) 및 가능한 경우 처리 중에도 파일이 암호화되는지.
- 영구 저장 금지 – 제공자가 변환 완료 후 파일을 즉시 삭제하는지. 예를 들어 Convertise.app은 변환이 끝난 뒤 파일을 즉시 폐기합니다.
위 기준을 만족하지 못하는 파일은 온프레미스에서 변환해야 합니다.
10. 변환된 자산의 보관
변환이 성공하면 기록 보존 정책에 따라 결과물을 저장합니다. 권장 디렉터리 구조는 다음과 같습니다.
ArchiveRoot/
├── Original_WPD/ # 읽기 전용, 불변 백업
├── DOCX_Editable/ # 향후 편집용
├── PDF_A_Archive/ # 장기 보관용, 읽기 전용
└── Metadata/ # CSV 보고서, 체크섬, 감사 로그
PDF/A 레이어는 WORM(Write‑Once‑Read‑Many) 스토리지 계층에 배치해 의도치 않은 변경을 방지합니다. 중복 제거(deduplication)를 적용해 공간을 절약하되 체크섬 무결성은 유지합니다.
11. 흔히 발생하는 문제와 해결 방법
| 증상 | 가능 원인 | 해결책 |
|---|---|---|
| 글꼴이 누락되고 텍스트가 어긋남 | 글꼴 미설치 또는 메트릭 불일치 | 정확한 원본 글꼴을 설치하거나 변환기 설정에서 글꼴 대체 매핑을 사용 |
| 표가 일반 텍스트로 변환됨 | 변환기가 WordPerfect 표 마크업을 인식 못 함 | .wpd를 "RTF로 내보내기" 후 RTF를 DOCX로 변환하면 표 구조 유지 |
| 각주가 사라짐 | 대상 포맷에서 각주 스타일 미지원 | 변환기에서 “각주 보존” 옵션을 활성화하거나, 먼저 PDF로 변환 후 OCR 기반 추출 사용 |
| 임베드된 Excel 차트가 정적 이미지로 변함 | OLE 객체 미처리 | OLE을 별도로 추출하고 원본 Excel 파일을 변환한 뒤 대상 문서에 다시 삽입 |
| 변환 후 체크섬 불일치 | 변환 과정에서 파일이 변경됨(예: 줄바꿈 변환) | “Exact copy” 옵션 등 바이너리 무결성을 보장하는 모드를 사용하거나, 변환 후 바이너리 차이를 검토 |
12. 변환된 컬렉션의 미래 대비
문서를 DOCX, PDF/A, ODT와 같은 개방형·표준 포맷에 보관하면 향후 폐기 위험이 크게 감소합니다. 이를 확고히 하려면 다음을 실행하세요.
- 표준 검증 – PDF/A 검증 도구(veraPDF)와 DOCX 스키마 검증기를 활용해 규격 준수 확인
- 정기적인 매체 교체 – 5‑7 년 주기로 저장 매체를 최신 기술로 마이그레이션
- 변환 레시피 유지 – 사용한 정확한 CLI 인자, 도구 버전, 글꼴 팩 등을 문서화. 이 레시피는 향후 렌더링 엔진이 업데이트될 때 재생성을 가능하게 함
레거시 WordPerfect 변환을 재현 가능한 데이터 마이그레이션 프로젝트로 다루면—정밀한 인벤토리, 통제된 도구 사용, 자동 검증 및 견고한 보관 전략을 갖추어—수십 년간 축적된 귀중한 콘텐츠를 레이아웃 손실이나 컴플라이언스 위반 없이 활용할 수 있습니다. 온프레미스 솔루션을 완전하게 적용하든, convertise.app과 같은 프라이버시를 중시하는 클라우드 도구를 활용하든, 여기서 제시한 원칙은 프로세스를 투명하고, 반복 가능하며, 감사 가능하도록 유지시켜 줍니다.