AI 코드 리뷰 자동화 적용 후 삭제.. 이야기 with GenAI (Code Review Automation)
- -
안녕하세요! 갓대희 입니다. :- )
오늘은 코드리뷰에 대해 여러가지 방법을 적용하다보다 알게된 GenAI라는 구글에서 공식 지원하는 기능을 통해 소스 리뷰를 해보려 한다.
한번더 정확히 하자면, 이전엔 PR 리뷰 자동화를 진행했는데 이번엔 전체 소스 리뷰? 라고 볼 수 있다.

결론만 먼저 말씀드리면... 난 해보고 지웠다...

- 테스트 하고 지우기까지 총 들어간 총 비용. 2800원.

왠지 이걸 써보려고 하시는 분들이 있을 것 같아서 히스토리로 남겨 두려고 한다.
지운 이유는 최근 나온 클로드 코드나, Gemini Gode Assist등을 통해 더 쉽고, 더 간단하게 적용 가능한 것 같아 지웠다.
다만 혹여 나와 같은 고민을 했고, 검색 통해 알게되어 진행을 해보고자 하시는 분들께는
그냥 간접 경험 정도로 될 수 있도록... 혹시 이 기능을 만족하셔서 쓸수도 있지만, 나처럼 다른 툴을 선호하시는 분들이 있을 수 있으니 적용했던 후기는 남겨 놓으려 한다.
- 도입중이신 분들은 제가 따라한걸 한번 구경 해보시는걸 추천 한다.
- 혹시나 소스 리뷰관련하여 고민중이신 분들에게 도움이 되자면.. ( 문제는 다 github 베이스 이지만 ㅠ ) 다른글들도 남겨 둔다.
ex) github에 pull request 자동화 적용한 글
ex) 클로드 코드로 개인 커밋 소스 리뷰 적용 사례
2025.08.01 - [AI/Claude] - Claude Code CLI (2) - 기본 사용 방법 (클로드 코드 - 고급 CLI 명령어 사용 방법)
ex) 다음과 같은 n8n 같은 도구로 workflow 구성하는 방법도 있을 것 같다. (컨셉만 확인하느라 아직 버그가 존재해서 나중에 버그 다 수정 후 글 작성은 해보려 한다.)

- 여차저차 그럼 일단 시작 해보려 한다.
Google Codelabs 튜토리얼을 통해 진행 시작
- 모든 내용은 다음 문서 튜토리얼에 기반하여 진행해 보려고 한다.
https://codelabs.developers.google.com/genai-for-dev-bitbucket-code-review?hl=ko#0
devai CLI라는 툴을 사용해서 로컬에서도 코드 리뷰를 할 수 있고, Bitbucket Pipelines에서도 실행할 수 있다.
devai CLI 아키텍처
- 개발자가 로컬에서 devai CLI로 코드 리뷰 실행
- CLI가 Google Cloud Vertex AI (Gemini Pro)에 코드 전송
- Gemini가 코드 분석 후 리뷰 코멘트 생성
- Bitbucket Pipeline에서 자동으로 실행되어 PR에 코멘트 추가
- 선택적으로 JIRA 이슈 생성도 가능
1단계 : Google Cloud 환경 준비하기
가장 먼저 Google Cloud에서 프로젝트를 생성하고 필요한 API들을 활성화해야 한다.
이전 Gemini CLI를 경험해봤다면 조금 익숙할 것이다. 그리고 Bitbucket은 인증 방식이 조금 다르다.
난 계정이 있긴 하지만, 튜토리얼을 진행하기 위해 처음부터 해보겠다.
Google Cloud 설정 단계
1.Google Cloud Console에서 새 프로젝트 생성



2. 검색창 오른쪽에 있는 아이콘을 클릭하여 Cloud Shell을 활성화 한다.

3. 서비스 어카운트 생성 및 JSON 키 다운로드


ex) 서비스 어카운트 이름 : bitbucket-ai-reviewer
ex) 설명 : Bitbucket AI code review automation
4. 서비스 어카운트에 'Vertex AI 사용자' 권한 부여 및 JSON 키 생성

- JSON 키 다운로드: 키 생성 → JSON 형식 선택



5. JSON 키 base64 인코딩
- JSON 키 파일을 Bitbucket에서 사용하려면 base64로 인코딩해야 한다.
- 인코딩한 결과는 복사해두자. 나중에 Bitbucket Repository Variables에 저장할 때 필요하다.
# macOS/Linux
base64 -i downloaded-key.json
# Windows (PowerShell)
[Convert]::ToBase64String([IO.File]::ReadAllBytes("downloaded-key.json"))

- cli에 익숙한 분들은 gcloud로도 가능하다.
# gcloud CLI로 프로젝트 생성
gcloud projects create your-project-id --name="Bitbucket AI Review"
# 프로젝트 설정
gcloud config set project your-project-id
# Vertex AI API 활성화
gcloud services enable aiplatform.googleapis.com
# 서비스 어카운트 생성
gcloud iam service-accounts create bitbucket-ai-reviewer \
--description="Service account for Bitbucket AI code review" \
--display-name="Bitbucket AI Reviewer"
# 역할 부여
gcloud projects add-iam-policy-binding your-project-id \
--member="serviceAccount:bitbucket-ai-reviewer@your-project-id.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
# JSON 키 생성
gcloud iam service-accounts keys create ~/bitbucket-sa-key.json \
--iam-account=bitbucket-ai-reviewer@your-project-id.iam.gserviceaccount.com
2단계 : Bitbucket Repository 설정하기
1. Bitbucket Pipelines 활성화
- bitbucket.org → 본인의 프로젝트 repositry 이동 → Repository settings → PIPELINES 섹션 → Settings


- "Enable Pipelines" 토글 버튼을 ON으로 변경


2. Repository Variables 설정
- GitHub Actions와 달리 Bitbucket은 Repository Variables라는 이름을 사용한다.
- Settings → PIPELINES → Repository variables

- 3개 환경변수 추가

1) GOOGLE_CLOUD_CREDENTIALS
- 위에서 base64 인코딩한 JSON 키 전체 복사 붙여넣자.
- Secured 체크
2) PROJECT_ID : your-gcp-project-id (Google Cloud 프로젝트 ID)
3) LOCATION : us-central1
- 한국 리전으로 안바꿔도 된다.
3. bitbucket-pipelines.yml 생성
- GitHub Actions와 달리 Bitbucket은 Repository Variables라는 이름을 사용한다.
# 프로젝트 루트 디렉토리로 이동
cd your-bitbucket-project
# bitbucket-pipelines.yml 파일 생성
touch bitbucket-pipelines.yml
- https://github.com/GoogleCloudPlatform/genai-for-developers/blob/main/bitbucket-pipelines.yml 에 있는 내용을 조금 수정했다.
bitbucket-pipelines.yml
image: python:3.9
pipelines:
pull-requests:
'**':
- step:
name: DevAI Code Review
script:
# Google Cloud 인증
- echo "$GOOGLE_CLOUD_CREDENTIALS" | base64 -d > /tmp/gcp-key.json
- export GOOGLE_APPLICATION_CREDENTIALS=/tmp/gcp-key.json
- export PROJECT_ID=$PROJECT_ID
- export LOCATION=$LOCATION
# 저장소 클론 및 설치
- git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
- cd genai-for-developers/devai-cli
- pip install -r src/requirements.txt
- pip install -e src/ # editable install로 devai 모듈 설치
# devai 실행
- cd ../..
- python genai-for-developers/devai-cli/src/devai/cli.py review code -c ./
- python genai-for-developers/devai-cli/src/devai/cli.py review testcoverage -c ./
artifacts:
- "*.md"

4. 실제로 PR 날린 후 Pipelines 확인시 다음과 같이 동작하는 것을 볼 수 있다.

ex) review code 결과 샘플

ex) review testcoverage 결과 샘플

- 여기까지가 튜토리얼 8번까지 진행한 내용이다.

- 이후 9번부터의 내용을 요약하자면 해당 저장소를 google Cloud Shell과 연동 후 여러가지 명령어를 통해 소스리뷰, 테스트 적용, 보안성 검토 등을 할 수 있다는 얘기인데... 이때 바로 삭제를 한 이유는
- Google Cloud Shell 자체가 오히려 Gemini Code Assist가 기본적으로 연동이 되어있다. 이 기능이 더 .... 나을것 같아서 지웠다.

- ...안녕....... Gen AI.... 제미나이 코드 어시스트만 있으면 되겠구나 ....

- 다만 이건 자세히보니 2024년도에 출시된 코드 리뷰 자동화로, 그간 구글이 gemini code assist가 어떠한 방향에서부터 발전해 왔는지 그 방향성을 한번 살펴보고가는... 구글의 역사를 잠깐 체험하는 체험 삶의 현장정도는 되지 않았나 싶고
물론 현재 난 github에서 gemini code assist를 통해 pr review 자동화를 하고 있어 그 덕을 충분히 보곤 있다! ㅎㅎㅎ
문제 해결 가이드
자주 발생하는 문제들....
gcloud projects add-iam-policy-binding 명령어를 다시 실행해보세요.pip install --upgrade pip 먼저 실행하는 것이 중요합니다.base64 -w 0 옵션을 사용하거나, 인코딩된 결과에서 개행문자를 제거하세요.# Pipeline에서 환경변수 확인
echo "PROJECT_ID: $PROJECT_ID"
echo "LOCATION: $LOCATION"
echo "CREDENTIALS 길이: ${#GOOGLE_CLOUD_CREDENTIALS}"
# Google Cloud 인증 테스트
gcloud auth list
gcloud config list project
# devai CLI 버전 확인
devai --version
참고 자료
- Google Codelabs - Bitbucket Code Review with GenAI - 공식 튜토리얼 원본
- Gemini API 문서 - API 사용법과 가격 정보
- Bitbucket PR API 문서 - 코멘트 추가 API 스펙
- Bitbucket Pipelines Variables - 환경변수 설정 가이드
- devai CLI GitHub 저장소 - 소스코드와 추가 예제
'AI > Tech Lounge: IT 이슈와 생각들' 카테고리의 다른 글
| Ollama 활용 아이디어 기록의 글 (feat 로컬 LLM를 어떻게 활용해볼까?) (10) | 2025.08.03 |
|---|---|
| Ollama 설치 및 기초 사용방법 (feat 로컬 LLM 환경 구축해보기) (6) | 2025.08.03 |
| [AI 시대 살아남기(2)] AI 시대, 비개발자를 위한 새로운 기회와 역할 (16) | 2025.06.26 |
| [AI 시대 살아남기(1)] 일자리 생태계의 격변(feat 개발자 에겐 위협인가? 기회인가?) (13) | 2025.06.20 |
| [Weekly AI News] (2025-06월 2주차) AI 스타트업 급부상, 거대 기업의 전략은? (8) | 2025.06.14 |
소중한 공감 감사합니다