# TREX - Rust로 만든 PDF 테이블 추출 엔진 (딥러닝으로 정확도 개선)

> Clean Markdown view of GeekNews topic #27081. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27081](https://news.hada.io/topic?id=27081)
- GeekNews Markdown: [https://news.hada.io/topic/27081.md](https://news.hada.io/topic/27081.md)
- Type: news
- Author: [calmlake79](https://news.hada.io/@calmlake79)
- Published: 2026-02-28T23:52:42+09:00
- Updated: 2026-02-28T23:52:42+09:00
- Original source: [github.com/dreamyoungs](https://github.com/dreamyoungs/trex)
- Points: 10
- Comments: 0

## Summary

**TREX**는 Rust로 구현된 경량 PDF 테이블 추출 엔진으로, 외부 런타임 의존성 없이 단일 바이너리로 동작합니다. 기존 파이썬 기반 도구들이 서버리스 환경에서 메모리 제약을 겪는 문제를 해결하며, 약 30MB 수준의 메모리로 Cloud Run이나 Lambda에서도 안정적으로 실행됩니다. 내장된 **DL Router**가 페이지 피처를 분석해 Lattice·Stream 전략을 자동 선택하고, 추출 실패 데이터를 재학습에 반영해 정확도를 점진적으로 높일 수 있습니다.

## Topic Body

- PDF 테이블 추출을 위한 Rust 기반 오픈소스 엔진  
- 기존 파이썬 도구(Camelot, Tabula, pdfplumber)는 OpenCV, Ghostscript, Java 등 무거운 런타임 의존성이 필요하여 서버리스 환경에서 메모리 제약이 큼  
- TREX는 단일 바이너리로 외부 의존성 없이 동작하며, 메모리 ~30MB로 Cloud Run/Lambda에서 OOM 없이 실행 가능  
- Lattice(격자선 기반) / Stream(좌표 추론) 두 가지 파싱 전략을 내장하며, DL Router로 페이지별 최적 전략을 자동 선택 가능  
- **딥러닝 기반 DL Router** 가 페이지 피처를 분석하여 최적 파싱 전략(Lattice/Stream/Blend)을 자동 선택. 운영 중 추출 실패 이벤트를 수집하고 ONNX 모델을 재학습하면 정확도를 지속적으로 개선할 수 있음  
- Node.js에서 npm i @dreamyoungs/trex (CLI 래퍼) 또는 npm i @dreamyoungs/trex-node (NAPI-RS 네이티브 바인딩)으로 바로 사용 가능  
- Docker REST API, Python 바인딩도 지원하며, MIT / Apache-2.0 듀얼 라이선스

## Comments



_No public comments on this page._
