AI랑 4개월 일하면서 네 번 같은 자리에서 막혔다
AI랑 4개월 일하면서 네 번 같은 자리에서 막혔다 새벽 한 시쯤이었다. 아들 방의 책상 위에는 반쯤 조립된 아크릴 로봇 샤시가 올라가 있었다. 모터 두 개를 PWM으로 제어하는 코드를 Claude Code에게 받아서 올렸는데, 한쪽 바퀴가 한 방향으로만 돌고 있었다. 다른 쪽은 멈춰 있다가 가끔 떨기만 했다. 아들은 옆에서 "이거 왜 이래?" 하고 모니터를 들여다보고 있었고, 나는 시리얼 모니터에 찍히는 값을 멍하니 보고 있었다. 코드는 깔끔했다. 그건 의심하지 않았다. L298N 모터 드라이버를 쓰는 표준적인 패턴이고, 라이브러리 호출도 정상이고, PWM 값도 범위 안에 들어가 있었다. 그런데 작동을 안 했다. 핀맵을 다시 봤다. IN1은 8번, IN2는 9번, ENA는 10번. IN3는 11번, IN4는 12번, ENB는 13번. 내가 Claude에게 부르는 대로 적어준 핀이었다. 두 시간을 봤다. 두 시간 동안 코드를 뜯고, 배선을 뜯고, 멀티미터를 대보고, 다시 코드를 짜고. 그러다 어느 순간 깨달았다. ENA에 지정한 10번 핀이 Timer1을 건드리고 있었고, 내 프로젝트는 같은 보드에서 서보 라이브러리도 쓰고 있었다. 둘은 같은 타이머를 두고 다투고 있었던 거다. Claude가 짠 코드는 코드만 보면 멀쩡했다. 다만 내 프로젝트에 서보가 있다는 걸 모르고 짠 것뿐이었다. 그 순간이 묘했다. 화는 안 났는데, 머리가 조금 차가워졌다. 이게 AI가 못한 건가? 아니었다. ENA가 Timer1에 묶인다는 건 데이터시트에 있는 얘기고, Claude는 그걸 안다. AFMotor 라이브러리가 Timer1과 Timer2를 점유해서 충돌 위험이 있다는 것도 안다. 그런데 그날 새벽의 그 코드는 내 보드의 사정을 모른 채 쓰였다. 서보가 있다는 걸, ENA를 옮길 수 있다는 걸, 13번이 PWM이 안 되는 핀이라는 걸. 다 알 수 있었지만, 그 세션에는 그 정보가 없었다. 그 뒤로 같은 자리에 세 번 더 멈췄다는 걸, 한참 지나...