디프를 비판적으로 읽기
디프는 정확히 무엇이 바뀌었는지의 목록이다: 빨간 줄은 제거됨, 초록 줄은 추가됨. 디프 읽기는 바이브 코딩에서 가장 레버리지가 큰 습관인데, 바로 거기서 AI가 당신이 요청하지 않은 무언가를 하는 것을 잡아내기 때문이다.
모든 줄을 이해할 필요는 없다. 다음의 위험 신호를 훑어라:
- 바뀔 거라 예상하지 않은 파일. 왜 설정 파일이 건드려졌나?
- 삭제된 코드. 검증 점검, 에러 핸들러, 혹은 "통과시키려고" 테스트를 제거했나?
- 비밀이나 하드코딩된 값. 코드에 있으면 안 되는 API 키, 비밀번호, URL.
- 비활성화된 점검. 건너뛴 테스트, 주석 처리된 가드,
// @ts-ignore, 혹은 느슨해진 권한. - 범위 확장(scope creep). 요청한 것과 멀리 떨어진 변경들.
뭔가 이상해 보이면 물어라: "X를 왜 바꿨는지 설명하라 — 난 그걸 요청하지 않았다." 특히 삭제는 AI가 정당화하게 만들어라. "에러를 일으키고 있었다"는 그 에러를 이해할 이유이지 점검을 삭제할 이유가 아니다.
습관을 들이는 실용적인 방법: 변경을 받아들이기 전에 디프를 읽어라, 절대 후에 말고. 코드가 한번 머지되고 앱이 동작하는 듯 보이면, 당신은 절대 돌아가서 그것을 읽지 않을 것이다 — 강제하는 마찰이 없으니까. 리뷰의 순간이 결정의 순간이어야 한다. 여기서 도구가 도움이 된다: git diff --stat은 파일당 한 줄 요약을 줘서 예상치 못한 파일이 즉시 튀어나오게 하고, 풀 리퀘스트 페이지에서 리뷰하면 에디터 여기저기 흩어진 대신 변경 전체를 스크롤 가능한 한 화면에 드러낸다.