• 문서뷰어
  • PDF 변환
  • OCR
  • 데이터/텍스트 추출
  • 전자증빙
  • 유출방지
  • 비식별화ㆍ익명화
  • LLMㆍRAG 구축

블로그

디지털 전환의 시작,
이파피루스가 함께합니다.

10년의 기록, 10억 회의 다운로드: PyMuPDF 기술 연대기

이 글은 PyMuPDF의 창시자이자, 현재 이파피루스의 자회사 Artifex에서 PyMuPDF의 개발을 이끌고 있는 Harald Lieder의 글을 우리 말로 옮긴 글입니다. 
PyMuPDF 탄생 10주년을 맞아 초창기 개발 과정부터 오늘의 성장에 이르기까지의 여정을 담고 있습니다.


10년의 기록, 다운로드 10억 회: PyMuPDF 기술 연대기

10 years of PyMuPDF


2016년 8월 19일, PyMuPDF가 처음 PyPI에 등록됐을 때만 해도 이 프로젝트가 파이썬 문서 처리 생태계의 핵심 축이 되리라고는 아무도 예상하지 못했습니다. 시작은 소박했습니다. 검증된 고성능 라이브러리인 MuPDF를 파이썬 개발자들이 쓰기 쉽도록 이어주는 다리 역할, 딱 그 정도였죠.

목표는 빠른 렌더링과 안정적인 텍스트 추출, 그리고 군더더기 없는 API를 제공하는 것이었습니다. 당시 파이썬의 PDF 관련 도구들은 저마다 흩어져 있었습니다. 어떤 라이브러리는 메타데이터만 다뤘고, 어떤 것은 파싱 기능이 일부만 구현돼 있었으며, 고성능 렌더링이나 문서 내부를 완전히 들여다볼 수 있는 도구는 거의 없었습니다. PyMuPDF는 바로 그 빈틈을 메우며 등장했습니다.
 

마일스톤: 다운로드 10억 회

PyMuPDF는 10주년을 맞은 현재 PyPI 누적 다운로드 10억 회를 돌파했습니다.
이 10억 회 중 무려 83%가 지난 12개월 사이에 집중적으로 발생했는데, 이는 문서를 '읽고' 그 내용을 바탕으로 추론해야 하는 AI 시스템들이 급증한 영향이 큽니다.

PyMuPDF의 Pepy 다운로드 추이 그래프

다운로드 10억 회를 넘겼다는 것은 PyMuPDF가 상당히 이례적인 자리에 올랐다는 뜻입니다. 이 정도 규모의 패키지들은 대부분 AWS 클라이언트, HTTP 스택, 패키징 도구, 타입 스텁 등 '인프라' 성격의 도구입니다. 문서 처리라는 한 가지 특정 작업만 수행하는 라이브러리가 이 반열에 오르는 경우는 흔치 않습니다. 이는 오늘날 파이썬 소프트웨어 안에 문서 처리 기능이 얼마나 광범위하게 스며들어 있는지를 잘 보여주는 대목입니다.
 

PyMuPDF의 시작

이 프로젝트의 출발점은 의외로 소박했습니다. 한 개발자가 오랫동안 어느 과학 잡지를 구독하고 있었는데, 매월 호를 PDF 파일로 받아보곤 했습니다. 2013년에서 2015년 까지, 이 PDF들 중 상당수에는 제대로 된 목차(TOC)가 없었습니다. 긴 글을 읽을 때마다 원하는 부분을 찾아다니는 게 여간 번거로운 일이 아니었고, 결국 목차를 삽입하고 관리해줄 수 있는 소프트웨어를 찾아 나서게 됐습니다.

당시 그는 PDF 내부 구조에 대한 지식도, 파이썬에 대한 지식도, C 언어 경험도 전혀 없었습니다. 그에게는 오직 실제로 겪고 있는 문제와 그것을 풀어보고 싶다는 호기심뿐이었죠. 이곳저곳 찾아보던 끝에 MuPDF와 만나게 됐고, MuPDF의 헤더 파일(당시 버전 1.2)로부터 SWIG를 이용해 바인딩을 생성한 fitz-python이라는 작은 파이썬 라이브러리도 발견했습니다.
MuPDF가 보여준 기술적 완성도와 성능은 그 자리에서 그를 사로잡았습니다. 그 발견이 곧 불씨가 됐습니다. 'MuPDF가 이 정도로 훌륭하다면, 그 위에 좀 더 완결된 파이썬다운(Pythonic) 인터페이스를 얹을 수 있지 않을까?' 하는 생각이 든 거죠.

이렇게 PyMuPDF는 'PDF를 좀 더 쓰기 편하게 만들고 싶다'는 지극히 실용적인 필요, 그리고 MuPDF의 설계에 대한 순수한 매료에서 출발했습니다.
 

초창기 개발 (2016~2021년)

2016년 8월에 나온 첫 릴리스는 페이지 렌더링, 텍스트 추출, 그리고 메타데이터·목차(TOC) 조작 같은 기본적인 문서 편집 기능을 갖춘, 작지만 강력한 기능 세트였습니다.
API는 의도적으로 단순하게 설계했는데, 이는 '명료함과 속도'라는 MuPDF의 철학을 이어받으면서도 실제 어플리케이션을 만드는 개발자의 시선에 초점을 맞춘 결과였습니다. 초기 사용자들은 이 성능과 직관성의 조합을 반겼고, 이후에도 계속 이어질 성향이 드러났습니다. 바로 사용자들이 '더 편리한 고수준의 기능'을 원하면서도, MuPDF가 제공하는 속도만큼은 절대 포기하고 싶어하지 않는다는 점이었습니다.

초기 다운로드 수는 많지 않았지만 꾸준히 늘어갔습니다. 외부 커맨드라인 도구에 의존하지 않고는 구현하기 어려웠던 '안정적인 파이썬 PDF 렌더링'을 필요로 하던 개발자들이 하나둘 프로젝트로 모여들었습니다. 이 초창기에 PyMuPDF는 실전에서 바로 쓸 수 있는 실용적인 도구로 자리를 잡았고, 사용자 문의나 도움 요청에 빠르게 반응하는 태도가 이 프로젝트를 대표하는 특징으로 굳어지기 시작했습니다.
 

이후 몇 년에 걸쳐 PyMuPDF는 완만한 속도로 진화하며 새로운 기능과 객체 유형을 계속 추가해 나갔습니다.

  • 문서 병합·분할·재구성 기능 지원
  • 주석(Annotation) 기능
  • 양식 필드(Form field) 처리
  • 텍스트 추출의 정확도와 구조 개선
 

2021년 1월, PyPI 누적 다운로드 수는 200만 회를 넘어섰습니다. 2021년 가을에는 MuPDF의 통합 OCR 기능을 PyMuPDF에도 도입했습니다. 이로써 PyMuPDF는 OCR을 기본 기능으로 제공한 최초의 문서 관리 도구가 됐습니다.
 

사용자들의 반응은 고무적이었습니다. 이후 몇 달간 다운로드 수가 가파르게 늘어나며, 많은 사용자가 PyMuPDF를 눈여겨보고 있었습니다. 의미 있는 전환점도 하나 찾아왔습니다. MuPDF를 만든 회사인 Artifex Software(현재 이파피루스의 자회사)가 PyMuPDF에 관심을 보이면서, 2021년 2월 공식적인 판매 대행 계약(Sales Representation Agreement)을 맺게 된 것입니다.

이 파트너십으로 는 더 깊은 기술적 통찰을 얻을 수 있었고, MuPDF 개발 진행 상황과의 조율도 한결 원활해졌으며, 장기적인 유지보수 방향도 더 명확해졌습니다. 이는 곧 PyMuPDF가 MuPDF 생태계의 어엿한 한 축이 됐다는 뜻이기도 했습니다.

그로부터 1년 남짓 지난 2022년 5월, Artifex는 PyMuPDF를 인수했습니다. 이는 프로젝트 역사의 진짜 전환점이었습니다. 이 인수로 PyMuPDF와 MuPDF의 관계가 공식화됐고, 파이썬 바인딩이 Artifex의 제품 전략 아래에서 계속 유지·지원·확장될 수 있는 기반이 마련됐습니다. PyMuPDF는 커뮤니티가 이끄는 Wrapper 프로젝트에서 시작했지만, 상용 PDF 엔진의 공식 구성 요소로 자리매김했습니다.

Artifex가 PyMuPDF를 인수하고 얼마 지나지 않아, 회사는 그에게 프로젝트의 미래를 함께 만들어가자고 제안했습니다. 이미 그의 일상의 일부가 되어버린 프로젝트에 이렇게 기여할 수 있다니, 좀처럼 오지 않는 기회라고 느꼈거든요. 그렇게 그는 어느새 MuPDF 기술 전문가들과 거의 매일 아이디어를 나누고, 설계상의 선택을 논의하고, 새로운 방향을 탐색하는 사람이 되어 있었습니다. 한때는 도무지 닿을 수 없을 것만 같았던 깊이의 PDF 내부 지식을 가진 사람들로부터 하나하나 배워가면서 말이죠.

2023년 8월에는 표(table) 인식 모듈을 통합했습니다. 그야말로 사용자들이 오래 기다려온 기능이었고, 그 반응은 다운로드 수로 고스란히 나타났습니다. 이후 두 달 만에 다운로드 수는 300만, 이어 700만 회까지 급격히 치솟았습니다.
 

LLM 시대: PyMuPDF4LLM (2024~2026년)

2024년 4월 PyMuPDF4LLM가 출시되며 또 하나의 새로운 장이 열렸습니다. 오랫동안 품어온 '문서 이해'에 대한 관심과 실전 AI 워크플로가 마침내 하나로 합쳐진 순간이었죠. PyMuPDF는 이제 단순히 PDF를 다루는 개발자용 도구를 넘어, 전통적인 문서 처리 방식과 최신 언어 모델(LLM) 사이를 잇는 다리가 됐습니다.

PyMuPDF4LLM이 성장해가는 과정을 지켜보는 건 정말 놀라운 경험이었습니다. 정확도를 높이기 위해 시간과 하드웨어 자원을 더 투입해야 하는 다른 제품들과 달리, PyMuPDF4LLM은 문서 처리 성능과 동시에 속도와 자원 효율성 면에서 압도적인 선택지로 자리 잡았습니다. 처음엔 하나의 실험적인 확장 기능이었지만, 곧 실전 문서 이해 워크플로에서 정밀함과 속도, 그리고 단순함을 흔치 않은 균형으로 결합해내며 그 진가를 증명해 보였습니다.

이번에도 시장의 반응은 다운로드 수로 확인할 수 있습니다. PyMuPDF4LLM은 지금까지 누적 1억 6,000만 회 다운로드를 기록했습니다. 4LLM을 만드는 작업은 힘들면서도 무척 보람 있는 여정이었습니다. API를 설계하고, 추출 로직을 다듬고, 페이지 레이아웃 인식을 위한 그래프 신경망(Graph Neural Network) 같은 AI 기술을 접목하는 과정에서, 그는 창작의 몰입감을 다시 맛볼 수 있었습니다. 그리고 앞으로 얼마나 더 많은 가능성이 남아 있는지도 새삼 깨닫게 됐습니다.

오늘날 PyMuPDF의 미래를 생각하면, 그는 설렘과 감사가 뒤섞인 감정을 느끼고 있다고 말합니다. 설렘은, MuPDF가 다져온 기술적 토대와 새로운 AI 기반 역량이 만나면서 불과 몇 년 전만 해도 상상조차 하기 힘들었던 길들이 열리고 있기 때문입니다. 감사는, 10년 넘게 그의 곁을 지켜준 이 프로젝트에서 아이디어를 내고, 기능을 만들고, 방향을 함께 그려가는 이 여정의 한 부분으로 계속 남을 수 있기 때문입니다.
 

숫자로 보는 10년

총 113회 릴리스가 있었습니다.

지난 10년간 PyMuPDF가 이뤄낸 성과를 정리해보 다음과 같습니다.

  • 길고 꾸준한 릴리스 이력
  • PyPI 누적 10억 회 다운로드
  • 연구, 기업 자동화, AI 워크플로우 전반에 걸친 폭넓은 채택
  • 수천 개 프로젝트에서 쓰이고 있는 안정적인 API
  • PyMuPDF 위에 계속해서 더해지고 있는 도구 생태계
  • 계속 진화하는 MuPDF 엔진과의 지속적인 통합

이 숫자들은 단순한 기술적 성공을 넘어, 개발자들이 이 라이브러리에 보내는 신뢰를 그대로 보여줍니다.
 

PyMuPDF를 특별하게 만드는 것들

PyMuPDF의 정체성을 규정하는 몇 가지 특징이 있습니다.

  • 성능: MuPDF의 속도를 파이썬에서도 그대로, 깔끔하게 활용할 수 있습니다.
  • 정밀함: 복잡한 PDF에서도 정확한 렌더링과 추출이 가능합니다.
  • 폭넓은 지원: 여러 문서 포맷을 아우릅니다.
  • 안정성: 하위 호환성을 지키는 일관된 API를 제공합니다.
  • 실용성: 이론적 완결성보다 실제 사용 사례에 초점을 맞춥니다.
  • 커뮤니티: 값진 피드백과 다양한 문서를 제공해주는 탄탄한 사용자 기반이 있습니다.
  • 전문적인 뒷받침: Artifex와 ePapyrus의 관리 아래 장기적인 지속 가능성을 확보하고 있습니다.

이러한 특성들이 모여, PyMuPDF는 유연성과 신뢰성을 동시에 원하는 개발자들에게 믿고 쓸 수 있는 도구가 됐습니다.
 

앞으로의 방향

앞으로 PyMuPDF가 중점적으로 고민할 세 가지 핵심 영역을 소개합니다.
 

1. 문서 인지(Document Perception)

저희는 문서란 한 번 파싱한 뒤 그 결과만 저장해두고 원본은 잊어버려도 되는 대상이 아니라, 지속적으로 이해하고 검증해야 하는 대상이라는 점을 점점 더 절감하고 있습니다. 이런 인식을 바탕으로, PyMuPDF는 단순한 '문서 파싱(document parsing)' 지원을 넘어 '문서 인지(document perception)'를 지원하는 방향으로 나아가야 한다고 믿습니다.

즉, 하나의 문서를 여러 번 다시 들여다보면서, 그때그때 다른 질문에 맞춰 다른 정보를 뽑아낼 수 있어야 한다는 것이 핵심입니다. 예를 들어, 처음에는 후속 파이프라인을 위해 문서에서 표를 추출하는 데 관심이 있었더라도, 다른 날에는 문서의 한 영역이 다른 영역과 어떻게 연결되는지가 더 궁금해질 수 있습니다. 이 경우 문서 자체는 달라지지 않았지만, 질문이 달라진 것입니다. PyMuPDF는 바로 이런 상황에 대응할 수 있어야 합니다. 즉, 문서를 인지하는 다양한 방식과 페이지 요소들 사이의 상호관계를 설명하고 지원할 수 있어야 합니다.
 

2. 검증 가능한 근거 객체(Verifiable Evidence Objects)

또 다른 중요한 측면은 원본 데이터에 대한 최선의 근거를 제시할 수 있는 능력입니다. LLM이 문서에 질의를 던질 때, 그 답변의 근거도 함께 보여줄 수 있어야 한다는 뜻이죠. 이런 맥락에서 저희는 문서를 점점 더 '근거 객체(evidence object)'로 바라보고 있습니다. 즉, 실제 근거와 신뢰도 점수(confidence score)를 함께 제시하며 질문을 뒷받침할 수 있는 대상으로 보는 것입니다. 문서 내 특정 영역을 검증해서 신뢰할 수 있고 빠르게 근거 있는 결과를 보여줄 수 있는 능력은 앞으로 점점 더 중요해질 것입니다.
 

3. 문서 에이전트 지원(Supporting Document Agents)

에이전트들이 점점 더 정교해지면서, 단 한 번의 검색(retrieval) 단계에만 의존하는 경우는 점점 줄어들 것입니다. 대신 추론 과정 내내 문서를 계속 들여다보고, 필요에 따라 문서의 서로 다른 영역을 살펴보게 될 것입니다. 나아가 문서를 직접 편집하고 갱신하거나, 코멘트를 달거나, 특정 내용을 마스킹(redaction)하는 역할까지 맡게 될 수도 있습니다. 이렇게 시스템이 성숙해가면서, 문서 에이전트가 단순 파싱을 넘어 장시간 이어지는 워크플로우를 직접 수행하는 모습도 보게 될 것입니다.

예를 들어 어떤 조직이 들어오는 문서를 계속 모니터링하는 에이전트를 운영한다고 가정해봅시다. 새로운 계약서가 도착하면, 이 에이전트는 자동으로 문서 유형을 분류하고, 핵심 조항을 추출하고, 필요한 경우 기밀 정보를 마스킹한 뒤, 문서 유형에 따라 승인 절차로 넘길 수 있습니다. 이 과정의 매 단계마다 PyMuPDF는 이러한 작업을 뒷받침할 수 있는 결정론적(deterministic) 기능 모음을 제공해야 합니다.

PyMuPDF가 바탕에 두고 있는 핵심 운영 원칙이 바로 이 '결정론적 문서 처리'입니다. 이 원칙 덕분에 AI 시스템은 자신들의 확률적 계획(probabilistic planning)결정론적 실행(deterministic execution)과 결합해도 된다는 신뢰를 에이전트에게 부여할 수 있습니다.

 



앞으로 무엇이 펼쳐지든, PyMuPDF가 지켜온 근본 가치인 명료함(clarity), 성능(performance), 실용성(practicality)만큼은 그 중심에 그대로 남을 것입니다. 그리고 PyMuPDF는 앞으로도 개발자들의 실제 요구, 그리고 AI 시대를 맞아 문서를 분석하고 이해하는 방식 자체가 겪고 있는 더 큰 흐름의 변화, 이 두 가지 모두를 함께 반영하며 진화해 나가야 할 것입니다.
 


 

🎉 Happy Coding! 🙂

10주년을 맞은 PyMuPDF에 대해 더 궁금하시다면, 이파피루스 홈페이지를 방문해주세요!

👉 문서 데이터 추출 파이썬 라이브러리 PyMuPDF Pro

COPYRIGHT 2025,
ePapyrus INC.

DOCUMENT AI
FOR ENTERPRISE

CONTACT :
COMPANY

(우)13493 경기도 성남시 분당구 판교역로 230 4층 408호

TEL

02-2051-5207

EMAIL

support@epapyrus.com

FAX

02-2051-5209