배경

Confluence에서 규정 하나를 찾으려면 평균 15분이 걸렸습니다. 같은 질문이 매주 30건 이상 반복되고 있었고, 답변하는 담당자의 시간도 함께 잠식당하고 있었습니다.

과제 개요

스페이스 3개, 문서 457개 — 정보는 있는데 찾기가 너무 어려웠습니다. 반복 문의가 담당자 시간을 잡아먹고, 신규 입사자 온보딩도 느려지는 구조였습니다.

배경 및 문제 인식

해결 방법

Confluence API, RAG, Claude AI, Slack Bot을 결합해 챗봇을 만들었습니다. 자연어로 물어보면 출처 문서와 함께 답변이 오고, 3개 스페이스를 동시에 검색하며, 대화 맥락도 유지되는 24시간 자동 응답 시스템입니다.

구현 내용

3단계 지능형 검색

  1. 1순위 - 벡터 DB 의미 검색: TF-IDF 기반으로 1,933개 청크에서 의미적으로 가장 유사한 문서 검색
  2. 2순위 - AI 키워드 추출: Claude AI가 질문에서 핵심 키워드를 추출하여 보조 검색
  3. 3순위 - 규칙 기반 CQL: Confluence Query Language를 활용한 정밀 검색

기술 과제 해결

만드는 과정에서 5가지 기술 과제에 부딪혔고, 하나씩 풀어냈습니다.

주요 기술 과제 해결

  • Slack DM 무응답: 채널 ID 패턴(D로 시작) 병행 체크로 안정성 확보
  • 검색 오탐: 조사 제거 + 제목·본문 동시 검색 CQL 구조로 개선
  • 단일 스페이스만 검색: 3개 스페이스 동시 검색(space in (…)) 구현
  • 벡터 DB 충돌: scikit-learn TF-IDF로 교체하여 의존성 충돌 완전 해소
  • URL 깨짐: _links.webui 경로 직접 추출로 정확한 URL 생성

효과

성과 및 효과

지표 Before After 개선율
정보 검색 시간 15분 2분 87% 단축
반복 문의 (주간) 약 30건 약 8건 73% 감소
문의 응답 처리 시간 평균 10분/건 즉시 자동응답 완전 자동화
업무 효율 개선 (담당자) 기준값 40% 이상

Before / After 요약

향후 계획

API 비용이 예상보다 많이 나오고 있어, 사내 데이터 인프라를 활용한 자체 운영 구조로의 전환을 검토 중입니다.

향후 계획

눈여겨볼 점

  • 3단계 폴백 검색이 핵심입니다. 벡터 DB 의미 검색 → AI 키워드 추출 → CQL 규칙 기반, 한 단계가 실패해도 다음 단계가 받아주는 구조 덕분에 다양한 질문에 안정적으로 답할 수 있습니다.
  • 한국어 자연어 처리의 까다로운 문제들을 직접 풀었습니다. 조사 제거, 제목·본문 동시 검색 CQL 구조, ChromaDB에서 scikit-learn TF-IDF로의 전환까지 — 5가지 기술 과제를 1주일 만에 해결했습니다.
  • 15분이 2분이 되고, 반복 문의가 주 30건에서 8건으로 줄었습니다. API 비용 이슈를 솔직히 공유하고 사내 데이터 인프라 전환을 검토하는 자세도 눈여겨볼 만합니다.