AnyDoc – 텍스트 기반 문서의 초고속 Markdown 변환 라이브러리

  • 카카오톡 공유하기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 링크 복사하기

“Firecrawl이 개발한 Rust 기반 다형식 문서 파서”

기업 및 개발자 커뮤니티에서는 다양한 문서 포맷을 일관된 형태로 가공하는 요구가 급증하고 있습니다. 특히 LLM(대형 언어 모델) 기반 애플리케이션에서는 마크다운 형식이 프롬프트 입력 및 출력의 표준으로 자리 잡았습니다. Firecrawl이 공개한 AnyDoc은 Word·PowerPoint·Excel·PDF·EPUB 등 14종 파일을 단일 파이프라인으로 변환하고, 평균 4 ~ 5 ms라는 뛰어난 처리 속도를 제공합니다. 이 포스트에서는 AnyDoc의 설치 환경, 핵심 사용 방법, 그리고 실제 프로젝트에 적용할 때 기대할 수 있는 주요 장점을 체계적으로 설명합니다.

<Anydoc website , 출처: https://firecrawl.github.io/anydoc/>

설치 환경

AnyDoc은 Rust 기반 크레이트와 다양한 언어 바인딩을 제공합니다. 따라서 프로젝트 특성에 따라 다음 중 하나를 선택하여 설치할 수 있습니다.

  1. Rust Cratecargo add anydoc 명령어 하나로 Rust 프로젝트에 바로 포함 가능.
  2. Node.js – npm 레지스트리 @firecrawl/anydocnpm i @firecrawl/anydoc 로 설치.
  3. Python – PyPI 패키지 firecrawl-anydocpip install firecrawl-anydoc 로 배포.
  4. WebAssembly@firecrawl/anydoc-wasm 를 npm 혹은 CDN 으로 로드하여 브라우저 환경에서도 활용 가능.
  5. CLInpx @firecrawl/anydoc 로 즉시 실행 가능한 커맨드라인 툴 제공.

설치 요구 조건은 다음과 같습니다.

  • 운영체제: Windows 10 이상, macOS 12 이상, 주요 Linux 배포판 (Ubuntu 20.04 이상)
  • Rust ≥ 1.70 (Crate 사용 시)
  • Node.js ≥ 18 (npm 바인딩 사용 시)
  • Python ≥ 3.9 (PyPI 패키지 사용 시)
  • WASM 실행을 위한 최신 브라우저 (Chrome ≥ 106, Firefox ≥ 102 등)

플랫폼 별 자세한 바이너리 배포는 GitHub Release 페이지에서 확인해주세요.

주요 사용 방법

1) 파일 → Markdown 변환 (CLI)

npx @firecrawl/anydoc convert ./sample.docx -o ./output.md

위 명령은 입력 파일 형식을 자동 감지하고, GitHub‑Flavored Markdown(GFM) 형태로 변환합니다. 옵션 --detect-format 를 명시하면 바이트 기반 포맷 탐지를 강제할 수 있습니다.

2) Node.js API

import anydoc from "@firecrawl/anydoc";
const markdown = await anydoc.convert(Buffer.from(fileData), {
  // optional: hint format (\"docx\", \"pdf\" 등)
  formatHint: "pdf",
    // OCR 옵션 (PDF에 텍스트가 없을 경우)
  ocr: true
  }
);
console.log(markdown);

비동기 convert 함수는 Uint8Array 혹은 Buffer 형태의 바이너리를 입력으로 받아 Promise<string> 형태의 마크다운을 반환합니다.

3) Python Wrapper

from firecrawl_anydoc import AnyDoc
converter = AnyDoc()
markdown = converter.convert(open("sample.xlsx", "rb").read())

print(markdown)

Python 인터페이스는 내부적으로 Rust FFI를 호출하므로, 속도 차이가 거의 없으며 convert_error 예외를 통해 상세 오류 원인을 파악할 수 있습니다.

브라우저 내에서 파일을 직접 변환하므로 서버 비용을 절감하고, 사용자 프라이버시를 강화할 수 있습니다.

4) LLM 에이전트 연동 (Skill)

Firecrawl이 제공하는 Skill을 통해 Claude Code·Codex·Cursor 등 LLM 플랫폼에 바로 연결합니다.

이후 에이전트는 “문서 업로드 → 마크다운 변환 → 프롬프트 전달”의 흐름을 자동화합니다.

데모 URL

실제로 사용을 해보고 싶다면 아래의 링크에서 직접 파일을 올려서 Markdown으로 문서의 결과를 확인할 수 있습니다.

https://firecrawl.github.io/anydoc

<샘플 문서 >

<샘플 변환 결과>

핵심 특장점

  • 초고속 처리 – 100개의 실험 문서(14 포맷) 기준 Median 4.4 ms, 최고 81/100 점수.
  • 단일 파이프라인bytes → format detection → parser → Document 모델 → GFM serializer → markdown 구조로, 포맷 추가 시 중앙 로직만 수정하면 됩니다.
  • 전문 서식 보존 – 제목, 하이퍼링크, 목록, 표, 이미지, 첨부 파일 등 모든 일반 문서 요소를 100 %에 가깝게 유지합니다.
  • 자동 포맷 감지 – 파일 헤더 바이트를 분석해 14종 포맷을 정확히 식별합니다. 사용자는 formatHint 로 힌트를 제공해 오탐지를 최소화합니다.
  • 다중 배포 모델 – 로컬 바이너리, 클라우드 API, WASM, LLM Skill 등 5가지 배포 옵션 제공.
  • 세분화된 오류 처리ConvertError 열거형에 Unsupported, Malformed, Encrypted, ResourceLimit 등 7가지 구체적 원인 포함.
  • 보안·프라이버시 – 파일은 메모리 내에서만 처리되며, OCR 옵션을 제외하면 외부 네트워크 호출을 수행하지 않습니다.

성능 벤치마크

다음 표는 AnyDoc과 주요 경쟁 도구(LibreOffice, pandoc, docling, mammoth, unstructured)의 평균 변환 속도와 정확성을 비교한 결과입니다.

평균 처리 시간(ms)정확도 점수(100점 만점)지원 포맷 수
AnyDoc4.49214
LibreOffice (CLI)41.27812
pandoc38.78110
docling55.3749
mammoth62.1708
unstructured48.97611

AnyDoc은 평균 속도에서 10배 이상 우수하며, 특히 docxpdf 포맷에서 88 ~ 92점의 높은 정확도를 기록합니다.

활용 시나리오

  1. LLM 기반 문서 요약 서비스
    사용자가 업로드한 다양한 포맷 파일을 AnyDoc으로 마크다운 변환 후, 프롬프트에 삽입해 자동 요약·핵심 키워드 추출을 수행할 수 있습니다.
  2. 멀티 포맷 변환 마이크로서비스
    Docker 기반 API 서버에 AnyDoc을 래핑하여 POST /convert 엔드포인트 제공. 파일 업로드 → 변환 → JSON 형태 마크다운 반환 구조.
  3. 클라이언트‑사이드 문서 편집기
    WASM 모듈을 웹 에디터에 내장해 사용자는 로컬 파일을 바로 마크다운 형태로 미리보기하고, 서버 전송 전 검증할 수 있습니다.
  4. 보안 규제 대응
    암호화된 파일은 ConvertError::Encrypted 로 즉시 차단하고, 로그에 상세 원인만 기록해 GDPR·CCPA 요구사항을 충족합니다.

핵심 요약

  • AnyDoc은 14개 포맷을 4 ~ 5 ms 안에 GFM 마크다운으로 변환하는 초고속 Rust 엔진입니다.
  • CLI·Node·Python·WASM·Skill 등 다중 언어·플랫폼 지원으로 개발 흐름에 손쉽게 통합 가능합니다.
  • 포맷 자동 감지·세분화된 오류·보안·프라이버시 설계가 어플리케이션 신뢰성을 높일수 있습니다.
  • 벤치마크 결과, 기존 도구 대비 10배 이상 빠른 속도와 10~15점 높은 정확도를 제공하고 있습니다.

맺음말

Firecrawl AnyDoc은 현대 대규모 문서 인프라에서 가장 핵심이 되는 변환 단계—”문서 → 마크다운“을 단일 라이브러리로 최적화하였습니다.

초고속 처리와 포맷 보존 능력, 그리고 풍부한 배포 옵션은 LLM 에이전트, 클라우드 마이크로서비스, 브라우저 기반 워크플로우 등 다양한 사용 사례에 즉시 적용할 수 있는 경쟁력을 갖고 있다고 생각합니다. 특히 보안 요구가 높은 기업 환경에서도 메모리 내 처리와 상세 오류 코드를 통해 투명한 운영이 가능하므로, 차세대 자동화·지식베이스 구축 프로젝트에서 활용되면 매우 유용할 것 같습니다.


참고자료

https://firecrawl.github.io/anydoc

https://github.com/firecrawl/anydoc


게시됨

카테고리

,

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다