혼자 개발하는 나를 위한 AI 코드 리뷰어, CodeRabbit 설정하기

Jayson·2025년 9월 23일
0
post-thumbnail

개인 프로젝트를 진행하다 보면 문득 이런 생각이 들 때가 있어요. '내가 지금 잘하고 있는 걸까?', '더 좋은 방법은 없을까?' 팀원이 있다면 서로의 코드를 보며 배우고 성장하는 '피어 리뷰(Peer Review)'가 있지만, 혼자서는 이런 기회를 갖기 어렵죠. 내가 놓치고 있는 실수는 없는지, 더 효율적인 코드는 무엇인지 알려줄 든든한 사수나 동료가 간절해집니다.

이런 갈증을 해소하기 위해 제 개인 프로젝트인 ai-product-cookbook에 AI 코드 리뷰어, CodeRabbit을 도입했습니다. CodeRabbit을 단순한 리뷰 자동화 툴이 아닌, 나의 코드 품질을 높여주고 성장을 돕는 'AI 멘토'로 만드는 것을 목표로 설정을 진행했습니다.

CodeRabbit, 그게 뭔가요?

CodeRabbit은 Pull Request(PR)에 대해 문맥을 이해하고 피드백을 주는 AI 기반 코드 리뷰어입니다. 사람이 미처 발견하지 못한 부분을 짚어주거나 새로운 관점을 제시하며 코드 리뷰의 질을 높여주는 역할을 하죠.

단순히 코드만 봐주는 것을 넘어, Git 플랫폼의 PR 인터페이스 안에서 AI와 직접 대화하며 질문을 던지거나 코드 생성을 요청할 수도 있습니다. 마치 옆자리의 시니어 개발자에게 물어보는 것처럼요.

5분 만에 도입하기

CodeRabbit 도입은 정말 간단합니다.

  1. CodeRabbit 사이트에서 GitHub 계정으로 로그인합니다.
  2. 로그인 후 설정 화면에서 Add Repository 버튼을 눌러 CodeRabbit을 적용할 내 레포지토리를 선택합니다.
  3. 도입이 끝났습니다. 🎉

이제 내 레포지토리에 새로운 PR을 올리면 CodeRabbit이 자동으로 리뷰를 달아주기 시작합니다. 하지만 지금은 영어를 쓰거나 엉뚱한 소리를 할 수도 있어요. 진짜 '나만의 AI 멘토'로 만들기 위해서는 아래 세부 설정 과정이 필수적입니다.

나만의 AI 멘토 만들기: .coderabbit.yaml 설정

레포지토리 최상단(root)에 .coderabbit.yaml 파일을 만들고 아래 내용을 붙여넣으면 나만의 설정을 적용할 수 있습니다. 혼자 진행하는 프로젝트의 특성을 고려하여, 자동화는 최대한 켜고 불필요한 기능은 껐습니다.

# ---------------------------------------------------------------- #
# AI 기본 설정 (언어 및 페르소나)
# ---------------------------------------------------------------- #
# AI가 응답할 때 사용할 기본 언어를 설정합니다.
language: ko-KR

# AI의 페르소나와 응답 톤앤매너를 상세하게 지시합니다.
tone_instructions: >
  당신은 실력 있는 시니어 개발자 동료입니다. 목표는 주니어 개발자인 제가 더 나은 코드를 작성하며 성장하도록 돕는 것입니다.
  1. 피드백은 명확하고 구체적이어야 하며, 문제의 원인과 개선 방법을 최신 기술 트렌드와 클린코드 원칙에 기반하여 제시해주세요.
  2. 리뷰는 교육적이어야 합니다. 관련 개념이나 공식 문서를 함께 추천해주면 큰 도움이 됩니다.
  3. 비판보다는 '이런 방법은 어떨까요?'와 같이 개선 중심의 제안을 우선해주세요.
  4. 잘한 부분에 대한 칭찬은 짧고 위트 있게 해주세요.

# ---------------------------------------------------------------- #
# 코드 리뷰 기능 세부 설정
# ---------------------------------------------------------------- #
reviews:
  # 리뷰의 전반적인 스타일을 설정합니다. 'chill'은 비교적 덜 엄격하고 부드러운 톤을 의미합니다.
  profile: chill

  # PR의 전체적인 변경 사항에 대한 요약(summary)을 생성합니다.
  high_level_summary: true

  # 변경된 각 파일에 대한 요약은 PR을 너무 길게 만들 수 있어 비활성화합니다.
  changed_files_summary: false

  # 코드 실행 흐름을 보여주는 시퀀스 다이어그램은 비활성화합니다.
  sequence_diagrams: false
  
  # PR에 연결된 이슈(Issue)를 분석하여 리뷰 컨텍스트에 활용합니다.
  assess_linked_issues: true

  # ---------------------------------------------------------------- #
  # ▼▼▼ 1인 프로젝트에 맞춰 비활성화한 기능들 ▼▼▼
  # ---------------------------------------------------------------- #
  # CodeRabbit의 코멘트를 모두 해결(resolve)하면 자동으로 Approve하는 기능입니다. 어차피 혼자 승인할 것이므로 false로 설정합니다.
  request_changes_workflow: false
  # 연관된 다른 이슈나 PR을 찾는 기능은 1인 프로젝트에서는 불필요합니다.
  related_issues: false
  related_prs: false
  # PR에 적절한 레이블을 제안하거나 자동으로 적용하는 기능입니다. 직접 관리하는 것이 편합니다.
  suggested_labels: false
  auto_apply_labels: false
  # 다른 동료 리뷰어를 추천하거나 할당하는 기능은 당연히 필요 없습니다.
  suggested_reviewers: false
  auto_assign_reviewers: false
  
  # 리뷰 요약에 위트 있는 시(poem)를 포함합니다. 혼자 하는 개발에 작은 재미를 줍니다.
  poem: true

  # 특정 파일 경로에 따라 다른 리뷰 지침을 적용합니다.
  path_instructions:
    - path: "server/**"
      instructions: |
        1. Java 21과 Spring Boot 최신 버전에 맞는 모범 사례(best practices)를 기반으로 리뷰해주세요.
        2. 객체지향 원칙(SOLID), 클린코드, 불필요한 로직, 리팩토링 포인트를 중점적으로 확인해주세요.
        3. 서비스/도메인 설계, 예외 처리, 테스트 커버리지(특히 미작성된 테스트 케이스 제안)에 대한 의견을 적극적으로 제시해주세요.
        4. 각 리뷰 포인트별로 문제점과 대안, 장단점을 논리적으로 제시하고, 필요한 경우 예시 코드도 추가해주세요.
    - path: "frontend/**"
      instructions: |
        1. 최신 웹 표준과 React/TypeScript 모범 사례를 우선적으로 반영하여, 가독성, 안정성(Null/에러 처리), 유지보수성을 검토해주세요.
        2. 컴포넌트 설계, 상태 관리, 비동기 처리 방식에 대한 개선점을 제안해주세요.
        3. 각 리뷰 포인트별로 문제점과 대안, 장단점을 논리적으로 제시하고, 필요한 경우 예시 코드도 추가해주세요.

# ---------------------------------------------------------------- #
# 자동 리뷰 트리거 설정
# ---------------------------------------------------------------- #
auto_review:
  # 1인 프로젝트이므로, PR을 올릴 때마다 자동으로 리뷰를 시작하도록 활성화합니다.
  enabled: true
  # 새로운 커밋이 추가될 때, 변경된 부분에 대해서만 자동으로 리뷰를 다시 진행하도록 활성화합니다.
  auto_incremental_review: true

# ---------------------------------------------------------------- #
# 채팅 기능 설정
# ---------------------------------------------------------------- #
chat:
  # 사용자가 @coderabbitai 태그를 지정하지 않아도 자동으로 답글을 달 수 있도록 설정합니다.
  auto_reply: true

# ---------------------------------------------------------------- #
# CodeRabbit의 지식 기반(Knowledge Base) 설정
# ---------------------------------------------------------------- #
knowledge_base:
  # 웹 검색을 통해 최신 정보나 문서를 참조할 수 있도록 허용합니다.
  web_search:
    enabled: true
  # CodeRabbit이 대화나 리뷰를 통해 학습한 내용을 현재 레포지토리에 한정하여 저장하고 참조합니다.
  learnings:
    scope: local
  issues:
    scope: local
  pull_requests:
    scope: local

마치며

AI 도구가 넘쳐나는 시대입니다. 중요한 것은 '어떻게' 사용하느냐에 달려있는 것 같아요. CodeRabbit 역시 단순히 귀찮은 코드 리뷰를 대신하는 도구가 아니라, 팀의 상황과 개인의 목표에 맞게 조율할 때 그 진가를 발휘한다고 생각합니다.

특히 저처럼 혼자 프로젝트를 진행하는 개발자에게 CodeRabbit은 코드 품질을 객관적으로 점검하고, 새로운 기술이나 접근 방식을 배우는 기회를 제공하는 훌륭한 'AI 멘토'가 되어줄 수 있습니다. 이 글이 저와 비슷한 고민을 가진 분들께 도움이 되기를 바랍니다.


profile
Small Big Cycle

0개의 댓글