공부일지

MongoDB Vector Search를 활용한 사내 문서 검색 도우미 구현 및 성능 검증(PoC)_배경과 아이디어 본문

Computer/도전기

MongoDB Vector Search를 활용한 사내 문서 검색 도우미 구현 및 성능 검증(PoC)_배경과 아이디어

쿄우의 공부일지 2026. 1. 7. 12:30

배경

회사에서 Confluence 문서를 관리하고 있다.

https://www.atlassian.com/ko/software/confluence

 

Confluence | 원격 업무에 친화적인 팀 작업 영역 | Atlassian

어떤 프로젝트에서든 Rovo AI를 활용해즉시 초안을 작성하고 브레인스톰을 진행

www.atlassian.com

 

팀 내에서 새로운 프로젝트를 제안했다.

 

팀장님 曰 

PM 분들이 작성하시는 계약 및 프로젝트 관련 문서가 많은데,

작성할 때마다 상황에 따라 형식이 달라서

이 문서들을 하나의 DB에 담아서 관리하기도 어렵고 복잡하다.

그래도 이 데이터를 관리할 수 있는 포맷을 형성하거나,

해당 데이터를 이용해 RAG이나 챗봇 기능을 통해 유용하게 쓸 수 있으면 좋겠다.

 

어려운 점

구체적으로 어떤 점이 어려운지 API로 데이터를 수집해서 확인해봤다.

대표적으로 두 가지 결과가 나왔다.

1. 데이터 활용 방안 구체화의 어려움

Confluence API로 수집한 데이터는 

하나의 문서에서 세부 데이터가 너무 많고 depth가 너무 깊어 

데이터를 어떻게 활용하면 좋을지, 어느정도까지 살릴지 등 방법을 구체화하기 어려웠다.

2. Schema 구현의 어려움

과거에 엔지니어링 팀에서 문서 포맷 표준을 제시했지만

상황에 따라 사람마다 적는 방식이 달라 결국 쓰이지 않았다고 한다.

결과적으로 제각각인 문서에 대해 데이터화할 시 Schema를 구성하는 게 쉽지 않았다.

 

아이디어 공유

각자 어떻게 할지 조사하고 구상한 걸 공유했다.

 

  • : 데이터를 목적에 따라 Metadata와 Body로 분할 전처리하고, MongoDB Vector Search를 통해 RAG를 구현하는 방안.
  • 팀원 A: 문서를 구조화된 Markdown으로 변환한 뒤 Vertex AI를 적용하여, 현재 사용 중인 GCP 인프라와의 정합성을 높이는  방안.
  • 팀원 B: Atlassian AutomationRovo Agent 등 플랫폼 내장 기능을 활용해 빠른 요약 및 챗봇 구현이 가능한 효율적인 방안.

 

 

MongoDB Vector Search를 선택한 이유

이전 회사에서 MongoDB를 사용한 적이 있는데

MongoDB는 데이터를 기본적으로 JSON 형태로 schemaless하게 적재 가능하며,

Vector Search라는 RAG(검색 증강 생성) 구현에 유용한 기능을 제공한다는 걸 알고 있었다.

Confluence API JSON 형태로 수집 가능하므로

바로 적재 후 Vector Search 기능을 이용하고자 했다. 

참고

[공식문서] MongoDB Vector Search 기능을 이용한 RAG 구현

https://www.mongodb.com/ko-kr/docs/atlas/atlas-vector-search/rag/?language-no-interface=python&embedding-model=voyage&llm=openai

 

 

아이디어 구체화 과정

데이터를 다루다 보니 전제했던 것과 달라 수정해나가면서 아이디어가 구체화 됐다.

1. 전제: API로 수집한 JSON을 MongoDB에 담아서 바로 RAG 기능에 구현 가능 ❌

MongoDB의 Vector Search Quick Start 예제 코드로 결과를 보니

아무리 JSON 을 바탕으로 RAG을 구현할 수 있다고 해도 필드가 정돈돼야 했다.

 

2. 새로운 전처리 방향 성립 🚦 (⭐️⭐️⭐️)

일단 전처리부터 충분히 해보자 싶어 이리저리 처리 방식을 적용해봤다.

프론트엔드 관련 코드, 메타 데이터 중 불필요한 데이터들을 최대한 제거했다.

또한 질문에 답을 하려면 필요한 정보가 무엇인지 고민해보니

문서 내부 정보 중 꼭 필요한 데이터와 아닌 데이터를 선별할 수 있었다.

PM 분들이 작성할 때 주로 표 안에 주요한 데이터를 정리하시는 것을 보고 표 데이터는 꼭 남기도록 했다.

이런 방식으로 여러 고민 끝에 적절한 전처리가 완료되고 MongoDB Vector Search 사용 가능하게 됐다.

 

 

PoC용 샘플 데이터

오래 일하신 팀원분이 데이터 복잡도 및 다양성을 고려해 5개 샘플을 골라주겠다고 하셔서 해당 데이터로 진행했다.

 

 

 

다음 글에 계속...