ODW #5: 벡터 DB와 에이전트 스킬로 RAG 시스템 만들기

Published: (May 7, 2026 at 01:00 AM EDT)
9 min read

Source: LINE Engineering

안녕하세요! 모바일 개발자 경험 팀의 @giginet입니다. 평소에는 LINE iOS 앱을 중심으로 빌드 시스템과 개발 환경을 정비하고, 개발자 경험을 향상하기 위한 업무를 하고 있습니다.

최근 LY Corporation에서 사내 임직원을 대상으로 진행하고 있는 Orchestration Development Workshop의 다섯 번째 워크숍에서 대량의 마크다운 문서를 검색하는 간단한 RAG (retrieval‑augmented generation) 시스템을 구축하고 에이전트 스킬을 활용해 검색 경험을 향상하는 워크숍을 맡아 진행했습니다. 이번 글에서는 이 워크숍 내용을 소개하겠습니다.

RAG는 AI 에이전트가 참조할 수 있는 별도 지식을 제공해 보다 정확하고 신뢰할 수 있는 응답을 생성하도록 만드는 기법입니다.

대규모 애플리케이션을 개발할 때에는 다양한 문제가 늘 발생합니다. 예를 들어 새로운 의존성을 도입하고 싶거나 빌드 에러가 발생했을 때, 혹은 아키텍처를 어떻게 준수해야 할지 모르는 등의 문제가 발생합니다. 이런 문제를 해결하기 위해 현재 LINE 앱 개발 팀에는 개발자를 위한 문서와 가이드라인을 다수 보유하고 있지만, 문서를 읽고 규칙을 파악하거나 정보를 검색하는 데 많은 시간이 소요됩니다. 관련 전문 지식을 가진 팀원에게 질문해 해결할 수도 있겠지만, 질문하는 쪽과 답변하는 쪽 모두 시간과 노력이 소모됩니다. 따라서 대량의 데이터를 자연어로 검색하거나 AI 에이전트가 효율적으로 활용할 수 있는 구조가 필요했습니다.

이번 워크숍에서는 이러한 상황을 가정하고 자연어로 작성한 대량의 문서를 AI 에이전트가 효율적으로 참조하는 방법을 모색했습니다.

ChromaDB를 활용해 간단한 RAG 시스템 구축하기

워크숍에서는 RAG 시스템을 구축하기 위해 ChromaDB라는 오픈소스 벡터 DB를 사용했습니다. ChromaDB는 로컬 환경에서 작동하며 Python과 JavaScript용 클라이언트 라이브러리를 제공해 데이터를 간단히 적재할 수 있습니다.

예제로는 Swift 언어의 사양 제안 문서인 Swift Evolution을 사용했습니다. Swift Evolution은 약 500건 정도의 기술 문서로, 형식이 일정 부분 통일돼 있고 각 문서에 ‘SE‑0400’과 같은 ID와 구현 상태·작성자 정보 등의 메타데이터가 포함되어 있어 예제로 적합합니다.

워크숍 전반부에서는 ChromaDB에 Swift Evolution을 적재하고, MCP 도구를 통해 코딩 에이전트(Claude Code)에서 이 DB를 참조하도록 실습했습니다. 그 결과 코딩 에이전트가 Swift Evolution 내용을 참고할 수 있게 되었습니다.

코딩 에이전트에서 Swift Evolution 내용을 참고하는 장면

에이전트 스킬로 RAG 시스템을 더욱 편리하게 활용하기

MCP 구조에서는 chroma-mcp가 제공하는 도구 사용법, 즉 “벡터 DB를 검색하려면 이 도구를 사용한다”는 정보만 AI 에이전트의 컨텍스트에 공유됩니다. 따라서 DB에서 Swift Evolution 내용을 검색하려면 해당 정보가 DB에 포함돼 있다는 것과 어떤 컬렉션·메타데이터를 활용해야 하는지를 에이전트에게 알려줄 필요가 있습니다.

이를 위해 “Swift Evolution 지식을 검색하려면 ChromaDB를 MCP를 통해 참조한다”는 지식을 가진 스킬을 만들어 MCP 도구 이용을 간소화하는 방법을 소개했습니다.

---
name: searching-swift-evolution
description: Search Swift Evolution proposals (SE-XXX/ST-XXX) using the vector database to answer Swift language specification questions.
---

# Searching Swift Evolution

Search Swift Evolution proposals via Chroma MCP.

## Database

- **Collection**: `swift-evolution`
- **Document IDs**: Proposal numbers (e.g., `SE-0255`, `ST-0001`)
- **Metadata**: `Status` (implementation status), `Authors`, etc.

## Usage

- Query in English for best results
- Use `Status` metadata to check implementation status
- If output truncated, reduce `n_results`

이 스킬을 통해 “SE‑0500을 조사해줘”와 같은 최소한의 지시만으로 Swift Evolution 내용을 검색할 수 있게 되었습니다.

스킬에 DB 사용법을 학습시켜 MCP 도구 호출 간소화

또한 워크숍에서는 에이전트 스킬의 일반적인 작동 메커니즘과 스킬 작성 모범 사례(참고), 실용적인 스킬 작성 방법을 설명했습니다.

Agent Skills의 작동 원리 심층 분석

워크숍 후반부에서는 참가자가 각자 준비한 마크다운 문서를 DB에 적재하고, 필요한 정보를 검색하는 스킬을 직접 작성하는 실습을 진행했습니다. 이후 이 DB를 사내 클라우드인 Flava(참고)에 배포해 다른 구성원과 공유하는 방법도 소개했습니다.

워크숍에서 구축한 RAG 시스템 활용 예시

  • 자연어 검색: 개발자가 자연어로 질문하면 문서를 빠르게 찾아 접근성을 크게 개선합니다.
  • 코드 생성·리뷰: 에이전트 스킬이나 Claude Code의 서브 에이전트와 연계하면, 코딩 에이전트가 스스로 문서를 검색해 RAG에서 가져온 지식을 기반으로 코드를 생성하거나 리뷰를 수행할 수 있습니다.

전사 워크숍 진행 후기

이번 워크숍은 강사를 포함한 몇 명의 발표자가 실제로 내용을 시연하는 형태로 온라인에 진행됐으며, 1,000명 이상이 참여해 매우 성황을 이뤘습니다.

강의 파트와 실습 파트의 균형이 중요합니다. 실습 위주일 경우 절차만 따라가기 쉬우며, 강의 위주일 경우 집중력이 떨어질 수 있습니다. 본 워크숍은 핵심 개념을 간결히 전달하는 강의와, 실제 업무 문서를 활용해 구체적인 응용 사례를 보여주는 실습을 적절히 배합해 성공적인 진행이 가능했습니다.

마치며

대량의 마크다운 문서를 검색하는 간단한 RAG 시스템을 구축하고, 에이전트 스킬을 활용해 검색 경험을 향상하는 워크숍 내용을 소개했습니다. Orchestration Development Workshop의 다른 세션이 궁금하시다면 아래 기사 목록을 참고해 주세요.

0 views
Back to Blog

Related posts

Read more »