iOS 팀 GitLab MR 리뷰봇 (TextRAG 기반 사내 코드 리뷰 자동화)
사내 GitLab MR 이벤트를 받아 TextRAG의 RAG 코드 리뷰 API를 호출·자동 의견을 게시하는 사내 리뷰봇을 구축
언어
- Python3
기술
- FastAPI
- Ollama
- GitLab CI/CD
환경
- PyCharm
- VSCode
**iOS 팀 사내 GitLab의 MR 이벤트를 받아 자동 리뷰 의견을 MR 코멘트로 게시하는 코드 리뷰봇입니다. 사내에 직접 구축해 둔 로컬 LLM 기반 RAG 서버 **TextRAG의 코드 리뷰 API를 코어 엔진으로 활용하며, 혼자 설계·구현해 운영하고 있습니다.
배경·과제
-
iOS 팀 코드 리뷰 가이드는 ‘24시간 이내 리뷰’를 원칙으로 하지만, 릴리즈 시즌과 고객 이슈가 겹치면 리뷰 대기가 길어질 수 있었습니다.
-
보안 회사 특성상 코드를 외부로 보낼 수 없어, 외부 LLM API 기반 리뷰는 선택지가 아니었습니다. 대신 TextRAG에는 diff를 받아 관련 코드를 검색하고 LLM 리뷰를 생성하는 코드 리뷰 API가 이미 있었고, 이를 GitLab MR 워크플로우에 연결하는 조립 계층이 필요했습니다.
수행·기여
-
TextRAG의 RAG 코드 리뷰 API를 코어 엔진으로 재사용하고, GitLab MR 이벤트를 받아 리뷰를 호출해 MR 코멘트로 게시하는 리뷰봇을 Python(FastAPI)으로 구현했습니다.
-
버그, 보안, 성능, 품질, 정합성의 5축으로 리뷰를 구성했습니다. 관련 소스 근거를 먼저 제시하고, 리뷰 의견을 스트리밍으로 MR 코멘트에 게시합니다.
-
프로젝트별 코드베이스를 RAG 코퍼스에 매핑하고, 코퍼스가 없는 프로젝트는 자동으로 건너뛰게 설계했습니다.
-
임베더 과부하나 LLM 재시작 같은 일시 장애에 대비한 재시도 로직을 넣어 운영 안정성을 확보했습니다.
성과
-
iOS 팀 7개 제품 MR에 자동 리뷰 코멘트를 적용해, ‘24시간 이내 리뷰’ 원칙을 자동 의견으로 보완하고 있습니다.
-
TextRAG 서버 한 대로 사내 코드 검색과 RAG 리뷰를 함께 제공해, 별도 DevOps 파이프라인 없이 운영 부담을 줄였습니다.
다음 단계
-
MR 단일 코멘트를 특정 파일·라인 인라인 코멘트로 정밀화하려 합니다.
-
대형 diff는 파일별로 나눠 쿼리하도록 개선할 계획입니다.
-
5축 외에 사내 코드 명명·컨벤션 스타일을 프롬프트로 커스터마이징할 예정입니다.