더북(TheBook)

CHAPTER

17

 

디버깅의 기본 철학

간혹 디버깅을 매우 버거워하는 이들을 본다. 대개 디버깅을 할 때 그 시스템을 보는 게 아니라 그 시스템에 대해 생각해야 한다고 믿는 사람들이다.

무슨 뜻인지 예를 들어 설명해보겠다. 사용자에게 페이지를 보여주는 작업을 5퍼센트 정도 실패하는 웹 서버가 있다고 가정해보자. 이 이야기를 듣고 여러분이 가장 먼저 던지는 질문은 아마 “왜?”일 것이다.

즉시 어떤 답을 생각해내려고 했는가? 이미 추측하기 시작했는가? 둘 다 잘못된 접근법이다. 가장 적절한 반응은 “나는 모른다.”이다. 이게 성공적인 디버깅을 시작하는 첫걸음이다.

 

디버깅은 본인이 아직 답을 모른다고 자각하는 데에서 시작해야 한다.

 

답을 이미 알고 있다고 생각하고 싶을 것이다. 흔한 일은 아니지만 가끔 추측이 맞기도 한다. 그래서 답을 추측하는 것이 올바른 디버깅 방법이라고 착각하는 사람들도 생긴다.

하지만 몇 시간, 며칠, 몇 주를 추측해서 여러 해결책을 시도해보아도 코드만 복잡해질 뿐 별 다른 수확을 얻지 못하는 때가 태반이다. 사실 추측에 불과한 ‘버그 해결책’으로 가득 찬 코드베이스도 꽤 있다. 이런 ‘해결책’은 코드베이스를 복잡하게 만드는 주요 원인이 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.