CodeRabbit은 내가 작성한 코드를 검수해주는 가상의 '시니어 개발자' 프로그램입니다.
주요 특징으로는
(1) PR 기반 자동리뷰
- GitHub에 Pull Request를 올리면 AI가 라인 단위로 코드 리뷰를 합니다.
- 단순 오타, 동시성 문제, API 오남용 등의 코드 문제를 확인할 수 있습니다.
(2) Context 인식
- 프로젝트 전체 구조를 이해하여 의존성 보안 이슈나 아키텍처 위반 사항을 확인할 수 있습니다.
(3) 시퀀스 다이어그램 생성
- 복잡한 백엔드 로직의 흐름을 파악하여 자동으로 시퀀스 다이어그램을 그릴 수 있습니다.
CodeRabbit 사용해 보기
1. 회원가입
AI Code Reviews | CodeRabbit | Try for Free
AI-first pull request reviewer with context-aware feedback, line-by-line code suggestions, and real-time chat.
www.coderabbit.ai

2. 레포지토리 정하기
코드래빗을 이용하고자 하는 레포지토리를 선택합니다.

깃허브에 PR (Pull Request)한 내용을 선택합니다.
"Run a review" 버튼을 클릭합니다.
3. 코드 리뷰 확인하기
완료된 후 나의 깃허브 레포지토리로 접속합니다.

프로젝트 파일 전체를 커밋해서 양이 방대하기 때문에 조금 기다려달라고 합니다.
1~2분만 기다리면 결과가 나옵니다.
먼저 CodeRabbit의 리뷰 결과 요약입니다.
(1) Summary

(2) Walkthrough (상세 분석 보고서)
- 프로젝트 정체성 파악
- 주요 분석 내용
- 코드 리뷰 난이도
- 헌정 시 (이건 왜...?)

(3) Pre-merge checks
merge 하기 전 품질 개선 권고 사항입니다.
깃 PR명을 애매모호하게 작성하지 말고 구체적으로 적으라고 합니다.

(4) Passed checks
잘 되었다고 칭찬하는 점인가 봅니다.

자바 코드 내 주석이 잘 작성되어있다고 하네요 (점수 85.71% / 기준치 80%)
(5) 코드 리뷰
아래로 좀 더 스크롤하면 이제부터 CodeRabbit의 코드 리뷰가 시작됩니다.
Actionable comments posted: 15 (개선 권고 사항: 15개)

오타도 잡아줍니다.

(6) 코드 리뷰 요청
첫 분석이다 보니 프로젝트의 뼈대 위주로 결과가 나왔습니다.
자바 코드 리뷰를 위해 직접 코드 리뷰를 요청해 봅니다.
PR 페이지 제일 하단에 위치한 대화창에 원하는 내용의 프롬프트를 입력합니다.

프롬프트 내용 첫 시작 부분 @coderabbitai 를 꼭 입력해서 CodeRabbit을 호출해야 합니다.
@coderabbitai
제 경우, 좀 더 정확한 프롬프트를 위해 사용하고 있는 툴(인텔리제이)의 클로드 AI에게 프롬프트 작성을 요청했습니다.
클로드에게 입력한 프롬프트 내용은 아래와 같습니다.
AI 프롬프트 작성에 능숙한 건 아니지만 프롬프트의 시작과 끝에 동일한 내용을 작성해 주면, 마지막에 요청 사항을 한 번 작성할 때보다 결과가 목적에 맞게 잘 나옵니다.
코드 리뷰를 위해서 다른 AI한테 물어볼건데 아래 프롬프트 형식을 참고해서 현재 내 프로젝트에 맞게 프롬프트 내용을 다시 작성해줘.
참고 프롬프트 내용 시작:
@coderabbitai 현재 업로드된 166개의 백엔드 코드를 기반으로 프로젝트의 안정성과 성능을 검증하기 위해 다음 5가지 핵심 사항을 정밀 리뷰해줘:
데이터 흐름 (Data Flow): Controller -> Service -> Dao -> mapper로 이어지는 데이터 전달 과정에서 불필요한 객체 생성이 있거나, DTO와 Entity 간의 변환 로직이 비효율적인 지점이 있는가?
트랜잭션 일관성 (Transaction Consistency): 비즈니스 로직 내 @Transactional 어노테이션의 범위가 적절한지, 예외 발생 시 롤백 정책이 데이터 무결성을 보장하는가?
자원 관리 (Resource Management) ★중요: WebSessionDao나 DB 커넥션, 스레드 풀 관리 등에서 메모리 누수나 자원 점유가 길어지는 병목 구간이 존재하는가?
클라이언트-컨트롤러 통신 병목: 대용량 요청이나 잦은 API 호출 시, 컨트롤러 계층에서 응답 지연을 유발할 수 있는 동기적(Blocking) 로직이나 병목 구간이 있는가?
(참고 파일: 명시 요망)
로그인 및 세션 보안: 현재 구현된 로그인 로직과 세션 관리 체계에서 권한 탈취, 세션 고정 공격(Session Fixation) 등 잠재적인 보안 취약점이 있는가?
각 항목에 대해 구체적인 파일명과 라인 번호를 언급하며 개선 코드를 제안해주면 좋겠어.
참고 프롬프트 내용 끝
코드 리뷰를 위해서 다른 AI한테 물어볼건데 위 프롬프트 형식을 참고해서 현재 내 프로젝트에 맞게 프롬프트 내용을 다시 작성해줘.
클로드의 프롬프트 결과입니다.
맞춤 코드 리뷰 프롬프트
아래 내용을 복사해서 사용하세요:
---
다음은 Spring Boot 3.4.3 + MyBatis + Vert.x 3.8.4 + Kafka 기반의
엔터프라이즈 네트워크 인증 관리 시스템입니다 (패키지: kr.co....).
총 166개 Java 파일로 구성된 백엔드 코드를 기반으로
아래 5가지 핵심 사항을 정밀 리뷰해주세요.
각 항목마다 구체적인 파일명과 라인 번호, 개선 코드를 함께 제시해주세요.
---
## 1. 데이터 흐름 (Data Flow)
Controller → Service → Dao → MyBatis Mapper XML 로 이어지는 데이터 전달 과정을 검토해주세요.
주요 검토 대상: (내용 생략)
리뷰 포인트:
- 불필요한 중간 Map 객체 생성 구간이 있는가?
- 레이어 간 데이터 계약이 명확하지 않아 런타임 오류 가능성이 있는가?
---
## 2. 트랜잭션 일관성 (Transaction Consistency)
@Transactional 어노테이션 적용 현황과 롤백 정책을 검토해주세요.
현황: (내용 생략)
리뷰 포인트:
- 다중 DB Write가 발생하는 Service 메서드 중 @Transactional이 빠진 곳은?
- Controller 계층에 @Transactional이 있는 UserController.java 라인 438의 적절성
- SseService.sendToManager()에서 alarmService.createAlarm() 호출 시
DB 저장 실패에 대한 롤백 보장이 되어 있는가?
- 예외 발생 시 부분 커밋(Partial Commit)으로 인한 데이터 불일치 가능성
---
## 3. 자원 관리 (Resource Management) ★중요
메모리 누수 및 자원 점유 병목 구간을 검토해주세요.
주요 검토 대상: (내용 생략)
---
## 4. 클라이언트-컨트롤러 통신 병목
API 응답 지연 유발 요인을 검토해주세요.
주요 검토 대상: (내용생략)
---
## 5. 로그인 및 세션 보안
인증·세션 체계의 보안 취약점을 검토해주세요.
주요 검토 대상: (내용생략)
리뷰 포인트:
- 세션 고정 공격(Session Fixation)에 취약한 설정이 있는가? 등등
실제 개발 프로젝트라 생략된 내용이 많지만 어떤 포인트를 주로 검토해야 할지 프롬프트를 작성해 줍니다.
내용을 작성했다면 Comment 버튼을 클릭합니다.

적당히 5분 정도 기다린 후 새로고침합니다.
다음과 같이 자바 파일에 대한 코드 리뷰 결과가 나왔습니다.

전체적으로 리뷰 형식을 살펴보면
- 파일
- 문제점
- 개선방안
형식으로 각 과정을 일일이 AI에 물어볼 필요없이 한 번에 확인할 수 있다는 게 큰 장점인 것 같습니다.

코드 리뷰 개선을 위해 프롬프트 작성을 클로드를 통해서 했는데
그럼 클로드를 통해서 코드 리뷰를 하는 것과 CodeRabbit을 통해서 코드 리뷰를 하는 것에 차이가 있는지 궁금해서
해당 사항은 제미나이에게 물어봤습니다.


무료 평가판으로 2주 사용할 수 있습니다.
이후 구독 금액은 30달러 (현재 환율 43,488원) 입니다.
