대니
danny's blog@dannywon_dev
발행 88 · 대기 135

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

클로드 코드

git add . 를 막는 장치를 만들려다 접었다

규칙에 빨갛게 금지라고 적어둔 자리엔 이미 확인 창이 있었고, 정작 40%가 어기던 건 따로 있었다

규칙 문서에 «금지»라고 적어놨는데 그게 지켜지는지 검사하는 장치는 없다. 이런 걸 발견하면 장치부터 만들고 싶어진다.

내 작업 규칙 문서를 훑다가 이런 줄에서 걸렸다.

🔴 커밋 전 스테이징은 항상 파일을 지정한다. git add . / git add -A 금지.

빨간 동그라미까지 붙여서 두 군데에 적어뒀다. 그런데 그걸 검사하는 장치가 없었다. 그냥 적어놓기만 한 것이다. 마침 «규칙을 강제하는 장치가 하나도 없다»는 지적을 받은 참이라 근거도 충분해 보였다. 규칙에 두 번이나 적혀 있고, git add . 을 정당하게 쓸 일도 거의 없다.

만들기 전에 지금 설정을 열어봤다

허용 목록이 21개 있었다.

cat  find  touch  mkdir  head  tail  wc  grep  sort  date  cp
Read  Edit  Write  WebSearch  WebFetch  …

git 이 없었다.

허용 목록에 없다는 건, 그 명령을 칠 때마다 «이거 실행할까요?» 확인 창이 뜬다는 뜻이다. 명령어 전문이 화면에 그대로 보이는 창이다. git add . 인지 git add 파일이름 인지 눈으로 구분된다.

만들려던 장치가 이미 있었다.

판단이 갈린 지점

여기서 두 갈래였다.

«그래도 만들자» — 확인 창은 사람이 대충 넘길 수 있다. 열 번 넘게 승인하다 보면 내용을 안 읽고 누르게 된다. 이중 방어는 나쁠 게 없다.

«만들지 말자» — 규칙 문서 안에 이미 이런 조항이 있었다.

없는 문제에 안전장치를 만들지 않는다.

검사 항목 세 가지가 붙어 있었다. ① 이미 다른 관문이 막고 있지 않나 ② 실제로 사고가 난 적이 있나 ③ 마찰이 이득보다 크지 않나.

①은 방금 확인했다. 관문이 있다. ③은 문제없다. 남은 건 ②였다.

기록을 뒤졌다. git add . 때문에 사고가 난 적이 한 번도 없었다. 그날 아침에 사고가 하나 나긴 했는데 원인이 달랐다 — 파일 이름을 바꿔놓고 커밋을 안 한 채 방치했더니, 옆에서 돌던 다른 작업이 그걸 같이 가져가 버린 것이었다. git add . 로는 안 막힌다.

그리고 3주 전 기록에 이런 게 있었다.

rm 차단 장치 — 이미 확인 창이 뜨고 사고 이력도 없었다. 접었다.

똑같은 자리였다. 3주 전에 접은 걸 이유도 모른 채 다시 만들려던 참이었다.

정말 안 지켜지던 건 따로 있었다

만들지 않았다. 대신 «그럼 진짜로 검사가 필요한 게 뭔가»를 다시 찾았다. 기준을 세 개 세웠다. ① 어기면 조용히 망가지는가 ② 기계가 정확히 잴 수 있는가 ③ 규칙이 있는데도 실제로 안 지켜지는가.

내 작업 폴더에는 프로젝트마다 «지금 하던 일» 파일이 하나씩 있다. 아침에 그 파일 첫 문단만 자동으로 읽히고, 180자에서 잘린다. 넘으면 문장이 중간에 끊긴다.

세어봤다.

프로젝트 15개 중 6개가 180자를 넘고 있었다 (40%)
그중 하나는 590자 — 세 배가 넘는다

규칙은 진작에 적혀 있었다. 지켜지지 않았을 뿐이다. 이건 세 기준을 다 채운다. 어기면 조용히 잘리고(에러도 안 난다), 글자 수는 기계가 정확히 세고, 40%가 어기고 있으니 적어두는 걸로는 안 걸린다는 게 증명됐다.

그래서 저장할 때마다 첫 문단을 재서 알려주는 장치를 붙였다. 막지는 않는다. 넘었다고 말만 해준다.

두 문장은 다른 문제였다

«규칙이 안 지켜진다»와 «규칙에 강제 장치가 없다»는 다르다. 앞엣것은 실제로 어기고 있는 걸 세어봐야 알 수 있고, 뒤엣것은 문서만 봐도 말할 수 있다. 뒤엣것만 보고 장치를 만들면 이미 막혀 있는 문을 한 번 더 잠그게 된다.

세어보니 정말 안 지켜지는 건 «금지»라고 빨갛게 적어둔 자리가 아니라, 아무도 위반이라고 생각조차 안 하던 자리에 있었다.

← 목록으로