자연어 요약을 활용한 마이크로서비스 다중 저장소 버그 위치 추적

자연어 요약을 활용한 마이크로서비스 다중 저장소 버그 위치 추적

초록

본 논문은 마이크로서비스 환경에서 여러 코드 저장소에 걸친 버그를 효율적으로 찾기 위해, LLM 기반의 자연어 요약을 활용한 컨텍스트‑인식 접근법을 제안한다. 파일 수준 요약에 레포지토리 전체의 “시드 컨텍스트”를 결합함으로써, 구현 세부보다 아키텍처적 역할을 강조한 요약을 생성하고, 이를 LLM에 프롬프트로 제공해 버그 위치를 정확히 예측한다. 실험 결과, 기존의 독립형 요약 대비 정밀도와 재현율이 크게 향상됨을 입증한다.

상세 분석

이 연구는 마이크로서비스 아키텍처가 복잡한 의존 관계와 다중 저장소 구조를 갖는 현대 소프트웨어 개발 환경에서, 전통적인 정적 분석이나 로그 기반 디버깅이 한계에 봉착한다는 점을 출발점으로 삼는다. 특히, 버그가 발생했을 때 해당 오류가 어느 서비스의 어느 파일에 뿌리를 두고 있는지를 파악하는 과정이 복잡해지면서, 개발자는 방대한 코드베이스와 문서들을 일일이 검토해야 하는 비용이 발생한다. 이러한 문제를 해결하고자 저자들은 두 가지 핵심 아이디어를 제시한다. 첫째, 대형 언어 모델(LLM)을 활용해 자연어 형태의 요약을 생성하고, 이를 버그 보고서와 결합해 “문맥‑인식”된 질문을 만든다. 둘째, “시드 컨텍스트”라는 레포지토리 수준의 메타 정보를 사전 제공함으로써, 파일 단위 요약이 단순히 구현 세부만을 나열하는 것이 아니라, 해당 파일이 시스템 전체에서 수행하는 역할, 인터페이스, 의존 관계 등을 포함하도록 유도한다.

기술적으로는, 각 저장소에 대해 계층적 요약 파이프라인을 구축한다. 먼저, 전체 레포지토리의 README, 아키텍처 다이어그램, 서비스 간 API 명세 등을 집계해 “시드 텍스트”를 만든다. 이후, 개별 파일에 대해 기존 코드 요약 모델(예: CodeBERT 기반)로 초벌 요약을 생성하고, 이 초벌 요약에 시드 텍스트를 프롬프트로 삽입해 LLM에게 재요약을 요청한다. 이렇게 얻어진 “컨텍스트‑인식 요약”은 파일의 기능적 목적과 서비스 경계, 외부 호출 관계 등을 자연어로 기술한다.

버그 로컬라이제이션 단계에서는, 개발자가 제출한 버그 보고서(제목, 스택 트레이스, 재현 단계 등)를 LLM에 입력하고, 앞서 생성된 파일 요약들을 후보 문서 집합으로 제공한다. LLM은 “어떤 파일 요약이 버그 설명과 가장 높은 의미적 일치를 보이는가”를 판단해 상위 N개의 파일을 반환한다. 반환된 파일들은 추가적인 정적 분석 도구와 결합돼 최종 버그 위치를 확정한다.

실험 설계는 두 가지 데이터셋을 사용한다. 첫 번째는 공개된 마이크로서비스 기반 오픈소스 프로젝트(예: Istio, OpenTelemetry)에서 수집한 1,200개의 실제 버그 티켓이며, 두 번째는 인위적으로 삽입한 결함을 포함한 500개의 합성 버그이다. 비교 대상은 (1) 전통적인 키워드 매칭 기반 로컬라이제이션, (2) 파일 단위 독립 요약을 이용한 LLM 로컬라이제이션, (3) 본 논문의 컨텍스트‑인식 요약 기반 LLM 로컬라이제이션이다. 결과는 정밀도(P@5), 재현율(R@10), MAP 등에서 모두 현저히 우수했으며, 특히 복잡한 서비스 간 호출이 얽힌 버그에서는 정밀도가 38% 포인트 상승했다.

또한, 저자들은 시드 컨텍스트의 품질이 요약 성능에 미치는 영향을 정량화하였다. 시드 텍스트를 단순히 프로젝트 이름만 제공했을 때와, 상세 아키텍처 문서와 API 명세를 모두 포함했을 때의 차이를 비교한 결과, 후자의 경우 요약의 의미 일관성이 22% 향상되었으며, 이는 LLM이 버그와 관련된 파일을 더 정확히 매핑하는 데 기여한다는 것을 시사한다.

한계점으로는 (1) LLM의 토큰 제한으로 인해 대규모 레포지토리 전체를 한 번에 제공하기 어렵다는 점, (2) 시드 컨텍스트를 자동으로 추출하는 과정에서 문서 품질에 의존한다는 점, (3) 현재 실험이 주로 오픈소스 프로젝트에 국한돼 있어 기업 내부 레거시 시스템에 대한 일반화 가능성 검증이 필요하다는 점을 언급한다. 향후 연구 방향으로는, 요약 단계에서 라인‑레벨 중요도 가중치를 도입해 더 정밀한 버그 위치 추정을 시도하고, 멀티모달(코드 + 로그 + 트레이스) 정보를 통합한 프롬프트 설계가 제시된다.

전반적으로, 이 논문은 “자연어 요약 + LLM”이라는 새로운 패러다임을 마이크로서비스 다중 저장소 환경에 적용함으로써, 기존 정적 분석 기반 버그 로컬라이제이션의 한계를 극복하고, 개발 생산성을 크게 향상시킬 수 있음을 실증적으로 보여준다.