사내 지식을 LLM 위키로 만들기 — 왜 시작했나
Jira와 Confluence에 흩어진 팀 지식을 LLM으로 요약·연결해 '검색되는' 위키로 만든 이유와 전체 아키텍처. 수집 → 요약 → 위키 → 봇으로 이어지는 파이프라인의 출발점을 기록합니다.
팀에서 일하다 보면 늘 같은 장면이 반복됩니다. "그거 어디 문서에 있었는데…" 하면서 Jira와 Confluence를 뒤지고, 결국 못 찾아 옆 사람에게 다시 묻습니다. 지식은 분명히 쌓여 있는데, 필요한 순간에 꺼내 쓰지 못하는 상태였습니다.
그래서 사내 지식을 LLM으로 요약·연결해 검색 가능한 위키로 만들기로 했습니다. 이 글은 그 프로젝트를 왜 시작했고, 전체 구조를 어떻게 잡았는지에 대한 첫 기록입니다.
흩어진 지식이 문제였다
문제는 정보가 없어서가 아니었습니다. 오히려 너무 많았습니다.
- Jira에는 이슈 수천 건이 쌓여 있지만, 대부분 제목만으로는 맥락을 알 수 없습니다.
- Confluence 문서는 길고, 버전이 섞여 있고, 정작 찾는 한 줄이 어디 있는지 모릅니다.
- 두 시스템은 서로를 모릅니다. 같은 주제를 다뤄도 링크가 끊겨 있습니다.
결국 지식은 사람의 머릿속에만 인덱싱되어 있었습니다. 그 사람이 자리에 없으면 지식도 자리에 없었습니다.
목표: "찾을 수 있는" 팀 지식
거창한 목표는 잡지 않았습니다. 딱 하나였습니다 — 팀 지식을 검색 가능한 상태로 만든다.
이걸 풀어 쓰면 세 가지입니다.
- Jira·Confluence 원문을 한곳에 모은다.
- LLM으로 요약하고 서로 연결해, 사람이 읽어도 LLM이 읽어도 좋은 형태로 만든다.
- 그 위에 봇을 얹어, 슬랙에서 바로 물어보고 답을 받는다.
즉 위키는 최종 목적지가 아니라, 봇이 근거로 삼을 지식 베이스였습니다.
전체 그림: 수집 → 요약 → 위키 → 봇
구조를 네 단계로 나눴습니다.
각 단계는 이어지는 글에서 하나씩 다룹니다. 이 글에서는 왜 이렇게 잘랐는지만 짚겠습니다.
핵심은 수집(synced)과 가공(wiki)을 분리한 것입니다. 원문을 그대로 둔 층과, LLM이 요약·연결한 층을 나눠야 나중에 요약 방식이 바뀌어도 원천을 다시 긁을 필요가 없습니다. 이 결정이 뒤에 두고두고 도움이 됩니다.
왜 로컬·사내 LLM인가
가장 먼저 정한 원칙은 원문이 회사 밖으로 나가지 않는다였습니다. 내부 이슈·설계 문서를 외부 API에 그대로 보내는 건 선택지가 아니었습니다.
그래서 두 갈래를 씁니다.
- 로컬 LLM: 워크스테이션 GPU에 vLLM으로 올린 오픈 모델. 대량 요약처럼 양이 많은 작업에 씁니다.
- 사내 게이트웨이 모델: 회사가 사내망에서 서빙하는 오픈 LLM 몇 종(Qwen 계열·Gemma 계열·GPT-OSS 계열). 더 큰 모델이 필요한 작업에 씁니다.
둘 다 OpenAI 호환 API라, 코드에서는 엔드포인트와 모델 이름만 바꾸면 되도록 추상화했습니다.
첫 벽: 사내 API가 안 붙었다
설계는 깔끔했지만, 실제로 사내 게이트웨이에 붙이자마자 막혔습니다.
[오류] 사내 API 오류: Connection error.원인은 게이트웨이가 사내 사설 인증서로 TLS를 종료하고 있어서였습니다. 클라이언트가 인증서 체인을 검증하지 못해 연결 자체가 끊긴 것이죠.
정공법은 사내 CA 번들을 심는 것이지만, 개발 단계에서 매번 막히면 진도가 안 나갑니다. 그래서 탈출구(escape hatch) 를 하나 뒀습니다 — 환경 변수로 검증을 끄거나, CA 번들 경로를 지정할 수 있게요.
# 사내 CA 번들이 있으면 이걸 우선 사용
export CORP_LLM_CA_BUNDLE=/etc/ssl/corp-ca.pem
# 급할 땐 검증을 끈다 (사내망 한정, 운영에선 지양)
export CORP_LLM_INSECURE=1검증을 끄는 건 어디까지나 사내망 안에서의 임시방편이라, 로그에 경고를 남기도록 했습니다. "지금 인증서를 검증하지 않고 있다"는 걸 스스로 잊지 않기 위해서입니다.
앞으로
이 글에서는 왜·무엇을 정도만 정리했습니다. 다음 글부터는 실제 구현으로 들어갑니다.
- 다음 편: 원문을 어떻게 가져올 것인가 —
raw를 버리고synced미러로 간 이야기 - 그 다음: vLLM 배치 튜닝, 슬랙 스크럼봇, 위키 기반 QA 봇, 그리고 속도 개선까지
지식이 "쌓여만 있는" 상태에서 "물어보면 답하는" 상태로 옮겨 가는 과정을, 삽질까지 포함해 남겨 두겠습니다.