시간은 금이다: LLM을 이용한 AI 코드 리뷰 도입기( 출처: NAVER D2 )
LLM을 사용한 자동화 코드리뷰 후기(Github Copilot Chat)
- 85%의 개발자가 코드 품질에 대한 향상을 느낌
- 코드 리뷰 및 피드백에 대한 시간이 15% 향상됨
- 88%의 개발자가 자동화 코드리뷰를 지속하고 싶다고 함
네이버의 AI 코드리뷰 도입기
- 24년 출시한 Meta의 Llama3 700B 모델 채택
- 채택 이유: 오픈소스, 라이선스문제 없음, 15조 개의 Token으로 훈련됨, Tokenizer가 매우 커서 한정된 리소스로 실행시키기 적합하다고 판단
- 코드 리뷰 기준
- Pre-condition Check: 함수나 메서드가 올바르게 작동하기 위해 필요한 변수의 상태나 값의 범위를 가지고 있는지 검사
- Runtime Error Check: Runtime Error 가능성이 있는 코드를 검사하며, 기타 잠재적 위험을 확인
- Optimization: 코드 패치의 최적화 포인트를 검사. 코드가 성능이 떨어진다고 판단되면, 최적화된 코드 추천
- Security Issue: 코드가 심각한 보안 결함을 가진 모듈을 사용하거나 보안 취약점을 포함하고 있는지 검사
- 아키텍쳐
- 프롬프트 엔지니어링 - 시스템 프롬프트
- 한국어로 답변하도록 프롬프트 설정(ex. "Please answer in Korean", "You should ensure that all answer are in Korean")
- 역할 부여: 특정 역할을 부여해주고, 출력을 원하는 분야에 대하여 불필요한 할루시네이션을 줄임
- 출력 제한: LLM 특징상 다양한 답변이 나올 수 있기 때문에, 원하는 아웃풋 포맷을 받을 수 있도록 예시를 직접 입력
- 실행 방법
- 조직이나 개인 repository에서 Runner를 생성해놓은 상태에서, AI 코드 리뷰를 적용하고자 하는 repository 경로 안에서 ./github/workflows/ 내에 해당 yaml 파일을 생성
- 자동 코드 리뷰를 받고자 하는 repository에서 action 불러오기
- AI 코드 리뷰 결과 리포트 예시