Flask를 사용하여 Python을 구동하는 경우 디버깅(Debugging)을 목적으로 중단점(breakpoint)을 설정하여 사용하고 싶다면 어떻게 해야하는지 알아봅니다.


! breakpoint(중단점)
브라우저의 개발자 모드에서는 쉽게 자바스크립트 코드에 중단점을 설정하여 사용하죠. 서버 언어 역시 중단점을 사용하여 디버깅할 수 있으며 Python의 Flask 역시 가능한데요 ~ 중단점을 설정하면 코드에 에러를 수정할 때 매우 편리하게 사용할 수 있죠. 설정한 breakpoint에서 코드의 다음 단계로 넘어가지 않고 멈춰있어 어떤 부분이 문제가 있는지 쉽게 파악하고 수정 가능합니다.

참고로 중단점을 사용하는 방법은 위와 같이 코드에 추가하여 사용하는 방법과 VSC(Visual Studio Code) 등의 에디터 도구에서 사용하는 방법으로 구분될 수 있습니다.



# 중단점(breakpoint) 사용하는 방법
중단점을 Flask에서 사용하기 위한 방법으로 크게 두 가지 방법을 알아볼 수 있습니다. 먼저 pdb 모듈을 import 하는 방법입니다.
import pdb

위와같이 pdb 모듈을 페이지에 추가하면 원하는 위치에 set_trace() 코드를 추가하여 디버깅, 중단점 설정이 가능합니다.
pdb.set_trace()

print 'abc'

위와 같이 코드를 작성하면 print 'abc' 구문을 실행하기 이 전에 코드가 중단, 멈추게 되죠.


@ breakpoint() 코드 추가하기
다음 방법은 코드에 breakpoint()를 추가하는 방법입니다. 원하는 위치 breakpoint()를 추가하면 동작이 코드 실행이 중단되고 역시 pdb 모드로 진입하게 됩니다.
breakpoint()

print 'abc'


! PDB에서 사용되는 명령어 알아보기
pdb에서는 일반적인 앱 중단점 실행 화면과 비슷하게 동작합니다. 다음으로 넘어가거나 콘솔 실행, 다음 줄 이동 등등의 명령어를 사용 가능합니다.

c - continue로 다음에 설정 된 중단점으로 바로 이동
n - 다음 줄로 이동 함
r - 현재 함수가 return 될 때까지 계속 실행
l - 현재 라인을 포함하여 위 아래로 11줄의 코드를 출력함

가장 많이 쓰이는 명령어들 중 몇 개 입니다.



# Python 디버깅 모드로 앱 구동하기
위의 중단점(breakpoint)은 디버그 모드가 아니라도 구동되지만 앱이 동작하면서 어디 부분에 문제가 있는지 어떤 오류인지 확인하려면 디버깅 모드로 앱을 구동해야 편리합니다. 화면에 표시해 주기 때문이죠. 이처럼 디버그 모드로 Python을 구동할 때 다음과 같이 run()에 설정할 수 있습니다.
application.run(host='0.0.0.0', debug=True)

단, 디버깅 모드가 실제 서비스단에서 사용되지 않도록 주의하시기 바랍니다.