더북(TheBook)

7.7 디버깅

작성하는 프로그램이 커질수록 디버깅에 더 많은 시간을 쓰는 자신을 발견하게 된다. 코드가 많다는 건 오류를 만들 가능성이 커지고, 버그가 숨어 있는 곳이 많아진다는 뜻이다.

디버깅 시간을 줄이는 한 가지 방법은 ‘분할하며 디버깅하는 것’이다. 예를 들어 프로그램이 100줄인데 한 번에 하나씩 확인한다면 100단계가 걸릴 것이다.

대신에 프로그램을 절반으로 나눠보는 것이다. 프로그램의 중간쯤에서 중간값을 확인하는 것이다. print 문(또는 다른 검증 수단)을 추가해서 프로그램을 실행해보라.

중간 지점 검사가 올바르지 않다면 프로그램의 앞단 절반에서 문제가 있다는 뜻이다. 만일 중간 지점 검사가 올바르다면 나머지 절반에 문제가 있을 것이다.

중간 지점 검사를 수행할 때마다 찾아봐야 할 줄 수를 절반으로 줄일 수 있다. 적어도 이론상으로는 100단계보다는 훨씬 적은 6단계 만에 한두 줄의 코드로 범위를 줄일 수 있다.

실무에서는 “프로그램의 중간”이 항상 명확한 것도 아니고, 항상 중간에서 확인할 수 있는 것도 아니다. 그래서 줄 수를 세어서 정확한 중간 지점을 찾는 것은 의미가 없다. 대신에 프로그램에서 오류가 있을 만한 위치와 검사를 넣기 쉬운 위치를 생각해야 한다. 그런 다음 검사를 넣은 위치의 앞과 뒤에서 버그가 같은지 확인할 수 있다고 생각되는 위치를 선택해야 한다.

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