학부 RTL 검증 프로젝트, 회귀 실패 디버깅 경험
학부 RTL 검증 프로젝트에서 CI 회귀 테스트가 갑자기 실패했을 때, 어떤 변경이 문제를 만들었는지 찾는 게 어려웠습니다. 처음엔 모든 변경 내역을 하나씩 되돌리려 했는데, 팀원이 이등분 탐색(bisect) 방식을 알려줬습니다. git bisect로 커밋 범위를 절반씩 좁히니 수십 개 커밋 중 원인 커밋을 6번 만에 찾을 수 있었습니다. 실패가 설계 변경인지 환경 의존성인지를 구분하는 게 중요하다는 것도 배웠습니다. 랜덤 시드에 따라 결과가 달라지는 실패는 재현 조건을 고정하지 않으면 원인을 잡기 어렵다는 것도 알았습니다. 이후 저는 회귀 실패가 생기면 먼저 재현 조건을 고정하고 탐색 범위를 줄이는 방향으로 접근하는 습관이 생겼습니다. 빨리 고치려는 마음보다 원인을 명확히 하는 것이 더 빠른 길이라는 걸 그때 배웠습니다.