무료 AI 도구를 사용하여 Conventional Commits CLI 구축하기 (비용 0원)
요약
스테이징된 git diff를 분석하여 Conventional Commit 메시지를 자동으로 생성해 주는 Python CLI 도구인 commit-sage를 소개합니다. 무료 AI 도구만을 활용하여 구축되었으며, 개발자의 커밋 메시지 작성 부담을 줄여줍니다.
핵심 포인트
- git diff를 OpenAI 또는 Gemini로 전송하여 메시지 생성
- Conventional Commit 형식을 준수하는 자동 파싱 기능
- 무료 AI 보조 도구만을 사용하여 비용 없이 구축 가능
- 예외 처리 및 디스패치 패턴을 적용한 안정적인 구조
무료 AI 도구를 사용하여 Conventional Commits CLI 구축하기 (비용 0원)
스테이징된 diff(차이점)를 바라보며 이를 한 문장으로 요약하려고 애쓰는 것은 모든 개발자가 치러야 하는 세금과 같습니다. "fix stuff"나 "wip" 같은 메시지들이 히스토리에 쌓이다 보면, 6개월 뒤 git blame을 실행했을 때 무엇을 했는지 추측조차 할 수 없게 됩니다.
그것이 제가 commit-sage를 만든 이유입니다.
무엇인가
commit-sage는 스테이징된 git diff를 읽어 AI 제공업체(AI provider)로 전송하고, 수동 작성 없이 바로 사용할 수 있는 Conventional Commit 메시지를 반환하는 Python CLI입니다.
흐름:
- git을 통해 스테이징된 diff를 읽음
- 설정된 AI 제공업체(OpenAI 또는 Gemini)로 diff를 전송
- 응답을 Conventional Commit 형식으로 파싱(Parsing)
- 커밋하기 전에 사용자가 검토
API 키 누락, 스테이징된 파일 없음, API 오류와 같은 예외 상황(edge cases)을 깔끔하게 처리하며, 프로그램이 충돌하는 대신 명확한 에러 메시지를 통해 이를 포착합니다.
어떻게 구축했는가
전체 구축 과정에서 유료 도구는 전혀 사용하지 않았으며, 무료 AI 보조 코딩 도구만을 사용했습니다. 처음에는 단일 제공업체용 스크립트로 시작했으나, 두 번째 백엔드가 추가되면서 디스패치 패턴(dispatch pattern)으로 리팩터링(refactored)했습니다.
왜 중요한가
커밋 히스토리는 문서화입니다. 깨끗한 로그는 변경 사항 목록(changelogs), 코드 리뷰(code review), 디버깅(debugging)을 더 쉽게 만듭니다. commit-sage는 판단력을 대체하는 것이 아니라 — 커밋 전에 여전히 메시지를 보여줍니다 — 단지 백지 상태에서 시작해야 하는 문제(blank-page problem)를 제거해 줄 뿐입니다.
사용해 보기
MVP 단계이며, 피드백과 PR(Pull Request)을 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기