변경 내용으로 커밋 메시지 쓰기

바뀐 코드를 붙여 팀 규칙에 맞는 메시지를 받는다

프롬프트 · 변수 2개

방금 작업한 변경 사항을 커밋하려고 합니다. 이 메시지는 몇 달 뒤 이 줄이 왜 바뀌었는지 찾는 사람이 읽게 됩니다.

우리 팀의 커밋 규칙은 다음과 같습니다. {{메시지 규칙}} 이 규칙을 따른 메시지는 이런 모양입니다. fix: 장바구니 수량을 0으로 바꿔도 합계가 남던 문제 수정 refactor: 결제 검증 로직을 별도 함수로 분리

아래 변경 내용을 읽고 커밋 메시지를 3개 만들어 주세요. 세 개는 표현만 다른 것이 아니라, 이 변경을 설명하는 관점이 서로 달라야 합니다.

형식: 각 안마다 제목 한 줄과 본문 2~3줄. 본문에는 무엇을 바꿨는지가 아니라 왜 바꿨는지와 이 변경으로 달라지는 동작을 적어 주세요.

제목은 마침표 없이 끝내고, 붙여 넣은 변경 내용에서 읽히지 않는 이유나 이슈 번호는 지어내지 마세요. 이유를 알 수 없으면 그 자리에 "[이유 확인 필요]"라고 적어 주세요.

변경 내용: """ {{변경 내용}} """

복사한 뒤 여기에 붙여 넣으세요 · ChatGPT·Claude는 프롬프트를 실은 채 열립니다 ChatGPT에서 열기 ↗Claude에서 열기 ↗Gemini에서 열기 ↗뤼튼에서 열기 ↗ 빌더에서 고치기 수업용 카드 이미지 받기

이 프롬프트에는 개인정보가 들어갈 수 있는 변수가 있습니다. 실제 이름·번호·회사명은 가명으로 바꿔 넣으세요.

결과 예시

차단 회원 관점·최소 포인트 기준 관점·기존 고객 영향 관점으로 3안이 나왔고, diff 에서 읽히지 않는 값은 [이유 확인 필요]로 남았다.

fix: 차단 회원에게 포인트 할인이 적용되던 문제 수정 포인트 잔액만 확인하고 회원 상태는 보지 않아, 차단된 회원도 포인트가 남아 있으면 할인을 받았습니다. 이제 차단 회원은 포인트와 무관하게 할인에서 제외됩니다. MIN_POINT 값을 정한 근거는 [이유 확인 필요]

한 안을 고른 뒤 "본문을 두 줄로 줄여 줘"라고 이어 요청하면 바로 쓸 수 있다.

Claude에서 실제로 실행해 확인 · 2026-09

왜 이렇게 쓰는가

맥락
방금 작업한 변경 사항을 커밋하려고 합니다. 이 메시지는 몇 달 뒤 이 줄이 왜 바뀌었는지 찾는 사람이 읽게 됩니다.
예시
우리 팀의 커밋 규칙은 다음과 같습니다. {{메시지 규칙}} 이 규칙을 따른 메시지는 이런 모양입니다. fix: 장바구니 수량을 0으로 바꿔도 합계가 남던 문제 수정 refactor: 결제 검증 로직을 별도 함수로 분리
과제
아래 변경 내용을 읽고 커밋 메시지를 3개 만들어 주세요. 세 개는 표현만 다른 것이 아니라, 이 변경을 설명하는 관점이 서로 달라야 합니다.
형식
형식: 각 안마다 제목 한 줄과 본문 2~3줄. 본문에는 무엇을 바꿨는지가 아니라 왜 바꿨는지와 이 변경으로 달라지는 동작을 적어 주세요.
제약
제목은 마침표 없이 끝내고, 붙여 넣은 변경 내용에서 읽히지 않는 이유나 이슈 번호는 지어내지 마세요. 이유를 알 수 없으면 그 자리에 "[이유 확인 필요]"라고 적어 주세요.
입력 자료
변경 내용: """ {{변경 내용}} """

커밋 메시지 프롬프트에서 규칙을 말로만 설명하면, 매번 조금씩 다른 형식이 돌아옵니다. 어제는 "fix: ~"였는데 오늘은 "[Fix] ~"가 나오고, 어떤 날은 제목만, 어떤 날은 목록 다섯 줄이 붙습니다. 저장소 기록은 형식이 흔들리는 순간 훑어보기 어려워집니다.

그래서 두 번째 문단에 규칙 설명과 함께 실제 메시지 예시 두 줄을 넣습니다. 사람도 그렇듯 AI도 "50자 이내, 명령형"이라는 설명보다 완성된 문장 하나를 훨씬 정확히 따라 합니다. 예시가 두 개인 이유는 하나만 주면 그 문장의 주제까지 흉내 내기 때문입니다.

과제에서 3개를 요구하되 "관점이 달라야 한다"고 못 박은 것은, 그냥 3개를 달라고 하면 어미만 바꾼 세 줄이 오기 때문입니다. 형식의 "왜 바꿨는지"는 본문의 존재 이유입니다. 무엇을 바꿨는지는 diff 를 보면 되고, 기록에 남겨야 할 것은 그 판단입니다.

첫 문단의 "몇 달 뒤 이 줄이 왜 바뀌었는지 찾는 사람이 읽는다"는 한 줄도 그냥 두지 마세요. 읽을 사람을 정하면 문장의 길이와 어휘가 함께 정해집니다. 이 한 줄이 없으면 오늘의 저에게만 통하는 축약어와 작업 번호가 제목에 들어갑니다.

제약의 "이슈 번호를 지어내지 마세요"는 실제로 자주 겪는 사고입니다. 커밋 메시지 자동 생성에 맡기면 있지도 않은 번호가 그럴듯하게 붙습니다. 변경 내용을 """ 로 감싸는 것은 diff 안의 주석이나 문자열이 지시로 읽히는 것을 막습니다.

용어가 낯설면 아하AI에서: few-shot, output-format

나쁜 예와 비교

흔한 나쁜 예

커밋 메시지 써줘

(diff 붙여넣기)

"Update cart.js" 같은 한 줄이 나오거나, 반대로 바뀐 줄을 그대로 옮겨 적은 목록이 나옵니다. 팀 규칙을 모르니 접두어도 언어도 매번 달라지고, 왜 바꿨는지는 어디에도 남지 않아 몇 달 뒤 이 커밋을 열어 본 사람이 다시 코드를 읽어야 합니다.

변형

커밋 하나에 여러 작업이 섞였을 때

커밋 하나에 여러 작업이 섞였을 때

아래 변경 내용에는 서로 다른 작업이 섞여 있는지 먼저 판단해 주세요. 섞여 있다면 어떻게 나눠 커밋하면 좋을지 "커밋 순서 · 포함할 변경 · 제목"으로 정리해 주고, 나눌 필요가 없으면 그냥 하나로 두라고 알려 주세요. 규칙은 {{메시지 규칙}}을 따라 주세요.

""" {{변경 내용}} """

작업을 몰아서 한 뒤 커밋을 나누고 싶을 때 씁니다. 나누는 판단까지 맡기면 리뷰하기 쉬운 단위가 나옵니다.

영어 커밋 메시지가 필요할 때

영어 커밋 메시지가 필요할 때

아래 변경 내용으로 영어 커밋 메시지를 2개 만들어 주세요. 제목은 명령형 현재형으로 50자 이내, 본문은 한 줄에 72자 이내로 줄바꿈해 주세요. 규칙은 {{메시지 규칙}}을 따르되 문장은 영어로 써 주세요. 화려한 표현 대신 흔히 쓰는 단어를 골라 주세요.

""" {{변경 내용}} """

오픈소스나 영어를 쓰는 저장소에 올릴 때 씁니다. 줄바꿈 폭까지 지정해야 터미널에서 깨지지 않습니다.

모델별 주의

diff 가 길면 파일별로 나눠 넣고 마지막에 "위 내용을 하나의 커밋 메시지로 합쳐 줘"라고 요청하세요

diff 를 그대로 붙이면 기호가 많아 변경의 방향을 반대로 읽는 일이 있습니다. 맨 앞에 "이번 변경의 요지는 ~"라고 한 줄 적어 주면 정확도가 올라갑니다.

관련 프롬프트

마지막 수정 2026-09-02 · 잘못된 점이 있나요? 알려 주세요