더북(TheBook)

2.8 디버깅

프로그램에서 일어날 수 있는 오류는 세 가지 유형이 있다. 세 가지 유형은 구문 오류, 런타임 오류, 의미 오류다. 오류를 빨리 찾아내려면 이들 유형을 구분하는 것이 좋다.

구문 오류

“구문”은 프로그램의 구조와 구조에 있는 규칙을 나타낸다. 예를 들어 괄호는 쌍으로 쓰이며 (1 + 2)는 올바르지만, 8)는 구문 오류다.

프로그램 어딘가에 구문 오류가 있다면 파이썬은 오류 메시지를 표시하고 종료하므로 여러분은 프로그램을 실행할 수 없게 된다. 처음 몇 주 동안의 프로그래밍 경험에서 상당히 많은 시간을 구문 오류를 잡는 데 쓰게 될 것이다. 경험이 쌓일수록 구문 오류는 줄어들게 되고, 더 빨리 찾아내게 될 것이다.

런타임 오류

오류의 두 번째 유형은 런타임 오류인데 보통은 프로그램을 실행하기 전에는 나타나지 않는 오류를 말한다. 이들 오류는 예외적으로 어떤 일이 발생했다는 의미이기도 해서 예외(exception)라고도 한다.

앞으로 몇 주 동안 보게 될 간단한 프로그램에서 런타임 오류는 드물다. 따라서 첫 번째 런타임 오류를 만나기까지는 어느 정도 시일이 걸릴 것이다.

의미 오류

오류의 세 번째 유형은 “의미(semantic)”인데, 이는 뜻(meaning)과 관련되어 있음을 말한다. 프로그램에 의미 오류가 있다면 프로그램은 오류 메시지를 생성하지 않으면서 실행되지만, 올바르게 동작하지는 않는다. 프로그램이 뭔가 엉뚱한 것을 할 것이다. 특히, 프로그램에 하라고 얘기한 것을 할 것이다.

프로그램의 출력을 보면서 거슬러 올라가면서 프로그램이 무엇을 하는지 찾아내야 하기 때문에 의미 오류를 찾아내는 건 종종 어렵다.

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