
문서 파편화와 커뮤니케이션 병목을 해결하기 위해, 코드를 직접 읽고 답변하는 똑똑한 AI 비서를 만든 여정
서비스가 고도화되면서 최신 기획서와 실제 동작하는 코드 사이의 간극은 모든 개발 조직의 고질적인 문제입니다. 포스타입은 이 문제를 해결하기 위해 '코드가 항상 최신 스펙'이라는 관점에서 코드를 직접 탐색하는 RAG(Retrieval-Augmented Generation) 시스템을 구축했습니다. AWS Bedrock과 OpenSearch Serverless를 결합해 정확하고 최신화된 답변을 제공하는 사내 챗봇의 백엔드 아키텍처와 트러블슈팅 과정을 생생하게 전합니다.
코드와 문서의 정합성 문제로 고통받거나, 사내 개발 문의 응대로 업무 흐름이 자주 끊기는 백엔드 리드 및 데브옵스 엔지니어에게 적극 추천합니다. 특히 AWS 생태계 내에서 관리형 서비스(Bedrock) 기반의 RAG를 빠르게 구축하려는 조직에 실무적인 이정표가 될 것입니다.
포스타입은 제품의 높은 복잡도와 빠른 배포 주기로 인해 기획서 및 테크 스펙 문서가 실제 구동되는 최신 코드를 따라가지 못해 지식 부채가 발생하는 문제를 겪었습니다. 이로 인해 신규 입사자를 포함한 전사 구성원들이 최신 로직을 파악하기 위해 기술그룹에 반복적으로 수동 질의를 하게 되었고, 양측의 커뮤니케이션 병목과 의사결정 지연이 심화되었습니다.
코드가 곧 최신 스펙이라는 결론하에, AWS Bedrock Knowledge Base와 OpenSearch Serverless를 활용하여 코드를 직접 분석하는 RAG(Retrieval-Augmented Generation) 시스템을 구축했습니다. Java 코드를 메서드 단위로 사전 파싱하는 Custom Chunking을 적용하고, 정확도를 높이기 위해 메타데이터 필터링과 하이브리드 검색(Semantic + Keyword)을 도입했으며, CI/CD 파이프라인과 연동하여 소스 코드 배포 시 5분 이내에 자동으로 지식 베이스가 동기화되도록 구현했습니다.
수천 개의 소스 코드 중에서 질문에 해당하는 특정 도메인의 코드 수십 개만을 타겟팅하는 정밀 탐색이 가능해져 답변의 정확도가 비약적으로 향상되었습니다. 또한, 지속적인 배포 환경에서도 실시간에 준하는 수준으로 최신 스펙이 지식 베이스에 자동 동기화되어 사내 구성원들이 직접 최신 시스템 명세를 조회할 수 있는 환경을 제공합니다.
Trade-off
하이브리드 검색 및 원활한 동기화를 구현하기 위해 관리형 OpenSearch 대신 Serverless 방식을 강제 사용하게 되면서, 업무 시간 외에 사용량이 없는 시점에도 리소스 유지 비용이 지속적으로 발생하는 한계가 존재합니다. 또한, 코드 검색 품질을 극대화하기 위해 도쿄 리전에서 Rerank 모델 적용을 검토 및 테스트했으나, 문법 구문 분석에 치중하는 자연어 기반 Rerank가 명확한 키워드 매칭을 방해하는 역효과가 발생하여 최종 도입을 포기했습니다.
거대 언어 모델(LLM)이 답변을 생성하기 전에, 외부의 신뢰할 수 있는 데이터 소스에서 관련 정보를 먼저 검색하여 프롬프트에 보강한 뒤 신뢰도 높은 답변을 생성하는 기술입니다. 모델 자체의 환각(Hallucination) 현상을 방지하고 최신 정보나 도메인 특화 지식을 다루는 데 유용합니다.
RAG 검색 시 단순한 텍스트 유사도 비교에 의존하지 않고, 데이터에 부여된 부가 정보(도메인, 클래스 유형 등)를 조건으로 삼아 검색 대상 범위를 먼저 필터링하는 기법입니다.
의미적 유사성을 찾는 의미 체계(Semantic) 검색과 정확한 텍스트 일치 여부를 판별하는 키워드(Keyword) 검색을 동시에 수행한 뒤, RRF(Reciprocal Rank Fusion) 알고리즘으로 두 결과를 병합하는 검색 방식입니다.