CodeRabbit으로 깃헙 PR 코드 리뷰 자동화 하기

skydoves·2025년 11월 6일
post-thumbnail

오픈소스를 관리하면서 가장 시간이 많이 소요되는 작업 중 하나가 바로 코드리뷰입니다. 특히 오픈소스 메인테이너들이 PR을 하나하나 모두 살펴보는 것은 정말 많은 시간과 에너지를 필요로 합니다. 이번 포스트에서는 CodeRabbit(코드레빗)이라는 AI 코드 리뷰 툴을 사용하여 오픈소스 프로젝트의 코드 리뷰를 자동화한 경험에 대한 경험을 다루고자 합니다. 더 나아가 오픈소스 메인테이너가 아닌 1인 개발자 혹은 팀에게 어떠한 형태로 도움이 될 수 있는지 살펴보도록 하겠습니다.

CodeRabbit이란?

CodeRabbit은 AI 기반의 자동화 코드리뷰 툴입니다. GitHub과 연동이 쉽게 가능하여 코드 변경사항을 분석하고, 잠재적인 문제점을 찾아내며, 개선 사항을 제안하는 역할을 합니다. 단순히 정적 분석 도구처럼 패턴 매칭만 하는 것이 아니라, 코드의 맥락을 이해하고 비즈니스 로직까지 고려한 피드백을 제공한다는 점에서 SonarQube 같은 전통적인 도구들과 차별점을 가지고 있습니다. 현재 200만개 이상의 레포지토리에서 사용되고 있으며, 1,300만개 이상의 PR을 리뷰했다고 합니다.

GitHub에 CodeRabbit 통합하기

CodeRabbit을 GitHub 레포지토리에 통합하는 과정에서 크게 복잡한 부분은 없습니다.

1. CodeRabbit 설치

먼저 CodeRabbit 웹사이트에 접속해서 GitHub 계정으로 로그인합니다. GitHub App을 통해 설치하는 방식이기 때문에, 원하는 레포지토리를 선택해서 권한을 부여하면 됩니다.

2. 설정 파일 구성

다음과 같이 프로젝트의 root 디렉토리에 .coderabbit.yaml 파일을 생성하여 프로젝트에 맞는 커스텀 리뷰 가이드라인을 설정할 수 있습니다.

reviews:
  review_status: true
  request_changes_workflow: false
  high_level_summary: true
  poem: false
  collapse_walkthrough: false
  auto_review:
    enabled: true
    drafts: false
    base_branches:
      - main
      - develop

language: ko

위와 같이 languageko로 설정하시면 리뷰 코멘트를 한국어로 받을 수도 있습니다. 다만 제 경험상 영어로 받는 것이 문맥상 조금 더 정확한 피드백을 받을 수 있는 것 같습니다.

3. PR 및 Issue 생성 후 자동 리뷰

이제 PR을 생성하면 CodeRabbit이 자동으로 코드를 분석하고 리뷰 코멘트를 남깁니다. 일반적으로 몇 분 안에 완료되며, PR에 직접 코멘트가 달리기 때문에 컨트리뷰터들이 바로 확인하고 대응할 수 있습니다.

비교적 최근에 생겨난 기능 중에 PR 리뷰 뿐만 아니라 GitHub에 생성된 이슈에 대해서도 리뷰를 해줍니다.

보시는 바와 같이, 이슈를 요약하고 아래의 체크박스를 클릭하면 실제 이슈를 수정하기 위한 PR을 생성해 주기도 합니다.

4. Pricing

가장 중요한 pricing입니다. 홈페이지의 pricing 페이지에서 직접 확인하셔도 되지만, 대략적으로 가격 정책은 다음과 같습니다.

개인이 개발하는 오픈 소스 프로젝트라면 100% 무료입니다. 반면에 회사나 팀에서 private repository로 개발하고 있다면, 해당 repository에 속한 contributor의 수 x $12 (Lite) or $24 (Pro)가 청구됩니다. 저는 사이드 프로젝트 팀에서 Pro 버전을 결제하여 사용하고 있습니다.

CodeRabbit의 장점

실제로 제가 관리하는 다양한 오픈소스 프로젝트와 사이드 프로젝트를 포함하여 10개 이상의 프로젝트에서 CodeRabbit을 사용해 보았고 제가 느낀 몇 가지 장점들을 공유드리고자 합니다.

1. 오타 및 네이밍 문제 감지

개발자가 코드를 작성할 때 혹은 코드 리뷰를 할 때 놓치기 쉬운 것 중 하나가 바로 오타입니다. 특히 변수명이나 클래스명에 있는 아주 사소한 수준의 오타는 발견하기도 힘들고, 네이밍이 동작과 완전히 관련이 없다면 기능상 문제가 없더라도 코드 가독성을 해치게 됩니다. 심지어 함수 이름을 잘 못 지어놓고 머릿속에서 기억하고 있는 함수 이름과 달라 나중에 호출하려고 보면 함수가 없다고 나와서 당황했던 경험이 한 번쯤은 다들 있으실 겁니다. CodeRabbit은 사소한 오타들을 정확하게 잡아냅니다.

제 오픈소스 라이브러리에 올라온 Cloudy PR #63의 코멘트를 보시면, 주석에 달린 굉장히 사소한 오타와 같이 사람이 굉장히 알아차리기 힘든 부분을 캐치해 주기도 합니다.

두 번째 줄과 세 번째 줄을 유심히 살펴보시길 바랍니다 :)

2. 잠재적인 버그 발견

단순한 문법 검사를 넘어서 로직 오류를 찾아내기도 합니다. 아까 살펴본 Cloudy PR에서 CodeRabbit은 blur radius 계산에서 (radius + 1) / 25를 사용하면 "off-by-one 오류가 발생해 이미지가 과하게 블러 처리될 수 있다"와 같은 문제를 잡아내기도 했습니다. 요러한 사소한 로직 오류는 보통 개발자들이 놓치기 쉬운데 (특히 밤늦게 정신줄을 놓고 개발하다 보면), 대부분의 소프트웨어에서 발생하는 큰 문제는 이런 사소한 오류에서 비롯되는 경우가 많기 때문에 사소한 로직 오류를 잡아주는 것만으로 사용 가치가 있다고 판단했습니다.

그 외에도 Kotlin의 Enum에서 values() 대신 entries 프로퍼티 사용을 권장하는 등 비교적 최신적인 부분도 반영되어, deprecated된 함수에 대한 마이그레이션이나 삭제 처리 등을 제안합니다. 이는 최신 Kotlin 버전에서 권장하는 방식인데, 프로젝트가 갖고 있는 의존성이 수십~수백개씩 되는 경우 사실 마이그레이션 문서를 일일이 읽어보기 쉽지 않고 이는 개발하다 보면 놓치기 쉬운 부분입니다. CodeRabbit은 현재 포스트 작성일 기준으로 1,300만개 이상의 PR을 리뷰하면서 내부적으로 모델의 최신화가 지속적으로 이루어지고, 새로운 PR을 리뷰할 때 지속적으로 업데이트가 반영되고 있다는 부분이 장점인 것 같습니다.

3. 인터랙티브 Q&A

CodeRabbit의 또 하나의 장점은 지속적인 패드백이 가능하다는 것입니다. LLM의 장점을 그대로 가져온 것으로 보이며, CodeRabbit이 남겨놓은 리뷰에 자신의 생각과 방향을 이야기하며 지속적으로 소통하고 잘못된 제안의 경우 그 방향을 올바르게 잡아줄 수 있습니다.

코멘트에 질문을 하면 CodeRabbit이 답변해 주기도 합니다. 그리고 필요하면 GitHub 이슈를 자동으로 생성해 주거나, 사소한 코드 수정의 경우 CodeRabbit에게 요청하면 해당 사항을 수정하고 자동으로 PR을 생성해 주기도 합니다.

4. PR 요약 및 다이어그램 생성

CodeRabbit은 PR의 변경사항을 요약해서 보여주고, 때로는 이해를 돕기 위해 시퀀스 다이어그램까지 생성해 줍니다. 리뷰어가 코드를 디테일하게 보기 전에 전체적인 맥락을 이해하는 데 유용합니다. 특히 PR의 코드가 굉장히 방대한 경우, 해당 요약 등을 통해 어떤 부분이 주요하게 수정되었고, 어떤 기능이 도입 되었는지 등을 상세하게 요약해 주어 리뷰어가 시간을 절약할 수 있도록 합니다.

CodeRabbit의 단점

세상에 100% 완벽한 도구는 당연히 없습니다. CodeRabbit을 사용하면서 느낀 몇 가지 아쉬운 포인트를 공유합니다.

1. Over Suggestion

장점이자 단점인 부분인데, 어떤 때는 너무 사소한 것까지 코멘트를 남기기 때문에 PR에 수십 개의 코멘트가 달리는 경우도 있습니다. PR에 사소한 코멘트가 너무 많이 남게 되면 정말 중요한 이슈를 놓칠 수 있습니다.

이런 경우 .coderabbit.yaml 설정 파일에서 리뷰의 강도를 조절하거나, 특정 파일 타입이나 디렉토리를 제외시킬 수 있습니다. Configuration reference를 통해 살펴보실 수 있듯이, 기본적으로 제공하는 다양한 옵션들을 끄고 켜거나, MCP, Linear, Jira 등을 연동할 수 있기 때문에 본격적으로 프로젝트에 적용 하신다면 옵션들을 살펴보시는 것을 권장드립니다.

2. 개발자의 의도 추리 실패

AI는 주어진 코드를 통해서만 맥락을 파악하기 때문에 개발자의 의도를 100% 완벽하게 파악하지는 못합니다. 때로는 의도적으로 작성한 코드에 대해 잘못된 방향으로 제안하거나, 도메인이나 비즈니스 모델에 대한 건방진 제안을 할 때도 심심찮게 있습니다.

예를 들어, 성능 최적화를 위해 일부러 복잡한 로직을 작성했는데, CodeRabbit이 "더 심플하게 작성하라"고 제안하거나, 의도적으로 가볍게 작성해 놓은 코드에 대해서 더 복잡한 로직을 제안하는 등, 개발자의 의도와는 조금 다르게 동작하는 경우도 충분히 있습니다.

비슷한 맥락으로, 간혹 문제가 없는 코드에 대해서도 이슈를 제기(false positive)하는 경우도 있습니다. 이런 경우 리뷰어가 맥락을 올바르게 판단하고, 불필요한 제안을 잘 걸러내야 합니다. 만약 리뷰어가 코드에 대한 올바른 맥락을 가지고 있지 않다면, AI가 잘 못 가이드하는 대로 수정하여 오히려 코드 품질을 저하시킬 우려도 있습니다.

어떤 경우에 특히 유용할까?

제 경험상 CodeRabbit은 다음과 같은 상황에서 특히나 유용하다고 느꼈습니다.

1. 1인 개발자 또는 소규모 팀

혼자 개발하거나 팀이 작아서 제대로 된 코드 리뷰를 받기 어려운 경우, CodeRabbit이 이를 어느 정도 해소시켜 줄 수 있습니다. 물론 노련한 시니어 개발자의 리뷰 같은 것을 바라면 안 됩니다. logistic 한 부분, 미래에 고려해야 할 기획 변동 사항, 도메인 혹은 비즈니스와 관련된 부분, 현재 팀의 리소스가 얼마나 충분한지 등의 현실적인 맥락을 AI가 전부 예측하고 해당 상황에 정확하게 맞는 리뷰를 해 줄 수는 없기 때문입니다. 그러나 여전히 기본적인 코드 품질을 유지하는 데는 충분합니다.

특히 1인 개발자는 자신의 코드를 객관적으로 보기 어려운 상황인데, CodeRabbit이 제3자의 시각에서 피드백을 주기 때문에 많은 도움이 됩니다. 혹은 혼자서 사이드 및 오픈소스 프로젝트를 개발하거나, 학습 목적으로 진행하는 프로젝트 등 여러 혼자만의 기여 비중이 압도적으로 높은 프로젝트에서 특히나 큰 위력을 발휘합니다.

2. 리뷰 리소스가 부족한 팀

소규모 팀이든 대규모 팀이든 모두가 바빠서 코드리뷰에 충분한 시간을 할애하기 어려운 경우에도 유용합니다. CodeRabbit이 기본적인 이슈들을 먼저 걸러내주면, 사람은 비즈니스 로직이나 아키텍처 같은 더 중요한 부분에 집중할 수 있습니다. 특히나, 팀에서 시니어 대비 주니어의 비중이 높은 팀의 경우 시니어가 일일이 모든 주니어 개발자들의 코드를 하나씩 살펴보면서 리뷰해 줄 시간적인 여유가 많이 부족합니다. 따라서 팀 내에 주니어의 비중이 압도적으로 높은 경우에도 굉장히 유용합니다.

3. 오픈소스 프로젝트 관리

제가 CodeRabbit을 가장 유용하게 사용하는 곳은 바로 오픈소스 프로젝트입니다. 오픈소스 메인테이너로서 가장 힘든 점 중 하나가 컨트리뷰터들의 PR을 모두 리뷰하는 것입니다. 특히 초보 컨트리뷰터들의 경우 기본적인 코딩 컨벤션이 맞지 않는 경우도 잦으며, 오타도 포함되어 있고, 때로는 로직 오류도 있습니다.

이런 경우 제가 직접 리뷰에 뛰어들기 전에 CodeRabbit이 먼저 리뷰를 하고, 컨트리뷰터가 그 피드백을 반영해서 코드 품질을 끌어올립니다. 이렇게 되면 컨트리뷰터는 기존의 코드베이스에 맞추어 컨벤션을 수정하고, 자연스럽게 코드 품질을 끌어 올리게 되고, 저는 이미 어느 정도 다듬어진 코드를 리뷰하면 되기 때문에 여기서 들어가는 시간을 상당히 절약할 수 있습니다. 특히 여러 개의 오픈소스 프로젝트를 관리하는 메인테이너라면 CodeRabbit은 꽤나 큰 도움이 됩니다.

컨트리뷰터들도 처음에는 "왜 이렇게 많은 코멘트가 달리지?"라고 당황할 수 있지만, CodeRabbit의 피드백을 따라가다 보면 자연스럽게 코드 품질이 향상되고, 결국 메인테이너의 리뷰를 통과하기 쉬워집니다. 이는 오픈소스 프로젝트의 전체적인 참여도를 자연스럽게 높히며 오픈 소스의 코드 품질을 끌어올리는 데도 큰 기여를하고 있습니다.

CodeRabbit CLI

최근에는 CodeRabbit CLI도 출시되었습니다. 터미널에서 직접 코드리뷰를 받을 수 있는 도구인데, 커밋 전이나 PR을 올리기 전에 미리 리뷰를 받아볼 수 있다는 장점이 있습니다. 따라서, CodeRabbit이 통합되지 않은 오픈 소스에 기여하는 경우, 본인이 기존의 코드베이스를 기반삼아 컨벤션을 잘 맞추었는지, 실수한 부분이 없는지 사전에 AI 리뷰를 받아 코드 품질을 향상시키고 결과적으로 메인테이너의 리뷰를 통과하기 쉬운 코드로 다듬을 수 있습니다.

설치는 아래와 같습니다.

curl -fsSL https://cli.coderabbit.ai/install.sh | sh

macOS, Linux, Windows(WSL)를 지원하며, Claude Code, Cursor CLI, Gemini 같은 AI 코딩 어시스턴트들과도 통합됩니다. CLI를 사용하면 "generate-review-iterate" 사이클을 터미널을 떠나지 않고 수행할 수 있습니다. 코드를 작성하고, 리뷰를 받고, 수정하는 과정을 빠르게 반복할 수 있습니다. 특히 사소한 실수를 반복하는 주니어분들께서는 사전에 PR을 올리기 전에 미리 CLI를 통해서 로컬에서 리뷰를 몇 번 받고서 PR을 올리면 팀 전반적인 리소스를 줄이는 데 많은 도움이 될 수 있습니다.

Conclusion

AI가 세상의 많은 부분을 바꾸어 놓고 있습니다. 기존에는 사람이 많은 시간과 반복적인 노동작업을 통해 해결해 왔던 다양한 문제들이 AI를 통해 빠른 해결이 가능해지고 있습니다. AI 코드 리뷰 또한 그들 중 하나입니다. 물론 완전하게 사람들 대체할 수는 없겠지만, 여전히 다양한 환경과 다양한 여건의 사람들에게 이는 서서히 필수적인 툴로 자리하고 있습니다.

여러 AI 리뷰 툴들이 많이 나오고 있지만, CodeRabbit은 그중에서 압도적으로 많은 양의 PR들을 일찍부터 리뷰하고 데이터로 쌓아왔기 때문에 사실상 성능뿐만 아니라 현재로서는 마켓에서 입지가 가장 높다고 볼 수 있습니다. 이를 통해 기본적인 코드 품질 이슈들을 자동으로 걸러내 주기 때문에 개발자들이 더 중요한 문제에 집중할 수 있게 해 줍니다.

특히 1인 개발자, 소규모 팀, 그리고 오픈소스 메인테이너들에게는 정말 유용한 툴이 될 수 있습니다. 저의 경우는 관리하는 오픈소스 프로젝트가 너무 방대하기 때문에 CodeRabbit을 가장 PR이나 이슈가 자주 올라오는 repository 위주로 통합하여 코드리뷰에 소요되는 시간을 절반 이상 줄일 수 있었습니다. 다만 CodeRabbit의 제안을 맹목적으로 따르기보다는 항상 개발자의 판단과 맥락 이해가 필요합니다. AI는 도구일 뿐이며, 최종 결정은 언제나 사람이 내려야 합니다.

CodeRabbit 사용을 고려하고 계셨다면 오픈 소스의 경우는 무료 이용이 가능하고, Pro 버전의 경우도 Free tier가 제공되기 때문에 부담 없이 시작해 보실 수 있습니다. 특히 오픈소스 프로젝트를 운영하고 계시다면, 컨트리뷰터들의 코드 품질을 향상시키고 여러분의 시간을 절약하는 데 큰 도움이 될 것입니다.

profile
http://github.com/skydoves

1개의 댓글

comment-user-thumbnail
2025년 11월 11일

글 잘보았습니다! 저도 오픈소스에서 코드래빗을 사용하고 있는데, 단점 중에 하나가 아무래도 최신 버전의 라이브러리에 관해서는 잘못된 리뷰를 남기기도 하더라구요. 예를 들어 존재하지 않는 버전이라고 하기도 하고, 또는 deprecated된 API를 사용하도록 하거나 등등 그럼에도 장점이 워낙 크기에 만족하면서 사용하고 있네요 ㅎㅎ

답글 달기