더북(TheBook)

20.2.4 print 문을 많이 추가했더니 출력이 엄청나게 많다

print 문을 사용해 디버깅할 때의 문제점은 출력 결과에 파묻힐 수 있다는 점이다. 두 가지 진행 방법이 있다. 하나는 출력을 단순화하는 것이고, 다른 하나는 프로그램을 단순화하는 것이다.

출력을 단순화하려면 도움이 되지 않는 print 문을 제거하거나 주석 처리하는 것이다. 또는 이해하기 쉽게 print 문을 합치거나 출력 형식을 다듬는 것이다.

프로그램을 단순화하는 방법은 몇 가지가 있다. 첫째, 프로그램이 동작하는 수준을 유지하면서 프로그램의 크기를 줄이는 것이다. 예를 들어 리스트를 검색하고 있다면 작은 리스트를 검색해본다. 프로그램이 사용자 입력을 받는다면 문제를 일으키는 가장 작은 입력을 제공하는 것이다.

둘째, 프로그램을 정리한다. 사용되지 않는 코드(dead code)는 제거하고, 최대한 읽기 쉽게 프로그램을 재구성한다. 예를 들어 프로그램의 가장 깊은 중첩 부분에서 문제가 의심된다면 해당 부분을 더 간단한 구조로 재작성해봐야 한다. 아주 큰 함수가 의심된다면 더 작은 함수로 나누고, 작은 함수들을 테스트해야 한다.

테스트 케이스를 아주 작게 만드는 과정이 종종 버그로 이끌어준다. 한쪽 상황에서는 프로그램이 동작하고, 다른 상황에서는 프로그램이 동작하지 않는다면 이것이 무슨 일이 벌어지는지에 대한 단서를 제공할 것이다.

마찬가지로 코드 조각을 재작성하다 보면 미묘한 버그를 찾기도 한다. 변경 사항이 프로그램에 영향을 주지 않는다고 생각한다면 그렇게 하되 변경 사항을 남겨두는 것이 좋다.

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