오늘 방문 /누적 방문 /완성한 레슨 소개 ↗
SECONDTEAM
Git·GitHub
🔀 레슨

좋은 커밋 메시지 — 미래의 나에게

3주 뒤의 내가 읽고 이해할 한 줄. 잘 쓰는 요령은 의외로 간단해요.

① 오늘의 미션
3주 뒤의 내가 장부를 펼친다
지난 레슨에서 PR로 리뷰를 받고 동료의 코드를 합쳤어요. 오늘은 그 한 단계 앞 — 합치기 전에 남기는 커밋 메시지 한 줄을 잘 쓰는 법이에요.

3주 뒤, 가게 가격이 왜 바뀌었는지 다시 찾아야 할 일이 생겨요. 그때 장부에 "수정"이라고만 적혀 있으면? 미래의 나는 한숨을 쉽니다. 커밋 메시지는 미래의 나에게 보내는 쪽지예요.

설명을 따라 진행하면, 여기서 직접 쳐보게 돼요 👇
~/my-shop
$ _
📚 「좋은 커밋 메시지 — 미래의 나에게」 레슨 내용 전체 텍스트로 훑어보기
3주 뒤의 내가 장부를 펼친다
지난 레슨에서 PR로 리뷰를 받고 동료의 코드를 합쳤어요. 오늘은 그 한 단계 앞 — 합치기 전에 남기는 커밋 메시지 한 줄을 잘 쓰는 법이에요.

3주 뒤, 가게 가격이 왜 바뀌었는지 다시 찾아야 할 일이 생겨요. 그때 장부에 "수정"이라고만 적혀 있으면? 미래의 나는 한숨을 쉽니다. 커밋 메시지는 미래의 나에게 보내는 쪽지예요.

김치전 가격을 손본 뒤 커밋을 남깁니다. 3주 뒤의 내가 봤을 때 가장 도움이 안 되는 메시지는 어느 쪽일까요?
맞아요. '수정'은 아무것도 알려주지 않아요. 무엇을 고쳤는지도, 왜 고쳤는지도 빠져 있죠. 반면 '김치전 가격 5000→5500 (원가 상승)'은 3주 뒤의 내가 한 줄만 보고 상황을 떠올릴 수 있어요.

좋은 커밋 메시지에는 두 가지가 들어가요.

두 조각
· 무엇을 바꿨나 — "김치전 가격을 5000원에서 5500원으로"
· 바꿨나 — "원가가 올라서"

'무엇을'은 코드를 보면 어느 정도 알 수 있어요. 하지만 '왜'는 내 머릿속에만 있어요. 그래서 메시지에 '왜'를 남기는 게 특히 귀해요. 3주 뒤의 나는 코드는 읽을 수 있어도, 그때의 이유까지는 기억 못 하거든요.

똑같은 작업을 두 가지 메시지로 남겼어요. 6개월 뒤 장부를 훑을 때 차이를 느껴보세요.
🙅 나쁜 메시지: "수정"
"업데이트"
"asdf"
"고침2 진짜최종"

무엇을·왜 둘 다 없음. 미래의 내가 커밋을 하나하나 열어봐야 해요.
🙆 좋은 메시지: "김치전 가격 5000→5500 (원가 상승)"
"품절 표시 기능 추가 — 재고 0이면 회색"
"장바구니 합계 오류 수정 (배송비 누락)"

한 줄만 봐도 무엇을·왜가 보임.

먼저 흔한 실수를 손으로 겪어봐요. 메뉴판 파일을 고쳤다 치고, 성의 없는 메시지로 커밋해볼게요.

git add menu.html — 방금 고친 파일을 스테이지에 올려요
git commit -m "수정" — 성의 없는 메시지로 커밋 — 3주 뒤에 후회할 한 줄
커밋은 됐어요. 하지만 "수정" 한 단어로는 나중에 김치전 가격이었는지 영업시간이었는지 알 길이 없어요. 더 나은 한 줄로 다시 가봅시다.

이번엔 영업시간을 바꿨다고 해볼게요. 무엇을 + 왜가 담긴 메시지로 커밋해봐요.

git add menu.html — 바뀐 파일을 올려요
git commit -m "영업시간 21시→20시로 단축 (재료 소진 빨라짐)" — 무엇을·왜가 한 줄에 담긴 좋은 메시지
이 한 줄이면 6개월 뒤의 나도, 같이 일하는 동료도 왜 시간을 줄였는지 바로 알아요. 좋은 메시지는 코드보다 오래 살아남아요.

커밋 메시지는 git commit 뒤에 어떤 옵션으로 붙일까요? 한 줄짜리 메시지를 바로 다는 그 옵션이에요.

정답! -m이에요. m은 message의 머리글자. 뒤에 따옴표로 감싼 한 줄이 그대로 장부에 남는 메시지가 돼요.

이번엔 명령이 아니라 메시지 자체를 연습해요. 반찬 사진을 새로 올렸어요. 아래 '수정' 자리에 들어갈 무엇을+왜가 담긴 한 줄을 적어보세요. (예: 어떤 반찬 사진을, 왜 바꿨는지)

좋아요! 무엇을(어떤 사진)과 왜(흐려서·화질 때문에)가 담기면 충분해요. 완벽한 문장보다 3주 뒤의 내가 알아볼 한 줄이 목표예요.

지금까지 남긴 커밋들을 git log --oneline으로 펼쳐볼 거예요. 화면에 무엇이 줄줄이 보일까요?

맞아요. git log --oneline커밋마다 짧은 코드 + 내가 적은 메시지를 최신순으로 한 줄씩 보여줘요. 이게 바로 미래의 내가 펼칠 장부예요. 그래서 메시지 한 줄이 그렇게 중요한 거죠.

실제로 장부를 펼쳐봐요. 방금 남긴 좋은 커밋과 나쁜 커밋이 나란히 보일 거예요.

git log --oneline — 지금까지의 커밋을 한 줄씩 펼쳐봐요
직접 비교가 되죠? "수정"은 자기소개를 안 한 커밋이에요. 미래의 나에게 친절한 건 위쪽 한 줄이에요.
다음 레슨에서 배우겠지만, 커밋도 Claude에게 시킬 수 있어요. 그렇다면 메시지는 어떻게 다뤄야 할까요?
맞아요. AI는 코드 변화를 보고 '무엇을'은 잘 적지만, 내 머릿속에만 있는 '왜'는 모를 때가 있어요. AI에게 시키되, 장부에 남기 전에 '이 메시지면 3주 뒤의 내가 알아볼까?' 한 번 검수하는 습관 — 그게 프로예요.
한 줄로
커밋 메시지는 미래의 나에게 보내는 쪽지예요. 무엇을 + 왜를 담으면 "김치전 가격 5000→5500 (원가 상승)"처럼 한 줄로 상황이 살아나요. AI에게 시켜도 '왜'는 내가 검수하고요.
다음 레슨에서
그럼 이제 커밋도 Claude에게 시켜 봅시다. 'Claude와 Git — 커밋도 시키면 된다'에서, 말 한마디로 add·commit을 맡기되 메시지는 내가 챙기는 법을 익혀요. 장부는 계속 쌓입니다. 🌱