AI Briefing

AskON: 코드를 검색 가능한 지식 자산으로

·2026.03.23 13:53

AskON은 RAG와 그래프로 코드의 비즈니스 맥락을 자연어로 찾게 한다.

AskON은 대규모 코드베이스를 구조적으로 인덱싱해, 코드 자체를 검색 가능한 지식으로 바꾸는 RAG 기반 코드 지식화 플랫폼이다. 문서가 없거나 오래된 환경에서 “이 정책이 코드에서는 어떻게 구현되나요?” 같은 질문에 답하기 위해 출발했다.

지식 베이스는 크게 두 단계로 만든다. 먼저 /askon-prepare에서 Git 저장소의 특정 브랜치를 clone한 뒤 메서드 단위로 추출하고, 의미가 작은 코드와 단순 getter/setter 같은 항목은 복잡도 점수로 제외하며, calls/calledBy 호출 그래프를 만든다. 이 과정에서 메서드 시그니처, 패키지·클래스 정보, 외부 의존성, 코드 경로, 압축된 소스, 커밋 해시 같은 메타데이터가 함께 정리된다.

이후 /askon-process에서 원문 코드만 LLM에 넣어 메서드 역할 요약과 핵심 비즈니스 규칙을 생성하고, 이를 임베딩해 벡터 DB에 저장한다. 롯데ON 주문 서비스처럼 약어와 도메인 용어가 많은 환경에서는 별도의 용어사전을 프롬프트에 주입해 분석 품질을 높였다. 저장 시에는 요약 토큰 수와 모델명까지 함께 기록해 운영 비용과 품질 추적에 활용한다.

질의응답은 질문 임베딩 → 벡터 검색 → 호출 그래프로 컨텍스트 확장 → LLM 답변 생성 순서로 동작한다. Slack에서 두 가지 방식으로 사용되는데, 일반 사용자는 @AskON [모듈] 질문으로 기술 용어를 걷어낸 설명을 받고, 개발자는 /askon [모듈] 질문으로 파일·클래스·메서드 위치까지 확인할 수 있다.

검색 품질을 높이기 위해 그래프 확장과 랭킹 보정도 넣었다.

  • 구조적 질문은 “호출 흐름”, “어디서 호출하나요”처럼 흐름을 묻는 경우라서 hit당 참조 개수를 제한해 깊이를 우선한다.
  • 규칙 질문은 “무엇이 검증되나요”, “정책 내용이 무엇인가요”처럼 조건을 묻는 경우라서 전체 참조 개수만 제한해 관련 메서드를 넓게 모은다.
  • 벡터 검색 뒤에는 controller를 제외하고 service를 우대하며, called_by가 비어 있는 항목은 후보에서 빼고, 코드 길이도 보정에 반영한다.

배포 후 코드가 바뀌는 문제는 /askon-pull로 해결한다. 최초 인덱싱은 clone으로, 이후에는 GitLab API로 최근 커밋만 확인해 변경된 클래스만 다시 prepare/process 하므로, 저장소 전체를 다시 읽지 않고도 최신 코드 기준으로 지식 베이스를 갱신한다.

개선 방향으로는 검색 품질 평가 데이터셋 구축, 사용자 맥락을 반영한 개인화 랭킹, 반복 질문을 축적하는 Query Memory, 그리고 GraphDB 전환이 제시된다. 결국 핵심은 완벽한 범용 설계가 아니라, 각 코드베이스에 맞는 첫 단위와 규칙을 도메인 이해자가 정해 RAG를 현실적으로 굴리는 데 있다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.