AI 도구가 개발자와 지식 작업자의 일상 업무에 빠르게 자리 잡으면서, 문서를 어떻게 준비하고 관리하느냐도 점점 중요해지고 있습니다. 특히 RAG(Retrieval-Augmented Generation) 기반 검색이나 문서 질의응답 환경에서는 문서의 크기, 구조, 분할 방식이 검색 품질에 직접적인 영향을 줄 수 있습니다.
대용량 PDF나 Word 문서를 그대로 업로드하면 하나의 문서 안에 여러 주제가 섞여 있어 원하는 정보를 정확히 찾기 어려울 수 있습니다. 반대로 문서를 적절한 단위로 나누면 AI가 필요한 정보를 더 좁은 범위에서 탐색할 수 있어 검색과 요약, 질의응답에 더 유리한 구조를 만들 수 있습니다.
이런 문제를 해결하기 위해 사용할 수 있는 도구가 PDF Splitter for Copilot입니다. 이 프로그램은 PDF 및 Word 문서를 지정한 페이지 단위로 나누거나, 필요에 따라 RAG용 JSONL 파일을 생성할 수 있도록 지원하는 Windows 데스크톱 애플리케이션입니다.
PDF Splitter for Copilot이란?
PDF Splitter for Copilot은 PDF 및 Word 파일을 AI 검색과 문서 관리에 활용하기 쉽도록 작은 단위로 분할하는 도구입니다.
기본 기능은 단순합니다. 사용자가 PDF 또는 Word 파일을 추가하고, 원하는 페이지 단위를 입력하면 프로그램이 문서를 여러 개의 PDF 파일로 나누어 저장합니다. 분할 결과는 원본 파일이 있는 위치의 output_split 폴더에 생성됩니다.
최근 버전에서는 단순 페이지 분할뿐 아니라, RAG 파이프라인에서 활용할 수 있는 JSONL 내보내기 기능과 LLM을 활용한 문맥 기반 분할 기능도 포함되어 있습니다.
왜 문서 분할이 필요한가?
RAG 환경에서는 원본 문서를 작은 청크(chunk)로 나누어 색인하고, 사용자의 질문과 관련성이 높은 청크를 검색한 뒤, 그 결과를 LLM에 전달하는 방식이 일반적입니다.
이때 문서가 너무 크면 여러 주제가 한 덩어리에 섞이기 쉽고, 반대로 너무 작게 나누면 필요한 문맥이 끊길 수 있습니다. 따라서 문서의 구조와 사용 목적에 맞게 적절한 크기로 나누는 것이 중요합니다.
예를 들어 100페이지짜리 기술 매뉴얼을 그대로 다루는 것보다, 10페이지 단위 또는 장·절 단위로 나누어 관리하면 특정 기능이나 오류 해결 방법을 찾을 때 더 효율적인 검색 구조를 만들 수 있습니다.
PDF Splitter for Copilot은 이러한 전처리 과정을 간단하게 수행할 수 있도록 도와줍니다.
주요 기능
1. PDF 파일 분할
대용량 PDF 파일을 사용자가 지정한 페이지 수 단위로 자동 분할할 수 있습니다.
예를 들어 100페이지 문서를 10페이지 단위로 설정하면 다음과 같은 형태로 나뉩니다.
sample_page01-10.pdf
sample_page11-20.pdf
sample_page21-30.pdf
...이 방식은 매뉴얼, 보고서, 논문, 계약서처럼 페이지 수가 많은 문서를 관리할 때 유용합니다.
2. Word 문서 변환 후 분할
Word 문서(.doc, .docx)를 PDF로 변환한 뒤 분할하는 기능도 제공합니다.
Word 변환 기능에는 Syncfusion 라이브러리가 사용되며, Microsoft Office가 설치되지 않은 환경에서도 Word 문서 처리를 목표로 설계되어 있습니다. 다만 워터마크 없는 변환을 사용하려면 Syncfusion 라이선스 키 설정이 필요할 수 있습니다.
3. 여러 파일 동시 처리
여러 개의 PDF 또는 Word 파일을 한 번에 추가하고 처리할 수 있습니다.
문서가 많은 프로젝트, 제품 매뉴얼 묶음, 교육 자료, 내부 지침서 등을 일괄 분할할 때 편리합니다.
4. 실시간 진행 상황 확인
작업 중 현재 처리 단계와 진행률을 확인할 수 있습니다.
대용량 파일이나 여러 파일을 처리할 때 사용자는 프로그램이 멈춘 것인지, 정상적으로 진행 중인지 쉽게 확인할 수 있습니다.
5. RAG JSONL 내보내기
일반적인 PDF 분할 외에도, RAG 인덱싱에 활용할 수 있는 JSONL 파일을 생성하는 기능을 제공합니다.
이 기능은 분할된 문서의 페이지 범위, 청크 정보, 해시값, 검색 정책 힌트 등을 포함한 구조화 데이터를 생성하는 데 목적이 있습니다.
단, 이 프로그램 자체가 임베딩 생성, 벡터 검색, 하이브리드 검색, 리랭킹까지 수행하는 것은 아닙니다. JSONL 내보내기는 이후 별도의 RAG 파이프라인에서 활용하기 위한 전처리 기능에 가깝습니다.
6. LLM 기반 Context Split
고정 페이지 단위 분할 외에, LLM을 활용해 문서의 의미 흐름에 맞는 페이지 범위를 제안받는 Context Split 기능도 제공됩니다.
이 기능을 사용하면 OpenAI API 설정이 필요하며, 프로그램은 분할 파일을 바로 생성하기 전에 제안된 분할 범위를 미리 보여줍니다. 사용자는 제목, 페이지 범위, 분할 이유, 신뢰도 등을 확인한 뒤 실제 PDF 생성을 진행할 수 있습니다.
문서의 장·절 구조나 주제 흐름을 기준으로 나누고 싶을 때 유용한 기능입니다.
기술 스택
PDF Splitter for Copilot은 Windows 데스크톱 환경을 위한 WPF 애플리케이션입니다.
현재 프로젝트 기준 주요 기술 스택은 다음과 같습니다.
| 구분 | 사용 기술 |
|---|---|
| 프레임워크 | .NET 9.0 Windows |
| UI | WPF |
| PDF 처리 | iText 7 |
| Word 처리 | Syncfusion DocIO, Syncfusion DocIORenderer |
| PDF 변환 보조 | Syncfusion PDF |
| UI 구성 | ModernWpfUI, FluentWPF |
| 로깅 | Serilog |
| 배포 | 단일 실행 파일 배포 지원 |
특히 Release 설정에서는 단일 실행 파일 배포 옵션이 포함되어 있어, 일반 사용자가 복잡한 설치 과정 없이 실행 파일 중심으로 사용할 수 있도록 구성되어 있습니다.
사용 예시
대용량 매뉴얼 분할
제품 매뉴얼이나 운영 가이드를 일정 페이지 단위로 나누면, 특정 기능이나 오류 해결 방법을 찾을 때 더 작은 범위에서 문서를 검색할 수 있습니다.
학술 논문 또는 보고서 정리
논문, 연구 보고서, 컨설팅 문서 등을 서론·방법론·결과·결론 단위에 가깝게 나누면, AI 요약이나 문서 질의응답에 활용하기 좋습니다.
계약서 및 정책 문서 관리
계약서, 약관, 내부 규정 문서를 조항 또는 섹션 단위로 나누면 특정 조건이나 예외 조항을 찾기 쉬워집니다.
개발 문서와 API 문서 분할
API 명세서, 시스템 설계서, 프로젝트 문서를 모듈별로 나누면 개발자가 필요한 부분만 빠르게 찾아볼 수 있습니다.
설치 및 실행 방법
일반 사용자
- GitHub Releases 페이지에서 최신 버전을 다운로드합니다.
- 압축 파일이 제공되는 경우 압축을 해제합니다.
PDFSplitterforCopilot.exe를 실행합니다.- 필요하면 Syncfusion 라이선스 키를 설정합니다.
개발자
소스 코드에서 직접 실행하려면 다음과 같은 방식으로 진행할 수 있습니다.
git clone <GitHub 저장소 주소>
cd PDFSplitterforCopilot
dotnet restore
dotnet build
dotnet run기본 사용법
파일 추가
Add files버튼을 클릭하거나 PDF/Word 파일을 창에 드래그 앤 드롭합니다.작업 선택
PDF 분할, Word 변환, Word 일괄 변환 등 필요한 작업을 선택합니다.분할 방식 선택
일반적인 경우Fixed pages방식을 선택하고 페이지 수를 입력합니다.
문맥 기반 분할이 필요하면Context Split (LLM)을 선택합니다.분할 실행
Run또는 분할 실행 버튼을 클릭합니다.결과 확인
원본 파일과 같은 위치에 생성되는output_split폴더에서 결과 파일을 확인합니다.
Syncfusion 라이선스 설정
Word 문서를 PDF로 변환하는 기능은 Syncfusion 라이브러리를 사용합니다. 워터마크 없는 변환을 위해서는 Syncfusion 라이선스 키가 필요할 수 있습니다.
Syncfusion Community License는 개인 개발자나 일정 조건을 만족하는 소규모 조직에서 무료로 사용할 수 있습니다. 다만 연 매출, 개발자 수, 전체 직원 수, 외부 투자금 등 자격 조건이 있으므로 실제 사용 전 공식 라이선스 조건을 확인하는 것이 좋습니다.
라이선스 키는 다음 방식 중 하나로 설정할 수 있습니다.
1. license.config 파일 사용
license.config.example 파일을 license.config로 복사한 뒤,
파일 안에 실제 Syncfusion 라이선스 키를 입력합니다.2. 환경 변수 사용
[Environment]::SetEnvironmentVariable("SYNCFUSION_LICENSE_KEY", "라이선스_키", "User")3. 실행 파일 폴더에 설정 파일 배치
실행 파일과 같은 폴더에 license.config 파일을 만들고 라이선스 키만 입력합니다.
사용 시 확인할 점
PDF Splitter for Copilot은 문서 분할과 RAG용 전처리를 돕는 도구입니다. 다만 다음 사항은 구분해서 이해하는 것이 좋습니다.
- 기본 분할 기능은 임베딩이나 LLM 호출 없이 동작합니다.
- RAG JSONL 내보내기는 downstream RAG 파이프라인에서 활용하기 위한 보조 기능입니다.
- Context Split 기능은 OpenAI API 키가 필요합니다.
- 문서 분할이 항상 검색 정확도 향상을 보장하는 것은 아니며, 문서 구조와 검색 시스템에 맞는 청크 전략이 함께 필요합니다.
- iText 7, Syncfusion 등 외부 라이브러리의 라이선스 조건은 배포 방식에 따라 별도 검토가 필요합니다.
- 저장소에 명시적인 오픈소스 라이선스 파일이 없다면, 상업적 사용이나 재배포 전 라이선스 범위를 확인하는 것이 안전합니다.
향후 활용 가능성
PDF Splitter for Copilot은 단순 PDF 분할 도구에서 출발했지만, RAG와 AI 문서 검색을 위한 전처리 도구로 확장될 가능성이 있습니다.
앞으로 다음과 같은 방향으로 발전할 수 있습니다.
- Excel, PowerPoint 등 추가 문서 형식 지원
- OneDrive, Google Drive 등 클라우드 저장소 연동
- 폴더 단위 자동 처리
- 문서 구조 기반 자동 분할
- RAG 인덱싱 파이프라인과의 직접 연동
- 다국어 UI 지원
이러한 기능이 추가된다면 개인 사용자는 물론, 내부 문서 검색 시스템을 구축하려는 팀에서도 활용도가 더 높아질 수 있습니다.
참고
- GitHub 저장소:
brfluidpri/PDFSplitterforCopilot - 다운로드: GitHub Releases의 최신 릴리스
0 댓글