코드는 미래에게 보내는 메시지라는 말 | 공부하면서 든 생각
Webflow 블로그에서 코드를 커뮤니케이션으로 보는 글을 읽었다. AI가 코드를 생성하는 시대에 클린 커밋이 왜 더 중요해지는지 정리해봤다.
Webflow 블로그에서 “Code is a message to the future”라는 글을 읽었다. 제목만 봤을 때는 좀 거창한 말 같다는 생각이 들었는데, 읽어보니 코드를 어떻게 쓰느냐에 대한 이야기였다.
핵심 주장은 이거다 — 코드는 기계한테 내리는 명령이라기보다, 다음 개발자에게 남기는 메시지에 가깝다는 것. AI가 코드를 생성하기 시작한 지금 이 말이 조금 다른 각도로 와닿았다.
1️⃣ 이게 뭐냐?
글에서 강조하는 건 크게 세 가지였다.
첫 번째는 원자적 커밋(atomic commit). 커밋 하나가 독립적으로 이해 가능해야 한다는 개념이다. 이름 변경과 기능 변경을 같은 커밋에 섞으면, 나중에 이 변경이 왜 생겼는지 추적하기 어려워진다. Extract validator → Refactor: use validator in form → Fix: handle edge case 처럼 쪼개는 게 낫다고 한다. 커밋 하나하나가 그 자체로 이유를 담아야 한다는 것.
두 번째는 PR을 이야기처럼 구성하는 것. 커밋이 책의 챕터처럼 순서대로 읽힐 수 있게 쌓으라는 거다. 리뷰 중에 히스토리를 강제로 덮으면 안 되고, 새 커밋을 추가하는 방향이 맥락을 지킨다고 한다. 그렇게 해야 리뷰어가 변경의 흐름을 따라갈 수 있기 때문이다.
세 번째는 주석이 “무엇”이 아니라 “왜” 를 담아야 한다는 점이다. 코드가 무엇을 하는지는 코드 자체가 말해준다. 주석은 제약 사항이나 전제 조건을 남기는 자리다. // must run before subscription is set up 같은 한 줄이 나중에 디버깅 시간을 꽤 아껴준다는 이야기. 왜 이 순서여야 하는지가 코드만 봐서는 안 보이는 경우가 있다.
2️⃣ 내가 든 생각
디자이너 입장에서 읽으면서 흥미로웠던 건, 코드 가독성이 디자인 언어랑 비슷한 구조를 갖는다는 점이었다. 디자인은 사용자와 커뮤니케이션하고, 코드는 미래의 개발자와 커뮤니케이션한다. 수신자가 다를 뿐이라는 생각이 들었다.
그리고 AI가 코드를 짜는 시대에 이게 더 중요해졌다는 부분이 흥미로웠다. AI가 생성한 코드를 거대한 단일 커밋으로 올리면 추론 과정이 통째로 사라진다. 반면 클린 커밋 습관을 AI에도 적용하면, 에이전트가 왜 이 변경을 했는지가 조금 더 보인다고 한다.
👉🏻 그러니까 클린 커밋은 사람 간 협업 도구이기도 하지만, 이제는 사람과 AI 사이의 소통 방식이 되어가는 것 같다는 생각이 들었다.
💡 여기서 드는 질문? AI가 쓴 코드의 커밋 메시지를 내가 작성한다면, 그게 AI의 의도인가 나의 해석인가?
이 질문이 좀 계속 맴돌았다. 디자인에서 레이어 이름 하나, 컴포넌트 구조 하나가 팀원에게 얼마나 중요한지는 어느 정도 알고 있었는데, 코드에서도 비슷한 것이 필요하다는 걸 이 글을 통해 처음 좀 제대로 의식한 것 같았다.
개발을 막 배우다 보면 코드가 돌아가는 것 자체에 집중하게 된다. 커밋 메시지 같은 건 부가적인 것처럼 느껴지기 쉽다. 근데 이 글을 읽고 나서는, 커밋 메시지가 없으면 나중의 내가 지금 내 코드를 읽으면서 “이게 왜 있는 거지?”를 자문하게 될 것 같다는 생각이 들었다.
⭐️ 마지막으로, 코드 커뮤니케이션을 공부하고 나서
결국 핵심은 커밋 메시지를 잘 쓰는 기술이 아니라, 변경의 이유가 어딘가에 남아 있어야 한다는 쪽에 있는 것 같다. 코드가 메시지라는 말은 결국 그 이야기였다.