Dev Stories

DocuSee 비정형 데이터 구축 사업 여정

안녕하세요. Gen AI Lab 나재민입니다.

저희 팀은 다양한 종류의 문서를 보다 잘 읽고 활용하기 위한 AI Document Parser, DocuSee를 개발하고 있으며, 현재 금융권 고객사와 RAG 기반의 비정형 데이터 사업을 진행 중입니다. 본 글에서는 저희 DocuSee를 금융권 환경에 적용하며 겪은 여정과, 그 과정에서 마주한 기술적·구조적 고민을 공유하고자 합니다.


DocuSee: 문서 활용을 위한 Document Parser


기업이 AI 서비스를 도입하는 과정에서 가장 먼저 마주하게 되는 과제는 기업의 수많은 문서를 AI가 활용할 수 있는 형태의 데이터로 변환하는 일입니다. 문서를 단순히 이미지나 텍스트로 저장하는 수준을 넘어, 이후의 활용 환경까지 고려한 문서 처리 방식이 필요해집니다.

DocuSee는 OCR을 포함한 텍스트, 표, 차트, 다이어그램 등 문서 요소를 인식·분리하고, RAG(Retrieval-Augmented Generation)와 LLM(Large Language Model) 기반의 환경에서 바로 활용할 수 있도록 문서를 구조화된 입력 데이터로 변환하는 기능을 제공합니다. 

HWPX, DOCX, XLSX와 같은 디지털 텍스트 기반 문서부터, PDF, JPEG, PNG 등 텍스트 검색이 불가능한 이미지 기반 문서까지 서로 다른 형태의 문서를 동일한 파싱 파이프라인에서 분석할 수 있도록 설계되었습니다. 이를 통해 문서 형식이나 원본 데이터의 상태에 관계없이, 후속 활용 관점에서 일관된 문서 구조를 생성하는 것을 목표로 하고 있습니다.

01.jpg

DocuSee 문서 파싱 파이프라인


보다 자세한 기술 내용은 아래 링크에서 확인할 수 있습니다.



금융권 RAG 환경을 마주하다


기본적으로 DocuSee는 생성형 AI 서비스가 질문에 답하는 데 필요한 정보들이 효과적으로 함께 활용될 수 있도록 문서를 구성하는 것을 중요한 목표로 삼고 있었습니다. 의미적으로 연결된 문장과 요소들을 하나의 흐름으로 묶는 방식이, AI 활용 관점에서는 보다 자연스럽고 유연한 응답을 만드는 데 도움이 된다고 판단했기 때문입니다.

이 과정에서 DocuSee는 문서 내의 제목, 문단과 같은 형식적 구조뿐 아니라, 문서의 문맥을 고려한 읽기 순서 역시 각 문서 요소가 수행하는 역할을 판단하는 기준으로 함께 활용했습니다. 문서의 레이아웃이 다소 달라지더라도 동일한 구조를 일괄적으로 강제하기보다는, 읽기 흐름과 구조 정보를 종합해 각 문서 조각이 어떤 맥락에서 활용될지를 중심으로 분석하는 방향을 지향했습니다.

이번 금융권 고객사와의 PoC 및 실제 적용 과정을 거치며, 이러한 접근이 모든 운영 환경에서 동일하게 효과적이지는 않다는 점을 확인하게 되었습니다. 의미 단위로 재구성된 문서 조각은 LLM 응답 품질 측면에서는 장점이 있었지만, 운영·관리 관점에서는 검색 결과의 재현성, 문서 갱신 시 관리 기준과 같은 부분에서 추가적인 고려가 필요하다는 점이 드러나기 시작했습니다.


금융권 RAG 환경에서 중요했던 것


금융권에서 운영 중인 RAG는 LLM을 위한 문맥의 이해보다는 데이터의 관리·검색·일관성을 우선적으로 고려한 구조였습니다.

  • 문서를 일정 단위로 분리해 데이터베이스화하고
  • 질문과 유사한 문서 조각을 키워드 단위로 빠르고 안정적으로 검색하며
  • 각 문서 조각을 독립적인 데이터 단위로 관리·활용하는 방식이었습니다.

이러한 구조는 대규모 문서를 지속적으로 적재·갱신해야 하는 환경에서도 운영 측면에서 검증되어 왔습니다.

즉, 금융권 RAG 환경에서는 문서의 의미적 활용보다는 구조 단위로의 분해와 관리가 우선적으로 요구되고 있었습니다.  

이러한 환경적 특성을 마주하며, 팀 내부에서는 기존 의미 중심 파싱 전략을 유지할지, 아니면 금융권 운영 환경에 맞춰 구조 중심 기준을 보완할지에 대한 판단이 필요했습니다.

범용성을 우선한 기존 설계는 기술적으로 합리적이었지만, 실제로 적용해야하는 환경에서 요구되는 구조적 일관성과 검색 재현성을 고려했을 때 추가적인 보완 없이는 한계가 분명하다고 판단했습니다. 

결국 저희 팀은 DocuSee의 기존 문서 파싱 전략을 유지하되, 금융권 RAG 환경에 필요한 구조 중심의 파싱 로직을 추가로 설계하는 방향을 선택했습니다.


설계 전환: 금융권 RAG에 맞춘 파싱 전략


금융권에서 다루는 문서들은 대부분 페이지마다 "제목–섹션–문단"의 논리적 계층 구조는 동일하게 유지되지만, 페이지 구성이나 디자인 요소는 조금씩 달라지는 특징을 가지고 있습니다.

예를 들어 금융 상품 약관이나 내부 규정 문서의 경우, 모든 페이지가 동일한 조항 체계를 따르더라도 표, 각주, 예외 설명, 개정 이력 등이 문서나 페이지별로 다르게 배치되는 경우가 흔합니다. 또한 다단 레이아웃과 표·각주·캡션이 혼재된 경우가 많아, 단순한 텍스트 순서만으로는 문서 구조를 안정적으로 구분하기 어렵습니다. 이러한 문서에서는 각 문장이 어떤 제목·섹션·문단에 속하는지, 즉 문서 내에서의 구조적 위치 정보가 검색·관리·검증 관점에서 훨씬 중요한 기준으로 작동합니다.

이 때문에 금융권 RAG 환경에서는 문서 형식이 일부 달라지더라도, 제목·섹션·문단과 같은 구조 단위를 항상 동일한 기준으로 식별할 수 있는 파싱 결과가 필수적으로 요구되었습니다.

이러한 요구사항을 반영해 DocuSee는 기존 문서 파싱 전략 위에 다음과 같은 구조 중심의 파싱 전략을 추가로 설계했습니다.

  • 문서 파싱 결과를 Neo4j 기반의 문서 특화 그래프 구조로 변환하고,
  • 제목–본문, 섹션–문단, 표–캡션 등 문서에서 명확히 구분되는 구조적 관계를 명시적으로 연결했으며,
  • 여러 페이지의 문서에서도 요소들의 위치 정보와 문서 계층 구조를 함께 활용해 각 구조 단위가 일관되게 식별되도록 알고리즘을 구성했습니다.

image (6).png

Neo4j 기반의 문서 특화 그래프 구조 예시


이를 통해 문서 형식이나 레이아웃이 달라지더라도, "제목·섹션·문단"과 같은 구조 단위가 항상 동일한 기준으로 관리·검색될 수 있는 안정적인 파싱 결과를 생성할 수 있었습니다. 또한 문서 구조를 기준으로 한 문서 특화 청크를 생성함으로써, 읽기 순서에 따라 표나 캡션이 본문과 분리되어 해석되는 문제를 효과적으로 완화할 수 있습니다.

아래의 예시와 같이, 표는 문서 내에서의 상대적 위치 관계와 계층 구조 정보를 기반으로 관련 캡션 및 본문과 연결됩니다. 각 문서 요소는 구조 레벨에 따른 관계를 가지며, 이를 통해 관계 누락이나 비정상적인 연결과 같은 이상 상황을 효과적으로 방지할 수 있습니다.

04.jpg

구조 중심의 파싱 적용 전·후 비교 예시



마무리하며


DocuSee를 금융권 현장에 실제로 도입하는 과정에서, 범용적인 기술을 선제적으로 개발하는 것만큼이나 금융권과 같은 특정 도메인의 운영 요구사항을 자연스럽게 반영한 설계가 중요하다는 점을 분명히 확인할 수 있었습니다. 특히, 이번 사업은 DocuSee에게 운영 환경과 활용 목적에 따라 유연하게 적용 가능한 문서 파싱 전략을 어떻게 설계해야 하는지를 한 단계 더 깊이 고민하게 만든 계기가 되었습니다.

이 경험을 바탕으로, DocuSee는 다양한 문서와 다양한 환경 속에서 더 빠르고, 더 안정적이며, 더 효율적으로 활용될 수 있는 문서 파싱 기술을 제공하기 위해 지속적으로 개선해 나갈 예정입니다.


감사의 말


이번 프로젝트는 코어 엔진 개발을 시작으로, 각 기능들이 유기적으로 연결될 수 있도록 하는 파이프라인 구축과 실제 서비스 배포에 이르기까지 많은 구성원의 협업으로 완성될 수 있었습니다. 

GenApp기술 부서를 비롯한 개발 부서 구성원 한 분 한 분의 노력 덕분에, DocuSee는 단순한 프로토타입 단계를 넘어 실제 운영 환경에서 활용 가능한 프로덕트로 한 단계 더 성장할 수 있었습니다. 프로젝트 전반에 걸쳐 함께 고민하고 실행해 주신 모든 분들께 감사의 말씀을 전합니다.

나재민

GenApp기술부서에서 Document AI 기술을 연구하고 있습니다.

이전 글