본문으로 건너뛰기

Ruby를 활용한 RAG 도구 구축: 프로젝트 이력 기반의 지능형 티켓 분석 도구 'Clarion' 개발기

Building a RAG Tool in Ruby 4

작성자
HackerNews
발행일
2026년 02월 26일
https://robbyonrails.com/articles/2026/02/26/building-a-rag-tool-in-ruby/

핵심 요약

  • 1 분산된 Jira, Confluence, GitHub의 데이터를 통합하여 과거의 결정과 기술적 맥락을 자동으로 추출하는 RAG 기반 CLI 도구인 Clarion을 Ruby로 개발했습니다.
  • 2 ruby-openai와 Pinecone을 활용하여 벡터 검색을 구현하고, 관계 기반 가중치 부여 및 시간적 감쇠 로직을 적용하여 검색 결과의 정확도와 실무 활용성을 높였습니다.
  • 3 Model Context Protocol(MCP)을 통합하여 Claude Code와 같은 AI 에디터 내에서 개발자가 편집기를 떠나지 않고도 즉시 프로젝트 이력을 분석하고 활용할 수 있는 환경을 구축했습니다.

도입

Planet Argon은 여러 클라이언트 프로젝트를 관리하며 Jira, Confluence, GitHub에 방대한 지식을 축적해 왔으나, 시간이 흐름에 따라 과거의 결정이나 버그 수정 이력을 기억하는 데 어려움을 겪었습니다. 이는 모호한 티켓 생성과 불필요한 추측으로 이어져 비용을 발생시켰습니다. 이를 해결하기 위해 Ruby를 기반으로 최소한의 의존성을 유지하면서, 과거의 맥락을 자동으로 표면화하여 명확한 질문과 수락 기준을 제시하는 RAG(Retrieval-Augmented Generation) 도구인 'Clarion'을 구축하게 되었습니다.

Clarion은 Ruby 생태계의 성숙한 도구들을 활용하여 효율적인 아키텍처를 구성했습니다. CLI 도구로서 Thor를 사용해 명령어를 구조화하고, ruby-openai를 통해 임베딩 생성과 LLM 연동을 처리합니다. 벡터 데이터베이스로는 운영용 Pinecone과 로컬 개발용 Chroma를 추상화 레이어를 통해 유연하게 지원하도록 설계되었습니다.

데이터 수집 및 전처리 (Ingestion)

실제 환경의 데이터는 매우 복잡합니다. 특히 Jira의 ADF(Atlassian Document Format)는 단순한 HTML이나 마크다운이 아닌 중첩된 JSON 구조이므로, 이를 평문으로 변환하기 위한 재귀적 파서가 필수적이었습니다. Clarion은 Jira 티켓, Confluence 문서, GitHub의 PR 및 이슈 데이터를 수집하며, 각 문서는 소스별로 결정론적 ID(Deterministic ID)를 부여받아 중복 없이 동기화됩니다. concurrent-ruby를 활용한 병렬 처리를 통해 수집 속도를 약 2.3배 향상시켰습니다.

검색 최적화 및 RAG 아키텍처

단순한 코사인 유사도 검색만으로는 실무에 적합한 결과를 얻기 어렵습니다. Clarion은 검색 품질을 높이기 위해 다음과 같은 기법을 적용했습니다. - 병렬 벡터 검색: 하나의 쿼리 임베딩으로 Jira, Confluence, GitHub을 동시에 검색하여 네트워크 지연을 최소화했습니다. - 관계 기반 가중치(Relationship Boost): 분석 중인 티켓의 부모/자식 관계에 있는 데이터에 1.5배의 가중치를 부여합니다. - 시간적 감쇠(Temporal Decay): 7일 이상 된 데이터는 0.7배, 30일 이상 된 데이터는 0.3배로 점수를 낮추어 최신 맥락을 우선시합니다.

LLM 프롬프팅과 구조화된 출력

LLM 응답은 json_object 형식을 강제하여 후속 처리가 용이하도록 했으며, 프롬프트에는 기술적인 질문뿐만 아니라 Planet Argon만의 커뮤니케이션 스타일을 녹여냈습니다. 예를 들어, 모호한 요구사항에 대해 단순히 질문하는 것이 아니라 클라이언트에게 제안하는 방식으로 질문을 구성하도록 가이드합니다.

MCP를 통한 워크플로우 통합

가장 혁신적인 부분은 Model Context Protocol(MCP)의 도입입니다. 이를 통해 Clarion은 단순한 CLI를 넘어 Claude Code와 같은 AI 에디터의 서버로 동작합니다. 개발자는 편집기 내에서 “WR-123 티켓 분석해줘”라고 요청하면, Clarion이 백엔드에서 RAG를 수행하여 관련 이력과 권장 사항을 즉시 제공합니다. 이는 문맥 전환 비용을 획기적으로 줄여줍니다.

결론

Clarion 프로젝트는 Ruby가 최신 AI 및 RAG 도구 개발에 충분히 강력하고 효율적인 언어임을 증명합니다. 단순한 기술적 구현을 넘어, 회사의 커뮤니케이션 철학을 프롬프트에 반영하고 MCP를 통해 개발자 도구에 깊숙이 통합함으로써 실질적인 업무 효율을 높였습니다. 현재는 내부 도구로 사용 중이지만, 향후 클라이언트 고유의 맥락을 이해하는 지능형 협업 도구로의 발전 가능성이 매우 큽니다.

댓글0

댓글 작성

댓글 삭제 시 비밀번호가 필요합니다.

이미 계정이 있으신가요? 로그인 후 댓글을 작성하세요.

0/1000
정중하고 건설적인 댓글을 작성해 주세요.