데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Gemini CLI로 커밋 메시지 자동 생성 도구 개발하기

      chamming2 25.07.22
      4,269 9 3
      DEVOTEE 요약
      무료로 사용할 수 있는 LLM 도구인 gemini-cli를 활용해 Git 스테이징 파일의 변경사항을 분석하고 커밋 메시지를 자동 생성해주는 도구를 개발한 후기입니다. 이 도구는 gemini-cli의 --prompt 기능과 쉘 스크립트를 이용해 AI 기반 커밋 메시지를 생성하며, 간단히 npm 설치 후 실행할 수 있도록 패키징되었습니다. 비용 부담을 줄이는 gemini-cli 같은 도구를 통해 더 많은 재미있는 AI 프로젝트가 가능해지길 기대한다고 전했습니다.

      들어가며

      안녕하세요, SK플래닛에서 Web3 관련 서비스를 개발하고 있는 프론트엔드 개발자 김찬민이라고 합니다.

      최근 LLM 서비스 생태계를 지켜보던 중 gemini-cli 가 눈에 들어오게 되었는데요,

      대부분의 LLM은 API 기반 사용 방식에 토큰 또는 이용 횟수별로 비용을 부과하는 반면

      gemini-cli는 분 60회 / 일 1,000회 사용 쿼터를 제공한다는 점(*gemini-2.5-flash 에 한해)에서 무료로 운영할 만한 프로젝트를 만드는 데에 훌륭한 재료가 될 수 있을 것이라고 기대했습니다.

      image.png


      무엇을 만들 것인가?

      이후 '로컬에서 무료로 사용할 수 있는 LLM이 있다면 어떤 문제를 해결하는데 써야 적절할까?' 라는 질문을 던져 보면서 어떤 도구를 만들지 좁혀 보았습니다.

      • 잠재적으로 나와 팀원들의 업무 생산성을 높여줄 수 있는 도구

      • 소위 "짜치는 일" 을 자동화해줄 수 있는 도구

      • AI 이용 패턴이 일일 쿼터를 벗어나지 않을 만한 도구

      그러다 'git 스테이징 환경에 포함된 파일들을 분석하고, 수정사항을 정리해 커밋 메시지를 생성해주는 도구를 개발해보자' 라는 아이디어가 떠올라 구현에 옮겨 보았습니다.

      💡 나중에 알게 된 사실이지만, VSCode Copilot에는 커밋 메시지를 자동으로 생성해주는 기능이 이미 존재합니다.

      하지만 gemini-cli 와 연계하면 쿼터 제한에 구애받지 않고 활용할 수 있고, VSCode 외의 에디터에서도 호환된다는 점이 차별점이 될 수 있을 것이라 생각했습니다.


      어떻게 만들 것인가?

      image.png

      아마 gemini-cli를 사용한다는 대목을 읽으면서 궁금해하셨을 수 있는 부분이지만,

      gemini-cli는 기본적으로 API 형식이 아닌 대화형 인터페이스를 통해 프롬프트를 전달하면 응답이 생성되는 도구입니다.

      하지만 --prompt 플래그와 함께 gemini --prompt [프롬프트]와 같이 사용하면 대화형 인터페이스 없이 백그라운드에서도 요청을 보낼 수 있고,

      이러한 특징과 쉘 스크립트를 적절히 활용해 [프롬프트 : "파일들의 변경사항을 LLM이 요약한 내용"] -> [커밋 메시지 : "LLM이 생성한 커밋 메시지"] 의 구조로 매핑할 수 있었습니다.

      image.png

      또한 이 도구는 어떤 팀원이든 사용할 수 있도록 npm package로 패키징해 npm install -g gemini-commit-assistant 를 실행하면 누구든지 설치할 수 있고,

      복잡한 설정이나 새로운 기술을 배울 필요 없이 aic, aic --all 또는 git aic 등의 커맨드를 통해 AI 기반 커밋 메시지를 생성할 수 있도록 설계했습니다.

      screenshot.gif

      💡 전체 코드는 깃허브 저장소 에서도 확인해보실 수 있습니다.


      마치며

      데보션 커뮤니티 에도 짧게 게재한 글이지만 gemini-cli는 기본적으로 gemini-2.5-pro 모델을 사용하는데,

      관련 내용을 명확히 인지하지 못해 몇 건의 테스트만으로도 429 (Too many requests) 에러를 만나게 되어 당황했던 기억이 있습니다.

      다행히 비슷한 이슈들이 벌써 많이 올라와 있어 gemini-commit-assistant 는 내부적으로 flash 모델만을 사용하도록 수정했더니,

      429 에러 없이 잘 동작해 뿌듯했던 기억이 납니다.

      image.png

      image.png

      image.png

      또 flash는 경량 모델일 것이라 생각해 파일 변경사항들을 제대로 감지하지 못할까도 걱정했는데, 우려와 달리 일반적인 사용 범위 내에서 기대했던 수준의 동작을 보여준 점도 만족스러웠습니다.

      LLM이 가진 가능성에는 큰 기대를 걸고 있지만 한편으로는 클라우드나 기타 SaaS 등과는 달리 소요되는 비용을 구체적으로 산정하기 어렵다는 점이 AI 기반 토이 프로젝트를 섣불리 추진하기 어려웠던 이유였는데요,

      gemini-cli (flash) 처럼 비용 부담을 획기적으로 줄여줄 수 있는 도구가 더 등장해 재밌는 프로젝트들을 더 많이 만들어보고 싶습니다.

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      chamming2 님의 최신 블로그

      더보기
      동영상 기고하기