워드 문서를 마크다운으로 변환하는 방법: 완전 가이드
pandoc, python 또는 온라인 도구를 사용하여 MD로 변환 ````
Word 문서를 Markdown 형식으로 변환하는 것은 기술 작가, 개발자 및 콘텐츠 제작자에게 매우 흔한 작업입니다. 이들은 Markdown을 지원하는 플랫폼(예: GitHub, GitLab, Hugo과 같은 정적 사이트 생성기)으로 콘텐츠를 이동하고자 할 때 이 작업을 수행합니다.
이 가이드는 이 변환 작업을 효과적으로 수행하기 위한 여러 가지 접근 방식과 도구를 다룹니다.
왜 Word를 Markdown으로 변환해야 할까요?
Markdown은 Word 문서보다 다음과 같은 이점을 제공합니다:
- 버전 관리에 유리: 플레인 텍스트 형식은 Git과 잘 호환됩니다.
- 플랫폼 독립적: 특별한 소프트웨어 없이 모든 시스템에서 읽을 수 있습니다.
- 미래에 대비: 오래 지속될 수 있는 간단한 텍스트 형식입니다.
- 웹에 적합: 웹사이트 및 블로그에 쉽게 HTML로 변환할 수 있습니다.
- 경량: 훨씬 작은 파일 크기입니다.
- 자동화에 유리: 프로그래밍적으로 쉽게 처리할 수 있습니다.
Pandoc이 보존하는 요소:
- 헤딩 (예:
#
,##
,###
등으로 변환) - 볼드 및 이탈릭 포맷
- 리스트 (불릿 및 번호 목록)
- 링크 및 참조
- 테이블 (Markdown 테이블 또는 HTML로 변환)
- 코드 블록 및 인라인 코드
- 이미지 (
--extract-media
옵션 사용 시) - 각주
방법 1: Pandoc 사용 (추천)
Pandoc은 다양한 마크업 형식 간의 변환에 탁월한 문서 변환 도구입니다. Word 문서를 Markdown으로 변환하는 데 가장 신뢰할 수 있는 도구입니다.
Pandoc 설치
Ubuntu/Debian에서:
sudo apt update
sudo apt install pandoc
macOS에서:
# Homebrew 사용
brew install pandoc
# 또는 공식 웹사이트에서 다운로드
# https://pandoc.org/installing.html
Windows에서:
# Chocolatey 사용
choco install pandoc
# 또는 다음 주소에서 설치자 다운로드:
# https://github.com/jgm/pandoc/releases
설치 확인:
pandoc --version
Pandoc으로 변환
DOCX 파일 (현대 Word 형식)을 사용하는 경우:
pandoc document.docx -o document.md
구형 DOC 파일을 사용하는 경우:
Pandoc은 .doc
파일을 직접 읽을 수 없습니다. 먼저 LibreOffice를 사용하여 .docx
로 변환해야 합니다:
# 먼저 DOC를 DOCX로 변환
libreoffice --headless --convert-to docx document.doc
# 그 다음 DOCX를 Markdown으로 변환
pandoc document.docx -o document.md
Pandoc 고급 옵션:
# 특정 Markdown 변형으로 변환
pandoc document.docx -t gfm -o document.md # GitHub Flavored Markdown
# 이미지를 폴더로 추출
pandoc document.docx --extract-media=./images -o document.md
# 더 많은 포맷 보존
pandoc document.docx -t markdown+pipe_tables+raw_html -o document.md
# 사용자 정의 템플릿으로 변환
pandoc document.docx --template=custom.template -o document.md
방법 2: LibreOffice + Pandoc 사용 (DOC 파일용)
구형 .doc
파일을 다루는 경우, 이 두 단계의 프로세스가 가장 효과적입니다:
LibreOffice 설치
Ubuntu/Debian에서:
sudo apt update
sudo apt install libreoffice
macOS에서:
brew install --cask libreoffice
Windows에서: LibreOffice 웹사이트에서 다운로드
변환 프로세스:
# 단계 1: DOC를 DOCX로 변환
libreoffice --headless --convert-to docx document.doc
# 단계 2: DOCX를 Markdown으로 Pandoc으로 변환
pandoc document.docx -o document.md
# 중간 DOCX 파일 정리 (선택 사항)
rm document.docx
Pandoc을 사용한 배치 변환 스크립트:
여러 파일을 변환하는 스크립트를 생성합니다:
#!/bin/bash
# convert-docs.sh
for file in *.doc; do
if [ -f "$file" ]; then
echo "변환 중: $file..."
# DOC를 DOCX로 변환
libreoffice --headless --convert-to docx "$file"
# 확장자 없는 파일 이름 가져오기
basename=$(basename "$file" .doc)
# DOCX를 Markdown으로 변환
pandoc "${basename}.docx" -o "${basename}.md"
# 중간 DOCX 파일 정리
rm "${basename}.docx"
echo "✓ 생성됨: ${basename}.md"
fi
done
실행 가능한 파일로 만들고 실행합니다:
chmod +x convert-docs.sh
./convert-docs.sh
방법 3: 온라인 변환기 사용 (빠르고 간단)
간헐적인 변환 작업에 대해서는 온라인 도구가 편리할 수 있습니다:
인기 있는 온라인 변환기:
- Pandoc Try: https://pandoc.org/try/
- Word to Markdown Converter: https://word2md.com/
- Dillinger: https://dillinger.io/ (내보내기 기능 포함)
장단점:
- 장점: 설치 필요 없음, 모든 기기에서 작동
- 단점: 개인정보 보호 문제, 파일 크기 제한, 출력에 대한 제어가 적음
방법 4: Word 내장 내보내기 사용 (제한적)
최신 버전의 Microsoft Word는 기본적인 Markdown으로 내보낼 수 있습니다:
- 문서를 Word에서 열고
- 파일 → 내보내기 → 파일 형식 변경으로 이동
- **웹 페이지, 필터된 (*.html)**을 선택
- Pandoc과 같은 HTML을 Markdown으로 변환하는 도구를 사용:
pandoc document.html -o document.md
참고: 이 방법은 DOCX로 직접 변환하는 것보다 결과가 일반적으로 좋지 않습니다.
방법 5: 프로그래밍 솔루션 사용
Python과 python-docx, markdownify 사용:
#!/usr/bin/env python3
import sys
from docx import Document
from markdownify import markdownify
def docx_to_markdown(docx_path, md_path):
# DOCX 파일 읽기
doc = Document(docx_path)
# 텍스트 추출 (기본 변환)
full_text = []
for paragraph in doc.paragraphs:
full_text.append(paragraph.text)
# Markdown으로 변환 (기본)
markdown_content = '\n\n'.join(full_text)
# 파일에 쓰기
with open(md_path, 'w', encoding='utf-8') as f:
f.write(markdown_content)
if __name__ == "__main__":
if len(sys.argv) != 3:
print("사용법: python docx_to_md.py input.docx output.md")
sys.exit(1)
docx_to_markdown(sys.argv[1], sys.argv[2])
print(f"{sys.argv[1]}를 {sys.argv[2]}로 변환했습니다.")
의존성 설치:
pip install python-docx markdownify
참고: 이는 기본 구현입니다. Pandoc은 복잡한 문서에 더 나은 결과를 제공합니다.
일반적인 문제 해결
1. 복잡한 테이블
# 호환성 향상을 위해 파이프 테이블 형식 사용
pandoc document.docx -t markdown+pipe_tables -o document.md
2. 이미지 변환 실패
# 별도 폴더로 이미지 추출
pandoc document.docx --extract-media=./images -o document.md
3. 포맷 손실
# 복잡한 포맷을 위해 더 많은 HTML 보존
pandoc document.docx -t markdown+raw_html -o document.md
4. 문자 인코딩 문제
# UTF-8 인코딩 지정
pandoc document.docx -t markdown -o document.md --from=docx --to=markdown
최선의 실천 방법
1. 변환 전 준비
- 변환 전 Word 문서를 정리합니다.
- 일관된 헤딩 스타일(예: 헤딩 1, 헤딩 2 등)을 사용합니다.
- Markdown으로 잘 변환되지 않는 복잡한 포맷은 피합니다.
- Word의 내장 목록 포맷을 수동으로 사용하는 대신 사용합니다.
2. 변환 후 정리
- 출력물의 포맷 문제를 검토합니다.
- 테이블 포맷이 필요한 경우 수정합니다.
- 이미지 경로 및 대체 텍스트를 조정합니다.
- 추가 줄 간격 또는 공백 문제를 정리합니다.
3. 자동화 팁
# 일반적인 변환을 위한 별칭 생성
echo 'alias doc2md="pandoc --from=docx --to=markdown"' >> ~/.bashrc
# 배치 변환을 위한 함수
doc2md_batch() {
for file in *.docx; do
pandoc "$file" -o "${file%.docx}.md"
done
}
방법 비교
방법 | 장점 | 단점 | 최적 사용 시기 |
---|---|---|---|
Pandoc | 탁월한 품질, 많은 옵션 | 설치 필요 | 정기 변환, 복잡한 문서 |
LibreOffice + Pandoc | DOC 파일 처리 가능 | 두 단계 프로세스 | 구형 DOC 파일 |
온라인 변환기 | 설치 필요 없음 | 개인정보 보호, 기능 제한 | 간단한 일회성 변환 |
Word 내보내기 | 내장 기능 | 출력 품질 낮음 | 간단한 문서만 |
프로그래밍 | 커스터마이징 가능 | 코딩 필요 | 자동화 워크플로우 |
간단한 요약
대부분의 사용자에게 Pandoc은 Word 문서를 Markdown으로 변환하는 데 추천되는 솔루션입니다. 품질, 기능, 신뢰성 측면에서 가장 균형 잡힌 선택입니다. 구형 .doc
파일의 경우 LibreOffice + Pandoc 조합이 탁월한 성능을 보입니다.
성공적인 변환의 핵심은 다음과 같습니다:
- 일관된 포맷으로 Word 문서를 준비합니다.
- 필요에 따라 적절한 도구를 선택합니다.
- 출력물을 검토하고 정리합니다.
- 정기 변환이 필요한 경우 자동화를 수행합니다.
이 도구와 기술을 사용하면 원래 포맷과 구조를 대부분 보존하면서 Word 문서를 Markdown 형식으로 효율적으로 변환할 수 있습니다.
빠른 참조 명령
# 기본 변환 (DOCX to Markdown)
pandoc document.docx -o document.md
# DOC to Markdown (두 단계)
libreoffice --headless --convert-to docx document.doc
pandoc document.docx -o document.md
# GitHub Flavored Markdown
pandoc document.docx -t gfm -o document.md
# 이미지 추출
pandoc document.docx --extract-media=./images -o document.md
# 모든 DOCX 파일 배치 변환
for file in *.docx; do pandoc "$file" -o "${file%.docx}.md"; done