TuBrief
구독 채널
비디오
커뮤니티

레거시 문서 처리 파이프라인 현대화와 비용 절감

TuBrief 편집팀
2026년 4월 22일
0
컴퓨터/소프트웨어

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

한국어EspañolEnglish中文हिन्दीالعربيةDeutschFrançaisPortuguêsРусскийBahasa Indonesia日本語

관련 영상

이제 RAG 파이프라인은 이렇게 구축하지 마세요... 대신 MarkItDown을 사용하세요6:17

이제 RAG 파이프라인은 이렇게 구축하지 마세요... 대신 MarkItDown을 사용하세요

Better Stack

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

레거시 문서 처리 파이프라인 현대화와 비용 절감

마크다운 변환 로직 통합으로 유지보수 줄이기

수백 개의 PDF, PPT, Excel 파일을 RAG 시스템에 쑤셔 넣느라 매주 5시간씩 야근하고 있다면, 문제의 원인은 파편화된 파싱 라이브러리입니다. PyPDF2나 openpyxl을 섞어 쓰는 기존 구조는 코드 복잡도만 높입니다. 마이크로소프트의 MarkItDown을 도입하면 복잡한 분기 처리 로직을 걷어낼 수 있습니다.

파이프라인을 리팩토링할 때는 프로세서 팩토리 패턴을 쓰십시오.

  1. 포맷별로 흩어진 라이브러리를 치우고 MarkItDown의 convert() 함수로 호출 인터페이스를 단일화합니다.
  2. 문서 복잡도에 따라 처리 방식을 분기하십시오. 단순 텍스트는 가벼운 파서를, 표가 많은 복잡한 문서는 MarkItDown을 선택합니다.
  3. 모든 의존성은 Docker 컨테이너(Python 3.11 이상)로 격리하고 FastAPI로 배포하십시오.

이 구조는 파싱 엔진을 독립적으로 스케일링하게 만듭니다. 표 구조가 살아있으면 LLM이 문서를 읽을 때 표 보존 오류를 34% 줄입니다(Microsoft 2024 발표 기준).

마크다운 전처리로 API 비용 30% 아끼기

임베딩 토큰 비용은 마크다운 파일의 길이에 직접 비례합니다. MarkItDown이 뽑아낸 결과물에는 LLM에 굳이 보낼 필요 없는 메타데이터나 노이즈가 섞여 있습니다. 이를 거르기만 해도 API 비용을 30% 줄일 수 있습니다.

효율적인 필터링 로직을 구축하십시오.

  1. Python의 re 모듈을 사용하여 연속된 개행(\n{3,})을 두 개로 줄이고, 반복되는 하단 저작권 문구나 HTML 태그를 정규표현식으로 삭제합니다.
  2. MarkdownHeaderTextSplitter를 사용하여 헤더 단위로 청킹하십시오. 검색용 자식 청크와 컨텍스트용 부모 청크를 나누어 관리하면 검색 정확도가 올라갑니다.
  3. MD5 해시를 사용하여 동일한 보고서의 중복 임베딩을 원천 차단하십시오.

토큰 효율성을 챙기면 매달 나가는 엔터프라이즈 API 비용을 눈에 띄게 낮출 수 있습니다.

스냅샷 테스트로 데이터 품질 관리하기

라이브러리 버전이 바뀌면 파싱 결과도 미세하게 틀어집니다. 엔지니어가 일일이 파일을 열어보며 수동 검증하는 짓은 그만두십시오. 스냅샷 테스트를 도입하면 품질 저하를 즉시 잡아낼 수 있습니다.

회귀 방지를 위한 단위 테스트 환경을 만드십시오.

  1. pytest-regressions 플러그인을 설치하고 잘 변환된 마크다운을 골든 마스터 파일로 저장합니다.
  2. 테스트 스크립트가 매번 변환 결과와 골든 마스터를 비교하게 하십시오. 차이(diff)가 발생하면 즉시 알림을 보냅니다.
  3. 문장 트랜스포머 모델을 써서 원본과 변환본 간 코사인 유사도를 측정하십시오. 형식 보존율이 0.9 미만일 때만 로그를 남기도록 설정하면 됩니다.

이 자동화 체계는 매주 5시간씩 잡아먹던 수동 대조 작업을 없애줍니다.

병렬 처리로 배치 작업 속도 높이기

수천 개의 문서를 순차적으로 처리하는 것은 시스템을 낭비하는 일입니다. concurrent.futures.ProcessPoolExecutor를 써서 배치 처리를 병렬화하면 며칠 걸리던 작업을 수 시간으로 끝낼 수 있습니다.

병렬화 아키텍처는 다음과 같이 구현하십시오.

  1. 서버 메모리가 16GB라면 워커는 20~25개로 제한하십시오. 무리하게 늘리면 메모리 에러만 납니다.
  2. 파일을 50~100개 단위 배치로 쪼개고, 매 배치마다 가비지 컬렉션을 강제로 호출하여 메모리 누수를 잡으십시오.
  3. 10MB가 넘는 대용량 PDF는 전용 큐로 분리하여 고성능 워커가 전담하게 만드십시오.

이 방식은 데이터 최신성을 유지하면서도 시스템 자원을 효율적으로 쓰게 돕습니다.