디버깅에 관한 책은 왜 이렇게나 없는 걸까? 설계, 코드 구현, 요구 사항 분석, 방법론 같은 소프트웨어 엔지니어링 책은 참 많은데, 유난히 디버깅만큼은 아직까지도 저자나 출판사의 관심을 못 받고 있다. 이 책이 이런 현실을 조금이나마 개선할 수 있기를 바란다.
코드를 작성했다면 언젠가는 (아마 곧바로) 디버깅을 해야 할 것이다. 디버깅은 다른 무엇보다도 지적인 과정이다. 디버깅은 디버거나 코드로 하는 것이 아닌 머리로 하는 것이다. 문제의 근본 원인을 파악하는 것, 이것이 가장 근본이다.
나는 오랫동안 여러 팀에서 굉장한 사람들과 함께 일해 왔다. 비트 슬라이스(bit-slice) 프로세서에서 실행되는 마이크로 코드에서부터 디바이스 드라이버, 임베디드 코드, 메인스트림 데스크톱용 소프트웨어, 웹 애플리케이션까지 다양한 분야의 소프트웨어를 작업해왔다. 이렇게 동료들과 함께 얻은 교훈을 이 책에서 여러분과 함께 공유하고자 한다.