Contents
see List작성일 2025. 11. 30.
AI 코드 리뷰 자동화 - GitHub Actions와 LLM 연동
GitHub Actions와 LLM을 연동하여 Pull Request 코드 리뷰를 자동화하면 코드 품질 향상과 리뷰 시간 단축을 동시에 달성할 수 있습니다.
언제 사용하나요?
- PR 코드 리뷰 자동화
- 코드 품질 일관성 유지
- 시니어 개발자 리뷰 부담 감소
- 24시간 즉시 피드백 제공
- 보안 취약점 자동 검출
아키텍처
PR 생성/업데이트
│
▼
GitHub Actions 트리거
│
▼
변경된 코드 추출 (git diff)
│
▼
LLM API 호출 (OpenAI/Claude)
│
▼
PR 코멘트로 리뷰 결과 게시GitHub Actions 워크플로우
# .github/workflows/ai-code-review.yml
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files
id: changed
run: |
git diff origin/${{ github.base_ref }}...HEAD --name-only > changed_files.txt
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: pip install openai PyGithub
- name: Run AI Review
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: python .github/scripts/ai_review.py리뷰 스크립트 (Python)
# .github/scripts/ai_review.py
import os
from openai import OpenAI
from github import Github
client = OpenAI()
gh = Github(os.environ["GITHUB_TOKEN"])
# 변경된 파일 읽기
with open("changed_files.txt") as f:
files = f.read().splitlines()
# 각 파일 리뷰
for file_path in files:
if not file_path.endswith((".py", ".js", ".java")):
continue
diff = os.popen(f"git diff origin/main...HEAD -- {file_path}").read()
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": """
당신은 시니어 개발자입니다. 코드 리뷰를 수행하세요.
- 버그 가능성
- 보안 취약점
- 성능 이슈
- 코드 스타일
간결하게 핵심만 지적하세요.
"""},
{"role": "user", "content": f"파일: {file_path}
{diff}"}
]
)
review = response.choices[0].message.content
# PR에 코멘트 게시
repo = gh.get_repo(os.environ["GITHUB_REPOSITORY"])
pr = repo.get_pull(int(os.environ["PR_NUMBER"]))
pr.create_issue_comment(f"## AI 코드 리뷰: {file_path}
{review}")프롬프트 엔지니어링 팁
# 효과적인 리뷰 프롬프트
system_prompt = """
당신은 10년차 시니어 개발자입니다.
리뷰 기준:
1. [심각] 버그, 보안 취약점 - 반드시 수정 필요
2. [권장] 성능 개선, 가독성 - 수정 권장
3. [제안] 스타일, 컨벤션 - 선택적 개선
출력 형식:
- 라인 번호와 함께 지적
- 수정 제안 코드 포함
- 칭찬할 점도 언급
"""기존 도구 활용
| 도구 | 특징 |
|---|---|
| CodeRabbit | SaaS, 즉시 사용 가능 |
| PR-Agent | 오픈소스, 커스터마이징 |
| Sourcery | Python 특화 |
| Amazon CodeGuru | AWS 통합 |
비용 최적화
- 변경된 파일만 리뷰 (전체 X)
- 테스트 파일 제외
- gpt-4o-mini로 1차 필터링
- 심각한 이슈만 gpt-4o로 재분석
주의사항
- 민감한 코드는 self-hosted LLM 사용
- AI 리뷰는 보조 수단, 최종 판단은 사람
- 오탐(False Positive) 관리 필요
ai
| No | 작성일 | Title |
|---|---|---|
| 2906 | 2026. 05. 29. | RAG 검색 품질을 높이는 청킹·메타데이터·재랭킹 설계 가이드 |
| 2849 | 2026. 05. 21. | AI 에이전트 도구 권한과 감사 로그 설계 실전 가이드 |
| 2765 | 2026. 05. 13. | LLM 답변 품질을 숫자로 관리하는 평가 파이프라인 구축 가이드 |
| 2579 | 2026. 04. 22. | Claude API Tool Use + MCP 완전 정복: 2026년 AI 에이전트 개발 실전 가이드 |
| 2489 | 2026. 04. 14. | 멀티AI 워크플로 완벽 가이드: Claude, GPT, Gemini 조합으로 개발 생산성 극대화 |
| 2468 | 2026. 04. 13. | 2026년 프롬프트 엔지니어링 완벽 가이드: Chain-of-Thought부터 Context Engineering까지 |
| 2448 | 2026. 04. 12. | Claude API 프롬프트 캐싱 완벽 가이드: 비용 90% 절감하기 |
| 2424 | 2026. 04. 11. | Claude API Extended Thinking + Tool Use 실전 활용 가이드 |
| 2388 | 2026. 04. 09. | MCP(Model Context Protocol) 완벽 가이드 - AI 에이전트 통합의 새로운 표준 |
| 2367 | 2026. 04. 08. | 프롬프트 엔지니어링 완벽 가이드 2025: Context Engineering과 구조화된 출력 전략 |