초보자는 디버깅을 잘하는 사람을 보면 왠지 직감이 뛰어난 것처럼 느낀다. 하지만 실제로는 많은 경우, 순서를 잘 지키기 때문에 빨리 해결하는 것이다.
무작정 코드를 여기저기 바꾸는 대신, 문제를 재현하고 범위를 좁히고 가설을 하나씩 검증하는 흐름이 필요하다.
디버깅의 기본 순서
먼저 문제를 다시 재현한다. 그다음 어디까지는 정상인지 경계를 찾는다. 그리고 가능한 원인을 하나씩 세우고, 가장 작은 수정으로 확인한다.
이 순서를 지키면 감정적으로 급해지는 시간을 줄일 수 있다. 특히 초보자에게는 모든 것이 이상해 보이는 상태를 피하는 데 큰 도움이 된다.
막히면 이 순서로 진행하기
- 문제가 다시 재현되는지 확인한다.
- 정상 동작하는 지점과 깨지는 지점을 나눈다.
- 원인 가설을 한 번에 하나만 세운다.
- 수정도 한 번에 하나만 한다.
- 해결 뒤에는 원인을 한 문장으로 기록한다.
좋은 디버깅은 많이 아는 기술이 아니라, 문제를 좁혀 가는 기술에 더 가깝다.
이 글의 포인트
- 디버깅은 재현, 경계 찾기, 가설 검증의 순서로 간다.
- 수정은 한 번에 하나씩 해야 원인을 잃지 않는다.
- 해결 후 한 줄 기록을 남기면 다음 디버깅이 빨라진다.