들어가며
프로젝트는 잘 진행되고 있었는데 파이참에서 지금까지 잘 쓰고 있었던 '저장 시 자동 재실행'기능이 갑자기 작동하지 않았다. 덕분에 거의 4시간동안 코드 한 줄을 작성할 때마다 수동으로 서버를 재실행해주고 있었는데 항해99 슬랙에 질문을 남겼더니 방법을 알려주셔서 겨우 해결했다.
오늘의 TIL은 Flask의 디버그 모드에 대해 트러블 슈팅을 적어보고자 한다!
트러블 슈팅
문제 1. 파이참에서 세이브했을 때 자동으로 서버가 재실행되지 않는 문제
파이참에서 서버를 open한 상태에서 코드를 수정하면 기존에는 자동으로 서버가 재실행이 됐었는데 어느 순간부터 이 기능이 작동하지 않아 코드를 수정할 때마다 수동으로 서버 재실행을 해줘야하는 번거로움이 있었다.
해결
코드를 수정했을 때 자동으로 서버가 재실행되는 기능을 ‘디버그모드’라고 하는데, 내가 실행을 하던 configuration은 Flask서버로, 디버그 모드를 edit configuration에서 켜고 끌 수가 있었다.
Flask공식문서를 보면 디버그 모드에 대해 설명해준다.
디버그 모드란 코드를 작성하다가 에러가 나면 바로 디버거가 나타날 수 있게 하는 아주 유용한 모드이다!
디버그 모드의 기능을 간략히 정리하자면 다음과 같다
- 디버거 활성화
- 자동 재실행
- Flask에서 디버그 모드 활성화
디버그 모드 활성화 시키기
디버그 모드를 활성화하는 방법은 크게 두가지가 있다.
첫번째. 공식문서
파이참에서 실행버튼을 클릭하는 방식이 아니라 터미널에서 flask run으로 실행할 때는 기본적으로 디버거 모드 off로 실행된다. 다음 코드를 입력해주고 서버를 실행하면 디버거모드가 활성화된다.
$ export FLASK_ENV=development
$ flask run
두번째. app.py
파이참에서 실행버튼을 클릭해서 실행할 때는 app.py에서 제일 아래 app.run에 debug=True
를 적어주면 된다.
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
마치며
아무리 구글링을 해보고 여러가지를 시도해봐도 해결하지 못했는데 이게 디버거모드였다는 걸 새롭게 알게되었다. 앞으로는 이 부분만큼은 머리싸매지 않아도 될 듯!
'Study > TIL' 카테고리의 다른 글
[TIL] 05/13 항해99 5일 차 - 빅오(Big-O), 공부법, 문제풀이 (0) | 2022.05.15 |
---|---|
[TIL] 05/12 항해99 4일 차 - 미니프로젝트 (0) | 2022.05.13 |
[TIL] 05/10 항해99 2일 차 - 미니프로젝트 (0) | 2022.05.10 |
[TIL] 05/09 항해99 1일 차 - 미니프로젝트 (0) | 2022.05.10 |
[TIL] 04/10 항해99 웹개발 종합반 0주 차 : 사전준비 - Flask (0) | 2022.04.10 |