워드 문서를 마크다운으로 변환하는 방법: 완전 가이드

pandoc, python 또는 온라인 도구를 사용하여 MD로 변환 ````

Page content

Word 문서를 Markdown 형식으로 변환하는 것은 기술 작가, 개발자 및 콘텐츠 제작자에게 매우 흔한 작업입니다. 이들은 Markdown을 지원하는 플랫폼(예: GitHub, GitLab, Hugo과 같은 정적 사이트 생성기)으로 콘텐츠를 이동하고자 할 때 이 작업을 수행합니다.

이 가이드는 이 변환 작업을 효과적으로 수행하기 위한 여러 가지 접근 방식과 도구를 다룹니다.

word to markdown on the grinder

왜 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: 온라인 변환기 사용 (빠르고 간단)

간헐적인 변환 작업에 대해서는 온라인 도구가 편리할 수 있습니다:

인기 있는 온라인 변환기:

장단점:

  • 장점: 설치 필요 없음, 모든 기기에서 작동
  • 단점: 개인정보 보호 문제, 파일 크기 제한, 출력에 대한 제어가 적음

방법 4: Word 내장 내보내기 사용 (제한적)

최신 버전의 Microsoft Word는 기본적인 Markdown으로 내보낼 수 있습니다:

  1. 문서를 Word에서 열고
  2. 파일내보내기파일 형식 변경으로 이동
  3. **웹 페이지, 필터된 (*.html)**을 선택
  4. 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 조합이 탁월한 성능을 보입니다.

성공적인 변환의 핵심은 다음과 같습니다:

  1. 일관된 포맷으로 Word 문서를 준비합니다.
  2. 필요에 따라 적절한 도구를 선택합니다.
  3. 출력물을 검토하고 정리합니다.
  4. 정기 변환이 필요한 경우 자동화를 수행합니다.

이 도구와 기술을 사용하면 원래 포맷과 구조를 대부분 보존하면서 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

유용한 링크