
요즘 PR 올리기 전 커밋 메시지 쓰기랑 코드리뷰 체크리스트 돌리기가 은근 시간을 많이 잡아먹는다.
그래서 “내가 하는 반복 작업을 AI에게 넘기자”라는 목표로 다음을 자동화했다.
git diff --staged 기반으로 커밋 메시지(제목+본문) 자동 생성결론부터 말하면, 룰만 잘 잡아두면 “작성/검수” 시간을 꽤 줄여준다. 특히 리뷰 포맷을 강하게 강제하면 결과물이 안정적으로 나온다.
입력: git diff --staged, git diff --staged --name-status, 현재 브랜치명
출력: 바로 붙여넣어 git commit 할 수 있는 커밋 메시지 텍스트
브랜치명에서 JIRA 키 추출: ([A-Z][A-Z0-9]+-\d+)
[JIRA-123][NO-TICKET]입력: git diff base...HEAD 또는 git diff --staged
출력: 한국어로 된 리뷰 결과(Blocking/Recommended/Suggestion/TechDebt)
Notion API로 페이지 생성
내가 만든 스크립트는 크게 두 개다.
커밋 메시지는 staged diff 기준으로 만들어야 “실제로 커밋되는 내용”과 1:1로 맞는다.
diff만 주는 것보다 --name-status도 같이 주면 요약 품질이 좋아진다.
출력 포맷을 강제한다:
(추정) 표시git add .
python ai_commit_message.py > /tmp/msg.txt
git commit -F /tmp/msg.txt
또는
python ai_commit_message.py | git commit -F -
[JIRA-123] or [NO-TICKET])(추정)을 반드시 붙이게 만든 건 잘한 선택이었다.MAX_CHARS로 잘라야 한다(스크립트에서 이미 처리).git diff origin/develop...HEAD--staged--path src --path apps/api--exclude node_modules --exclude dist추가로, diff가 비었을 때:
--review-files 옵션을 주면 diff 대신 파일 내용을 읽어서 정적 리뷰(구조/보안/테스트/개선점)를 돌린다.리뷰는 이 포맷이 핵심이다.
표 형태로, 분류별로, 이슈당 1행. 이걸 강제하면 Notion에 저장해도 읽기 좋고, 나중에 검색도 쉽다.
요약 테이블
4개 섹션
각 섹션에 같은 표 헤더:
| 위치 | 문제 설명 | 권장 수정 | 이유 |
이렇게 하면 “좋은 말 잔뜩”이 아니라, 조치 가능한 리뷰가 된다.
코드리뷰를 그냥 stdout으로 찍어두면 그 순간엔 편한데,
시간 지나면 사라진다.
Notion DB에 쌓아두면 좋은 점:
Notion API는 생각보다 제약이 많다.
그래서 스크립트에서:
이 부분이 “작동은 하는데 깨끗하게 작동하게 만들기”에서 제일 시간을 잡아먹었다.
git addpython ai_commit_message.py 실행python ai_review_to_notion.py --base origin/develop --path src --exclude dist -v내가 다음으로 넣고 싶은 것들:
이 방식의 핵심은 “AI가 다 해준다”가 아니라,
이 3가지를 강제하는 거였다.
AI를 잘 쓰면, 개발 속도를 올리는 가장 쉬운 방법 중 하나가
“사람이 하기엔 귀찮은 반복 작업을 넘기는 것”이라고 느꼈다.