AI를 사용하여 커밋 메시지 생성하기
요약
OpenAI API를 활용하여 코드 변경 사항을 분석하고 Conventional Commit 스타일의 메시지를 자동으로 생성하는 Python 기반 도구 개발 실습 가이드입니다. 가상 환경 설정부터 OpenAI SDK 활용까지 단계별 구현 과정을 다룹니다.
핵심 포인트
- OpenAI API를 이용한 커밋 메시지 자동 생성 구현
- Conventional Commit 표준 규격 준수 방법 학습
- Python 가상 환경 및 OpenAI SDK 사용법 숙지
- 엔지니어링 워크플로우 생산성 향상 도구 구축
Lab 정보
xfusion AI 개발 팀은 엔지니어링 워크플로우 전반의 생산성과 커뮤니케이션을 향상시키는 지능형 개발자 지원 도구를 구축하고 있습니다. 이러한 미션을 이어받아, 귀하는 코드 변경 설명을 분석하여 깔끔한 Conventional Commit 스타일의 메시지를 생성하는 Python 기반 AI 커밋 생성기(AI Commit Generator)를 개발하는 과제를 맡았습니다. 이를 통해 버전 관리 이력의 일관성과 명확성을 보장해야 합니다.
귀하의 과제는 코드 변경 요약을 입력받아 Conventional Commit 표준(: )을 준 따르는 공식 Git 커밋 메시지를 생성하는 함수를 구축하는 것입니다. /root/openaiproject/commit_generator.py 파일이 준비되어 있습니다.
root/.bash_profile에 제공된 api_key 및 base_url 자격 증명을 사용하여 OpenAI 클라이언트를 초기화하세요.
changes: str 을 인자로 받아 str 을 반환하는 generate_commit 함수를 정의하세요.
...
참고 사항:
최종 출력은 반드시 단일 행의 텍스트여야 합니다.
출력에는 유형(type)과 주제(subject)를 구분하는 콜론(:)이 정확히 한 번 포함되어야 합니다.
...
python3 -m venv venv && source venv/bin/activate && pip install openai
스크립트는 추가적인 설명이나 줄 없이 오직 포맷팅된 커밋 메시지만을 엄격하게 출력해야 합니다.
최대 10번의 요청이 허용됩니다. 그 이후에는 속도 제한(rate limiter) 오류가 발생할 수 있습니다. 따라서 요청을 신중하게 사용하십시오.
Lab 솔루션
Part 1: Lab 단계별 가이드라인
Step 1 — 프로젝트 디렉토리로 이동
cd /root/openaiproject
Step 2 — 가상 환경(Virtual Environment) 생성 및 활성화
실행:
python3 -m venv venv
source venv/bin/activate
Step 3 — OpenAI SDK 설치
pip install openai
Step 4 — Python 파일 열기
파일 편집:
vi commit_generator.py
다음 내용으로 모두 교체:
import os
from openai import OpenAI
...
저장 및 종료:
Step 5 — 환경 변수 로드
실행:
source /root/.bash_profile
Step 6 — 스크립트 실행
python commit_generator.py
Step 7 — 출력 확인
예상 포맷 예시:
feat: add user registration endpoint
요구사항:
한 줄로만 작성
정확히 하나의 콜론(:) 사용
Conventional Commit 형식 준수
Part 2: 초보자를 위한 쉬운 설명
이 실습이 하는 일
여러분은 AI 기반의 작은 Git 커밋 메시지 생성기를 만들고 있습니다.
커밋 메시지를 수동으로 작성하는 대신, AI가 다음 작업을 수행합니다:
코드 변경 사항의 요약본을 읽습니다
주요 목적을 이해합니다
깔끔한 Conventional Commit 메시지를 생성합니다
Conventional Commits가 중요한 이유
Conventional Commits는 Git 히스토리를 체계적으로 유지해 줍니다.
예시:
feat: add login API
fix: resolve crash on startup
docs: update installation guide
이는 팀이 다음과 같은 작업을 수행하는 데 도움이 됩니다:
프로젝트 히스토리를 쉽게 읽기
변경 로그 (changelog) 자동화
변경 사항을 빠르게 이해하기
코드의 동작 원리
-
라이브러리 임포트 (Importing Libraries)
from openai import OpenAI
이 코드는 Python이 AI 모델과 통신할 수 있도록 OpenAI SDK를 임포트합니다. -
클라이언트 생성 (Creating the Client)
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY"),
base_url=os.environ.get("OPENAI_BASE_URL")
)
이 코드는 .bash_profile에 저장된 인증 정보를 사용하여 스크립트를 AI API에 연결합니다.
- 함수 정의 (Defining the Function)
def generate_commit(changes: str) -> str:
이 함수는:
변경 사항 요약본을 입력받습니다
이를 AI에게 전달합니다
커밋 메시지를 반환합니다
- 프롬프트 구성 (Building the Prompt)
prompt = f""" ... """
프롬프트는 AI에게 다음과 같이 지시합니다:
feat, fix, 또는 docs만 사용할 것
정확한 형식을 따를 것
제목(subject)을 짧게 유지할 것
커밋 메시지만 출력할 것
좋은 프롬프트는 신뢰할 수 있는 결과물을 만들어냅니다.
- API 요청 전송 (Sending the API Request)
response = client.chat.completions.create(
이 코드는 프롬프트를 AI 모델로 전송합니다.
주요 설정:
temperature=0.0
→ 출력을 예측 가능하고 엄격하게 만듭니다
max_tokens=30
→ 응답이 길어지는 것을 방지합니다
-
응답 추출 (Extracting the Response)
return response.choices[0].message.content.strip()
이 코드는 생성된 커밋 메시지 텍스트만 가져옵니다. -
스크립트 실행 (Running the Script)
print(commit_message)
이 코드는 최종 커밋 메시지를 터미널에 출력합니다.
예시:
feat: add user registration endpoint
리소스 및 다음 단계 (Resources & Next Steps)
📦 전체 코드 저장소 (Full Code Repository): KodeKloud Learning Labs
💬 토론 참여 (Join Discussion): DEV Community - 여러분의 생각과 질문을 공유해 주세요
💼 연결하기 (Let's Connect): LinkedIn - 여러분과 소통하고 싶습니다
크레딧 (Credits)
• 모든 실습은 다음에서 제공되었습니다: KodeKloud
• 이러한 가치 있는 리소스를 제공해 주신 것에 대해 진심으로 감사드립니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기