GPT로 AI 코드 리뷰 받자!
왜 AI 코드 리뷰인가?
코드 리뷰는 부담스러운 일이다. 때로는 직접 짜는 것보다 더 부담스러운 일이기도 하다. 직접 짜면 한시간만에 끝날 코드가 읽을때는 삼십분 이상 걸릴때면 진짜 모든걸 내던지고 QA에게 다 떠넘기고 싶을 때도 있다.
그럴때면 이런 생각이 드는 것이다. ‘아! 이것도 AI한테 떠넘기면 좋을텐데!’
하지만 이런 생각은 언제나 상상만으로 끝났다. 왜냐하면 처음 센세이션을 일으켰던 GPT-3.5는 정말…장난감 같은 성능을 보여줬고 가격은 비쌌기 때문이다.
The GPT-3 hype is way too much. It’s impressive (thanks for the nice compliments!) but it still has serious weaknesses and sometimes makes very silly mistakes. AI is going to change the world, but GPT-3 is just a very early glimpse. We have a lot still to figure out.
GPT-3은 너무 과대평가되었습니다. 여러 칭찬은 감사하지만, 여전히 약점이 있고 이상한 실수를 하기도 합니다. AI가 세상을 바꿀 것이지만 GPT-3는 그 첫발을 내딛은 것뿐이라 생각합니다. 여전히 알아낼 게 많아요.
OpenAI 대표 샘 알트만
출처: https://x.com/sama/status/1284922296348454913
번역 출처: https://namu.wiki/w/GPT-3
다행히도 이런 내 생각은 기분좋은 배신을 당했다. GPT는 날이 갈 수록 성능은 올라가고 가격은 저렴해졌기 때문이다. GPT-4o mini에 이르러서는 매우 저렴한 가격과 가격 대비 믿을 수 없는 성능을 보여줬다.
GPT-4o mini는 GPT-3.5 대비 성능은 36.5% 업, 가격은 65.3% 다운되었다.
이정도면, 충분히 AI 코드 리뷰를 할 수 있겠다는 판단이 들었고 나는 당장 실행에 옮겼다.
Github action으로 PR에 리뷰 댓글을 달아보자!
시작하기에 앞서, 상상이상으로 쉽다. 왜냐하면 이미 앞서 가신 분들이 AI PR 리뷰용 액션을 만들었기 때문이다!
https://github.com/marketplace/actions/chatgpt-codereviewer?source=post_page-----a7820dda8f88
가장 힘든 일은 앞서 가신 분들이 이미 하신 것이다. 따라서 우리가 할 일은 두개밖에 없다. 바로 1. GPT 설정과 2. Github 설정이다.
GPT 설정
먼저 https://platform.openai.com/ 로 가서 회원가입을 한다. 주의할 점은 ChatGPT가 아니라는 것이다! ChatGPT는 OpenAI 재단에서 운영하는 GPT 서비스 중 하나인 것이고, GPT API를 사용하기 위해서는 위의 사이트에서 회원가입을 해야한다.
회원 가입 후에는 스크린샷에 있는 번호에 맞춰 차례대로 눌러 예산을 충전해야 한다. 후술하겠지만 생각보다 비용이 매우 저렴하므로 일단은 1달러만 충전하는 걸 추천한다. 쓰다가 부족하면 재충전하면 된다.
마지막으로 스크린샷에 있는 번호에 맞춰 차례대로 입력 후 시크릿 키를 생성하면 된다. 이걸로 OpenAI에서 해야 할 일은 모두 마쳤다. 해당 키는 Github에 쓸 것이므로 잘 보관하자.
Github 리포지토리 설정
먼저, 리포지토리의 설정 페이지의 메인터넌트 권한이 있어야 한다. 자기의 리포지토리면 당연히 권한이 있을 것이고, 회사의 리포지토리면 CTO님을 살살 꼬셔보자.
먼저 PAT_TOKEN을 만들자. 리포지토리 열람, 댓글 추가 등의 권한을 위해 필요하다.
https://github.com/settings/tokens 로 접속
번호대로 클릭
순서대로 토큰을 생성하면 끝. 토큰값을 잘 저장해놓자.
이후 AI 리뷰를 할 리포지토리에 해당 키를 SECRET으로 등록해야 한다. 아래의 절차를 따르자.
여기서 하나 더. OPENAI_API_KEY도 입력을 해야한다. Secret은 GPT에서 생성한 시크릿을 입력하자.
이렇게 두가지 시크릿이 생성되었으면 리포지토리에서 해야 할 일은 끝. 마지막으로 github action만 만들면 된다.
액션을 만들고 싶은 곳에 가서 configure를 선택
차례대로 사진처럼 바꾸자. 2번의 내용은 아래와 같다.
name: Code Review
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: anc95/ChatGPT-CodeReview@main
env:
GITHUB_TOKEN: ${{ secrets.AI_REVIEW_PAT_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
# optional
LANGUAGE: Korean
PROMPT:
MODEL: gpt-4o-mini-2024-07-18 # https://platform.openai.com/docs/models
IGNORE_PATTERNS: /node_modules,*.md,/**/*.stories.tsx # Regex pattern to ignore files, separated by comma
마지막으로 커밋하면 끝. 이제 PR을 올리면…
이런 식으로 코드 리뷰를 해주는 AI를 볼 수 있다. 생각보다 디테일하게 알려주기 때문에 상당히 도움이 된다.
코드 리뷰의 비용은?
자, 다 좋지만 비용 이야기를 안할 수가 없다. 비용이 너무 비싸면 회삿돈으로 얼리어답터 놀이를 한다는 소리를 들을 수도 있는 것 아닌가? 우리의 소중한 탕비실 과자 구매비와 회식비가 AI 리뷰에 녹아내리는 건 안타까운 일이 아닌가? AI 리뷰를 도입하기 위해 CTO를 설득할 때 ‘생각보단 적게 듭니다!’라는 답변으로는 아무래도 부족한 일이기도 하고.
그래서 AI 리뷰에 드는 비용을 계산을 해보았다. 결과는 생각보다 고무적이었다.
나는 하나의 PR을 올렸고, 해당 PR은 2개의 파일이 삭제되고 12개의 파일이 추가되었으며 2개의 파일이 수정되었다. 1,387 줄이 추가되었으며 1,571줄이 삭제되었다. 이건 평균보다 조금 더 큰 기능이라고 생각한다.
이런 평균 이상의 PR에는 토큰이 꽤나 많이 소모된다. 해당 AI 리뷰를 위해 46,330 토큰이 소모되었다는 결과가 나온다. 많이 읽기도 해야하고 많이 쓰기도 해야하니까 그럴만 하다는 생각이 든다.
그래서, 중요한 비용은?
$0.01. 고작 14원이다. 퀄리티에 비해서 말도 안되게 저렴한 가격인 셈이다. 심지어 가격을 약간 더 희생시키면 퀄리티는 더 올릴 수 있다. o1-preview는 gpt-4o-mini에 비해 15.49% 더 나은 성능을 보여준다. 리뷰당 283원이면 15.49% 더 나은 성능을 누릴 수 있는 셈이다.
결론
AI가 너무 비싸고, 너무 장난감 같던 시절을 지나 AI를 본격적으로 쓸 수 있는 시대가 왔다고 생각한다. AI 검색엔진(https://www.perplexity.ai/), AI 코드 자동완성(https://www.cursor.com/)도 훌륭하지만 AI 코드 리뷰도 한번 도입해보는 것이 어떨까?
참고자료