디버깅은 재현, 추적, 수정, 회귀 방지 순서로 닫는다
오류를 오래 보는 것보다 모르는 범위를 작게 줄이고 다시 생기지 않게 고정하는 과정이다.
| 단계 | 해야 할 일 | 산출물 |
|---|---|---|
| Repro | 입력, 맵, 상태를 최소 조건으로 줄인다 | 반복 가능한 재현 절차 |
| Trace | 로그와 디버거로 값이 어긋나는 지점을 찾는다 | 의심 함수와 변수 목록 |
| Fix | 원인을 고친 뒤 같은 조건에서 다시 실행한다 | 수정 전후 비교 결과 |
| Test | 체크리스트나 자동화 테스트로 회귀를 막는다 | 다음 빌드에서도 볼 검증 항목 |
디버깅의 끝은 코드 수정이 아니라 같은 문제가 돌아오지 않게 잠그는 것이다.