# PDF 마크다운 변환 도구, 개발자를 위한 네 가지 선택지

- 게시: 2026.07.18
- 원문(HTML): https://trendbrief.news/articles/pdf-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EB%B3%80%ED%99%98-%EB%8F%84%EA%B5%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%84%A4-%EA%B0%80%EC%A7%80-%EC%84%A0%ED%83%9D%EC%A7%80.html
- 발행: [트렌드브리프](https://trendbrief.news/)

![PDF 마크다운 변환 도구, 개발자를 위한 네 가지 선택지](https://trendbrief.news/assets/articles/pdf-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EB%B3%80%ED%99%98-%EB%8F%84%EA%B5%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%84%A4-%EA%B0%80%EC%A7%80-%EC%84%A0%ED%83%9D%EC%A7%80/hero-auto.png)

> PDF를 마크다운으로 바꾸는 오픈소스 도구 네 가지를 개발자 관점에서 비교했다. 일반 문서는 MarkItDown·PyMuPDF4LLM, 스캔본이나 표가 많은 문서는 Docling·Marker가 유리하다. 라이선스와 OCR 지원, 설치·코드까지 정리했다.

PDF를 마크다운으로 바꾸는 오픈소스 도구는 크게 두 갈래다. 글자 정보가 들어 있는 일반 PDF라면 마이크로소프트가 공개한 MarkItDown이나 PyMuPDF4LLM으로 몇 줄이면 끝나고, 스캔본이거나 표·수식이 많은 문서라면 IBM 리서치의 Docling이나 멀티모달 LLM의 시각 인식을 쓰는 MarkPDFDown처럼 페이지를 눈으로 보듯 인식하는 도구가 결과가 낫다. 이 글은 2026년 7월 기준 각 도구의 공식 GitHub 저장소를 근거로, LLM·RAG 파이프라인에 PDF를 넣으려는 개발자가 도구를 고를 때 봐야 할 기준을 정리한다. 상용 클라우드 변환 API는 범위 밖이고, 직접 설치해 돌리는 무료 오픈소스 라이브러리만 다룬다.

## 왜 PDF를 마크다운으로 바꾸나

PDF는 화면과 종이에 똑같이 보이게 만든 인쇄용 포맷이라, 사람 눈에는 깔끔해도 프로그램이 제목·문단·표 같은 구조를 알아내기 어렵다. 반면 마크다운은 `#` 하나로 제목을, `|` 로 표를 표현하는 단순한 텍스트라 구조가 그대로 드러난다.

이 차이가 특히 중요해지는 곳이 RAG(검색 증강 생성, 문서를 잘라 검색한 뒤 그 내용을 LLM 답변 근거로 넣는 방식)다. 문서를 그대로 LLM에 밀어 넣기보다 구조가 살아 있는 마크다운으로 바꿔 두면 잘라 넣기도 쉽고 토큰도 덜 든다. PyMuPDF4LLM 공식 문서는 본문·표·이미지를 하나의 마크다운 문자열로 합쳐 토큰을 최소화한다고 설명한다. 사내 문서를 검색 가능한 형태로 쌓는 작업은 [사내 지식베이스를 구축하는 세 가지 방식](https://trendbrief.news/articles/%EC%82%AC%EB%82%B4-%EC%A7%80%EC%8B%9D%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B5%AC%EC%B6%95-%EC%84%B8-%EA%B0%80%EC%A7%80-%EB%B0%A9%EC%8B%9D%EA%B3%BC-%EB%8F%84%EA%B5%AC-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80.html)에서 더 자세히 다뤘다.

## 대표 오픈소스 변환 도구 네 가지

실무에서 자주 쓰이는 오픈소스 도구는 네 가지로 좁혀진다. 접근 방식이 달라서 문서 종류에 따라 유불리가 갈린다.

| 도구 | 접근 방식 | 실행 환경 | 라이선스 |
| --- | --- | --- | --- |
| MarkItDown | 텍스트 추출(pdfminer) | CPU, 파이썬 | MIT |
| PyMuPDF4LLM | 텍스트 추출·자동 OCR | CPU, 파이썬 | AGPL-3.0 |
| Docling | 레이아웃 비전 모델 | CPU·GPU | MIT |
| MarkPDFDown | 멀티모달 LLM 비전 | 파이썬, LLM API | Apache-2.0 |

[MarkItDown](https://github.com/microsoft/markitdown)은 PDF뿐 아니라 워드·엑셀·파워포인트·이미지까지 마크다운으로 바꾸는 파이썬 도구로, 마이크로소프트 저장소 기준 MIT 라이선스다. [Docling](https://github.com/docling-project/docling)은 IBM 리서치 취리히 팀이 만든 문서 변환 라이브러리로, OCR 대신 페이지의 시각 요소를 인식하는 비전 모델을 써서 표와 레이아웃을 살린다. [PyMuPDF4LLM](https://github.com/pymupdf/pymupdf4llm)은 PDF 처리 라이브러리 PyMuPDF 위에 얹은 가벼운 확장이라 CPU만으로 동작한다. [MarkPDFDown](https://github.com/MarkPDFdown/markpdfdown)은 결이 다른데, 멀티모달 대형언어모델의 시각 인식으로 PDF를 옮긴다. 저장소 설명에 따르면 페이지를 이미지로 보고 표·수식·다이어그램 같은 복잡한 구조까지 인식해 마크다운으로 재구성하며, 텍스트 레이어를 파싱하는 결정적 추출(PyMuPDF4LLM 등)과 대비되는 접근이다. 라이선스는 저장소 기준 Apache-2.0이다.

![왼쪽 PDF 페이지(표·수식·차트)가 눈 모양 비전 모델을 거쳐, 오른쪽에서 해시 제목·파이프 표·펜스 블록·불릿으로 구조가 대응되는 마크다운으로 재구성되는 선화](https://trendbrief.news/assets/articles/pdf-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EB%B3%80%ED%99%98-%EB%8F%84%EA%B5%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%84%A4-%EA%B0%80%EC%A7%80-%EC%84%A0%ED%83%9D%EC%A7%80/sec-vision-1.png)

LLM 비전 방식: 페이지를 이미지로 보고 표·수식 같은 구조까지 마크다운으로 되살린다 — 텍스트 레이어를 파싱하는 결정적 추출과 다른 접근이다.

## 스캔한 PDF도 변환되나

도구마다 다르다. 글자 정보가 없는 스캔본, 즉 페이지가 통째로 이미지인 PDF는 OCR(이미지 속 글자를 읽어 텍스트로 바꾸는 기술)이 있어야 내용을 뽑을 수 있다.

MarkItDown은 기본적으로 pdfminer.six로 텍스트를 추출하는데, 이 방식은 스캔본에서 글자를 못 읽는다. 마이크로소프트 저장소의 논의 글에 따르면 스캔 PDF는 빈 결과가 나오며, 이를 보완하려 별도 OCR 플러그인이 추가됐다. PyMuPDF4LLM은 공식 문서 기준 페이지에 선택 가능한 텍스트가 없으면 그 페이지만 자동으로 OCR을 돌린다. Docling은 IBM 설명대로 가능한 경우 OCR을 건너뛰고 비전 모델로 처리해 오류를 줄인다. MarkPDFDown은 접근이 아예 달라, 페이지를 통째로 이미지로 멀티모달 LLM에 넘겨 인식하므로 별도 OCR 단계 없이 스캔본도 읽어 낸다. 다만 이 방식은 LLM API 호출을 전제로 해서, 뒤에서 볼 비용·속도 트레이드오프가 따른다. 스캔본이 섞인 문서를 다룬다면 OCR 지원 여부를 먼저 확인하는 편이 안전하다.

## 상업 프로젝트에 그대로 써도 되나

라이선스부터 확인해야 한다. 이름이 오픈소스라고 조건이 다 같지는 않다.

MarkItDown과 Docling은 공식 저장소 기준 MIT 라이선스라 상업 제품에 넣어도 제약이 거의 없다. 반면 PyMuPDF4LLM은 공식 문서 기준 AGPL-3.0 라이선스이며, 상업용 별도 라이선스가 따로 있다. AGPL은 서비스로 제공할 때도 소스 공개 의무가 붙어서, 사내 폐쇄 소스 서비스에 그대로 쓰기 전에 검토가 필요하다. MarkPDFDown은 저장소 기준 Apache-2.0 라이선스라 MIT처럼 상업 이용에 제약이 거의 없다. 대신 도구 자체가 외부 LLM API를 호출하는 구조라, 코드 라이선스와 별개로 사용하는 프로바이더의 요금이 비용으로 잡힌다. 무료라는 말만 보고 붙였다가 나중에 라이선스를 다시 들여다보는 일이 실제로 흔하다.

## 어떻게 시작하나

가장 손이 덜 가는 조합은 CPU만으로 도는 PyMuPDF4LLM과 MarkItDown이다. 둘 다 pip로 설치하고 함수 한 번 호출하면 된다.

```
pip install pymupdf4llm
```

```
import pymupdf4llm

md_text = pymupdf4llm.to_markdown("input.pdf")
with open("output.md", "w", encoding="utf-8") as f:
 f.write(md_text)
```

여러 포맷을 한꺼번에 다뤄야 한다면 MarkItDown이 편하다. PDF 지원만 필요하면 `pip install 'markitdown[pdf]'`, 워드·엑셀까지 전부 필요하면 `pip install 'markitdown[all]'`로 설치한다.

```
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("input.pdf")
print(result.text_content)
```

스캔본이나 복잡한 레이아웃까지 넘겨야 한다면 MarkPDFDown을 얹는다. 저장소 안내 기준 설치는 uv(권장)나 conda로 하고, `.env`에 `MODEL_NAME`과 API 키를 넣은 뒤(`TEMPERATURE`는 기본 0.3, `MAX_TOKENS`는 기본 8192) 실행한다. LiteLLM을 거쳐 OpenAI·OpenRouter 등 여러 프로바이더를 물릴 수 있어, gpt-4o·gpt-4o-mini는 물론 OpenRouter 경유로 claude-3.5-sonnet이나 gemini-pro-vision도 쓸 수 있다.

```
markpdfdown --input document.pdf --output output.md
```

페이지 범위만 뽑으려면 `--start`·`--end`를 주고, 파일 대신 파이프로 넘기는 CLI 모드와 이미지→마크다운 변환도 지원한다. 터미널이 부담되면 `npx -y markpdfdown`으로 GUI 데스크톱 앱을 띄울 수도 있다.

표가 많은 논문이나 스캔 계약서처럼 정확도가 중요한 문서라면 Docling이나 MarkPDFDown으로 결과를 한 번 비교해 보고, 정확도와 속도·비용·라이선스 중 무엇을 우선할지 정한 뒤 파이프라인에 붙이면 된다.

## 관련 글

- [사내 지식베이스 구축, 세 가지 방식과 도구 선택 기준](https://trendbrief.news/articles/%EC%82%AC%EB%82%B4-%EC%A7%80%EC%8B%9D%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B5%AC%EC%B6%95-%EC%84%B8-%EA%B0%80%EC%A7%80-%EB%B0%A9%EC%8B%9D%EA%B3%BC-%EB%8F%84%EA%B5%AC-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80.md)
- [쿠키 없는 웹 분석 도구, 동의 배너 없이 트래픽 재는 5가지](https://trendbrief.news/articles/%EC%BF%A0%ED%82%A4-%EC%97%86%EB%8A%94-%EC%9B%B9-%EB%B6%84%EC%84%9D-%EB%8F%84%EA%B5%AC-%EB%8F%99%EC%9D%98-%EB%B0%B0%EB%84%88-%EC%97%86%EC%9D%B4-%ED%8A%B8%EB%9E%98%ED%94%BD-%EC%9E%AC%EB%8A%94-5%EA%B0%80%EC%A7%80.md)
- [x86 어셈블리 리버싱 입문, 도구 선택과 호출 규약 읽기](https://trendbrief.news/articles/x86-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC-%EB%A6%AC%EB%B2%84%EC%8B%B1-%EC%9E%85%EB%AC%B8-%EB%8F%84%EA%B5%AC-%EC%84%A0%ED%83%9D%EA%B3%BC-%ED%98%B8%EC%B6%9C-%EA%B7%9C%EC%95%BD-%EC%9D%BD%EA%B8%B0.md)
- [LLM 모델 라우팅, 쉬운 요청은 싼 모델로 보내는 원리와 도구](https://trendbrief.news/articles/llm-%EB%AA%A8%EB%8D%B8-%EB%9D%BC%EC%9A%B0%ED%8C%85-%EC%89%AC%EC%9A%B4-%EC%9A%94%EC%B2%AD%EC%9D%80-%EC%8B%BC-%EB%AA%A8%EB%8D%B8%EB%A1%9C-%EB%B3%B4%EB%82%B4%EB%8A%94-%EC%9B%90%EB%A6%AC%EC%99%80-%EB%8F%84%EA%B5%AC.md)
- [Claude Code 토큰 사용량 확인하는 세 가지 방법과 차이](https://trendbrief.news/articles/claude-code-%ED%86%A0%ED%81%B0-%EC%82%AC%EC%9A%A9%EB%9F%89-%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94-%EC%84%B8-%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95%EA%B3%BC-%EC%B0%A8%EC%9D%B4.md)