약 2년간 준비했던 1판을 출간하고 개정판이 나오기까지 약 10년의 시간이 흘렀다. 개정판 역시 기획에서 출간까지 약 2년의 시간이 걸렸다. 오랜 시간이 흐른 만큼 그동안 많은 기술의 발전과 변화가 있었다. 소프트웨어 개발 방법에서부터 개발과 디버깅 도구들의 발전을 보면 그저 놀랍기만 하다. 좋은 디버깅 서적도 더욱 많이 출간됐다. 불행 중 다행인 것은 WinDbg를 이용한 디버깅에 있어서는 이 책보다 쉽게 접근하는 책은 없었다는 것이다. 개정판을 통해 WinDbg의 발전된 기술과 실전 예제를 풍성하게 구성하고 기존 운영체제부터 최신 운영체제까지 모두 아우를 수 있는 내용으로 전체적인 설명을 보강했다. 단순히 특정 디버거의 사용법이 아닌 디버깅 자체를 이해하는 데 강력한 도움을 줄 것으로 기대한다. 이미 현업에서 디버깅에 익숙한 사람들도 새로운 영감을 얻을 수 있을 것이다.
디버깅은 소프트웨어 개발에 있어서 매우 중요한 부분이지만 디버깅하는 방법을 진지하게 배워본 사람은 드물 것이다. 우리는 늘 하던 대로 비주얼 스튜디오의 디버그 빌드를 실행해 디버깅을 하거나 디버그 로그 메시지를 출력하면서 디버깅을 한다. 이 정도만 디버깅을 해도 디버깅을 잘 하는 편에 속하는 것이다. 하지만 디버깅을 할 수 있는 다른 도구를 알게 되거나 몇 가지 방법을 더 배운다면 디버깅이 훨씬 간단해지면 소프트웨어 개발과 관리의 생산성이 향상되는 경험을 할 수 있다.
WinDbg는 이런 도움을 줄 수 있는 가장 대표적인 도구다. 그렇기 때문에 다른 디버깅 서적들에서도 WinDbg를 사용하는 예를 종종 볼 수 있다. 하지만 WinDbg라는 도구를 어떻게 다루기 시작해야 하는지에 대한 내용은 별로 없었다. 그래서 WinDbg를 이용해 디버깅하는 방법을 차근차근 소개하면 좋을 것 같다는 생각을 갖게 됐다. WinDbg는 처음에 어떻게 다뤄야 하는지 직관적으로 알기가 쉽지 않다. 요즘처럼 화려한 유저 인터페이스의 소프트웨어가 난무하는 시대에 WinDbg는 시대에 뒤떨어진 유저 인터페이스를 가지고 있고, 다소 복잡해 보이는 명령어 입력 방식을 취하고 있기 때문이다. 그래서 저자들은 WinDbg를 설치하고 실행하는 방법부터 그림을 통해 쉽게 배울 수 있는 책을 상상하곤 했었다. 그 고민의 결과로 결국에는 이 책을 완성하게 된 것이다.
이 책은 많은 사람들이 디버깅이나 WinDbg에 대해 저자들에게 했던 질문을 정리했다고 볼 수 있다. 사람들의 질문이란 대부분 간단한 사용법 같은 것들인데, 간단한 사용법이 분산되고 정리돼 있지 않아서 반복된다는 사실이 가장 안타까웠다. 간단한 사용법이나 디버깅 팁들이 조목조목 분류돼 있고, 원하는 내용만 원하는 시점에 참조할 수 있는 가이드 북이 있다면 어느 정도 이런 문제가 해소될 것 같았다. 그래서 저자들은 의기투합을 했고 각자 가진 나름대로의 역량을 끌어모아 이 책의 내용을 구성했다.
이 책이 많은 개발자와 IT 전문가에게 도움이 되기를 바란다. 저자가 처음 디버깅이라는 세상을 경험했을 때 놀랐던 기억을 많은 개발자들이 경험하기를 바란다. 그 당시 저자는 많은 개발자가 디버깅을 아직 잘 모른다는 사실에 다시 한 번 놀랐다. 이 땅의 많은 개발자, 그리고 IT 전문가들이 제품에 문제가 발생했을 때 이 책을 통해 해결의 실마리를 찾을 수 있게 되기를 바란다. 그리고 이 책의 공동 저자들이 우리나라의 기술력 향상에 조금이라도 도움이 됐다면 기쁠 것이다.
여기까지 내용을 정리하는 데 참으로 기나긴 여정을 걸어온 느낌이다. 2년이라는 시간이 짧지는 않은 시간이므로 그렇기도 하거니와, 이것도 창작의 작업인 만큼 나름대로 출산의 고통이 존재하기 때문이다. 하지만 그런 것들을 참으면서 버틸 수 있었던 이유는 이 책을 집필하는 목표가 확고했기 때문이었다.
이 책의 목표는 명확하다. 더 많은 사람들이 더 쉽게 디버깅을 할 수 있게 하는 것이다. 이 책이 여러분의 디버깅 능력을 향상시키는 데 조금이라도 더 보탬이 됐으면 한다.