더북(TheBook)

20.3 의미 오류

의미 오류는 무엇이 잘못되었는지 인터프리터가 어떤 정보도 제공하지 않기 때문에 어떤 면에서는 가장 디버깅하기 어렵다. 유일하게 아는 것은 프로그램이 원래 어떻게 동작해야 하는가 뿐이다.

첫 번째 단계는 프로그램 텍스트와 지금 보고 있는 동작을 연결하는 것이다. 프로그램이 실제로 무엇을 해야 하는지에 대한 가설이 필요하다. 이를 어렵게 하는 하나는 컴퓨터가 매우 빠르게 동작한다는 것이다.

프로그램이 인간이 이해할 수 있는 속도만큼 느렸으면 하고 생각할 때가 있을 텐데, 디버거가 이런 역할을 해준다. 그러나 잘 배분한 print 문을 삽입하는 데 걸리는 시간이 디버거를 설정하고, 중단점을 삽입하거나 제거하고, 프로그램을 오류가 발생하는 위치까지 단계별로 실행(stepping)하는 것보다 보통은 더 짧다.

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