진짜 원인 찾기
드디어 시스템이 비정상적으로 작동하는 부분을 찾을 차례다. 단, 비정상적인 부분을 발견했다고 해서 바로 문제의 원인을 찾았다고 추정해서는 안 된다. 로그에 “에러: 벌레가 과자를 먹고 있습니다.”라는 메시지가 남아 있다고 해보자. 해당 로그 메시지를 삭제하는 방법으로 이를 ‘고칠’ 수도 있다. 에러 메시지만 없으면 이제 모든 게 정상적으로 동작할까? 그렇지 않다. 메시지를 지워도 버그는 남아 있다.
이렇게 어리석게 행동할 리가 있나 싶은가? 하지만 이보다는 조금 나을지 모르지만, 실제로 많은 사람이 버그를 제대로 제거하지 못하는 다양한 방법을 쓴다. 16장 ‘재발을 방지하라’에서 언급한 것처럼 문제의 근본 원인에 이르지 못한다. 미봉책으로 버그를 가리는 데 급급하면 버그는 코드베이스에 영원히 남아 모두에게 혼란을 야기한다.
“버그를 고칠 해결책을 알아냈으니 진짜 원인을 찾았다.”라는 말로도 부족하다. 그 정도면 꽤 진실에 가까운 편이지만, 다음 정도의 성명은 낼 수 있어야 한다.
“자신이 찾은 해결책이 다시는 문제를 재발시키지 않을 거라고 확신할 수 있어야 진짜 원인을 찾은 것이다.”