Debug It! 실용주의 디버깅 (폴 부처, 2010) 독후감

1 minute read

정석 맞다. 이런 책이 늦게 나온 게 아쉽다. 읽으니깐 신입 프로그래머 시절에 하던 디버깅 방법이 생각났다. 제대로 재현도 하지 않고 코드를 읽다가 의심되는 곳을 발견하면 수정. 실행해서 버그가 발생하지 않으면 ’고쳤구나!’. 제대로 넘어갈 리가 있나. 당장 다른 곳에서 문제가 안 발생하면 이후 버그는 삐딱해질 대로 삐딱해져서 나를 찾아온다.

난 어깨너머로 제대로 디버깅하는 방법을 배웠다. 그때는 디버깅을 체계적으로 가르쳐주는 책도 없었다. 선임 프로그래머가 디버깅하는 걸 지켜봤는데, 내가 한 방법이랑은 확연히 다르더라. 게임 안에서 재현하고 의심되는 코드에 특정 값을 하드 코딩해서 확실하게 발생하는지 확인한 후 그 원인을 수정, 그리고 검증. 난 이렇게 어깨너머로 배웠다. 이 책을 그때 읽었더라면 좀 더 빨리 제대로 배울 수 있었을 텐데, 아쉽다.

거의 매 챕터마다 실제 디버깅 경험담이 있는데, 실제 사례라고 하니 재미있다. 특히 난 ’다른 방향도 있나요?’가 와 닿았는데, 이런 재현 방법에 대한 경험을 나도 했기 때문이다. 그리고 ’실용주의’란 말이 괜히 붙은 게 아니다. 급할 때는 찝찝하지만 땜빵 코드를 피할 수 없다고 설명하고 또한 유닛 테스트가 있으면 코드에 assert가 필요한지 생각해 보게 하는데, 이런 부분까지 다룬다.

  1. 소프트웨어가 왜 이상하게 작동하는지 알아낸다.

  2. 문제를 수정한다.

  3. 다른 곳이 깨지지 않게 한다.

  4. 코드의 전반적인 품질을 유지하거나 향상시킨다.

  5. 같은 문제가 다른 부분에는 없는지 살펴보고, 재발 방지책을 마련한다.

이런 디버깅 과정이 생소하다면 이 책이 도움된다. 경험이 있는 프로그래머라도 다시 한번 디버깅에 대해 한번 쭉~ 복습해보고 싶을 때도 이 책이 좋다.

꼭 알아야 하는 디버깅 지침서. 신입 프로그래머에게 책을 권한다면 난 <Code Complete>와 같이 지루한 책이 아니라 이런 얇고 재미있고 실용적인 책을 권하고 싶다. 물론 여러권…

Update <2017-11-25 Sat> 표지 사진 교체