사실 프로그램 작성 만큼이나, 아니 더 중요할 수도 있는 과정이 디버깅입니다.
보통 버그는 논리적인 오류나 실수에서 자주 발생합니다. 그 코드가 영향을 끼치는 다른 코드에서 세웠던 가정이 깨졌다거나 하는 경우에 발생하기도 하죠.
이 책은 그런 부분의 이야기보다, 실서비스 되기전에 테스트를 어떻게 하면 버그를 잘 찾을 수 있을까, 또 이미 문제가 발생했다면 어떻게 찾을것인가에 대한 내용이 더 빈도있게 다뤄지고 있습니다.
이 책은 체계적인 디버깅 방법을 다양하게 다루고 있습니다. 로그, 버그 DB, 버그 트레이스, 테스트, 문제 재현, 추론 같은 방법들 말이죠.
저 같은 경우는 게임 서버를 맡고 있는데, 서버 유지보수 과정에서 겪은 문제들의 해결책이 이 책에 다 나와있었습니다.
제가 그 상황을 겪기전에 이 책을 알았다면 얼마나 좋았을까 안타까워하면서도, 그 만큼 필요했던 좋은 내용을 담고 있으며, 그 내용들이 잘 정리된 책이라는 점에서 좋은 책이라는 생각이 들었습니다.
문제가 발생할 여지를 줄여주는 리팩토링을 개발 과정에 도입하고, 빈틈을 빠져나간 버그들을 이 책에 나온 다양한 방법들을 적용한다면 완성도 높은 프로그램 개발자가 될 수 있을거라 믿어 의심치 않습니다.
꾸준히 고민하고 노력하는 것만이 질 좋은 소프트웨어를 만들 수 있는 방법이다.