Why Programs Fail 번역서 "프로그램은 왜 실패하는가" 나왔습니다.

Twitter icon류광, 2007-01-13 02:01
Why Programs Fail 번역서 "프로그램은 왜 실패하는가" 출간 소식입니다. 역자의 글도 공개합니다....

이전에 언급했던 Why Programs Fail의 번역서가 "프로그램은 왜 실패하는가: 체계적인 디버깅 지침서"라는 제목으로 며칠 전에 출간되었습니다.

"프로그램은 왜 실패하는가"라는 제목은 왠지 존재론적인 질문 같지 않나요? (원서 제목을 그대로 옮긴 것이긴 합니다만.) 이를테면 "버그는 왜 생길 수밖에 없는가..." 등등. 그래서 버그를 방지하려면 어떻게 해야 하는가 같은 주제를 다루는 책이라고 오해할 수도 있겠는데, 사실 책은 전적으로 버그가 있다고 할 때 그것을 어떻게 잡을 것인가에만 집중합니다.

현재 출판사 상세 페이지강컴 페이지에는 "체계적인 디버깅 지침서"라는 부제가 빠져 있고 또 원서에 있던 선전문구를 그대로 옮긴 문구들만 나오는 등 좀 부족한 느낌입니다. 서점에 가서 훑어볼 여건이 안 되는 독자들의 판단에 도움이 될까 해서 역자의 글을 공개합니다:

"프로그램은 왜 실패하는가" 역자의 글

디버깅이 프로그래밍의 필수적인 일부임을 부정하는 프로그래머는 없을 것입니다. 그런만큼, 프로그래밍을 높은 수준에서 다루는 책들(이를테면 Steve McConnell의 Code Complete 등)은 거의 예외 없이 디버깅에 적어도 하나의 장(章)을 할애합니다. 물론 디버깅을 전문으로 다루는 책들도 나와 있습니다. 그런 책들에서 주되게 주장하는 바는 디버깅이 과학적이고 체계적인 활동이 되어야 한다는 것입니다.

어떠한 활동이 얼마나 체계적이고 과학적인지를 평가하는 한 가지 기준은 그것을 어느 정도나 ‘알고리즘화’ 할 수 있는가일 것입니다. 즉, 개개인의 추측이나 영감, 현명함에 의존하지 않고 누구나 따라 할 수 있을 정도로 잘 정리되고 규격화된 절차를 만들어 낼 수 있는가의 문제입니다. 그런 것이 적어도 부분적으로 가능하다면, 그 다음 단계는 바로 ‘자동화,’ 즉 최대한 많은 일을 컴퓨터에게 맡기고 프로그래머는 좀 더 창조적인 일에 집중할 수 있게 하는 것이 되겠지요. 이 책은 단지 과학적이고 체계적인 디버깅 방법을 다루는 데에서 그치는 것이 아니라 디버깅을 바로 그런 자동화 수준으로까지 끌어 올리는 문제를 본격적으로 다루고 있습니다. 그런 점에서, 진지한 프로그래머라면 누구나 이 책에 관심을 가져야 할 것입니다.

번역에 대해 이야기하자면, 디버깅 관련 용어들 중 뜻은 비슷하나 구별이 필요한 용어들이 많았고 또 그런 용어들에 대한 번역어들이 아직 확실하게 정립이 되어 있지 않았기 때문에 고민이 조금 필요했습니다. 최대한 직관적이면서도 변별력이 있는 번역어들을 택하려고 했습니다만 어떤 평가가 나올지 모르겠습니다. 그리고 주제가 주제인만큼 군데군데 다분히 수학적이고 형식적인 문장들이 종종 나오는데, 그런 부분에서는 문장을 치장하기보다는 오해의 여지나 애매함이 없도록 하는 데 주력했습니다. 역시 평가를 기다리겠습니다.

번역 품질 외에 조금 걱정이 되는 점이 하나 있습니다. 아마 많은 독자들은 Visual Studio 같은 편리한 통합 개발 환경(IDE)에 익숙해 있을 것이며, 또한 IDE에 내장된 디버거를 주로 사용하고 있을 것입니다. 이 책을 최대한 활용하기 위해서는 IDE와 IDE가 제공하는 기본적인 디버거의 틀을 벗어날 필요가 있습니다(단축키나 GUI의 어떤 버튼을 클릭하지 않고 다른 방법으로 프로그램을 빌드해 본 게 마지막으로 언제였는지 한 번 되돌아 보시길!). IDE의 틀을 벗어난 다는 것은 단지 명령행 사용의 귀찮음(이라는 것이 존재한다면)을 극복해야 하는 것뿐만 아니라, IDE가 감추어 주었던 여러 세부사항들에 익숙해져야 한다는 뜻이기도 합니다. 그러나 그런 장벽을 극복함으로써 얻을 수 있는 장점은 이 책을 잘 활용할 수 있다는 측면 말고도 대단히 많습니다. IDE에 익숙하다는 것은 프로그램 소스 코드를 하나의 IDE 안에 갇혀 있는 어떤 것으로 간주하고 있다는 뜻일 수있습니다. 소스 파일을 IDE에서 해방시킨다면, 이 책을 더 잘 활용할 수있음은 물론 지금까지 보지 못했던 수많은 가능성을 발견하게 될 것입니다.

참고로 이 번역서는 Morgan Kaufmann과 dpunkt.verlag가 공동출판한 Why Programs Fail: A Guide to Systematic Debugging을 번역한 것이며, 원서의 정오표를 마지막으로 반영한 것은 2006년 10월 24일입니다. 항상 그렇듯이 제 홈페이지 occam's Razor에 이 책에 대한 추가적인 정오표와 새로 갱신된 내용을 담은 페이지를 마련해 두겠습니다. 오류 보고나 책에 대한 의견도 환영합니다.

태그: 번역서

comments powered by Disqus