
406 Chapter 10
전역이 문제예요
컴퓨터가 아니라 웹 서버가 우리 코드를
실행합니다
플라스크가 우리 웹앱을 컴퓨터에서 실행할 때는 모든 코드를 항상 메모리에 저장합니다. 이를
염두에 두고
5
장 마지막 부분에서 살펴봤던 두 행의 웹앱 코드를 다시 살펴보죠.
if __name__ == '__main__':
app.run(debug=True)
위 코드에서
if
문은 인터프리터가 코드를 직접 실행하는지 아니면 파이썬애니웨어 같은
누군가에 의해 코드가 임포트되었는지 확인합니다. 컴퓨터에서 플라스크를 실행할 때는 웹앱
코드를 직접 실행하므로
app
.
run
행이 실행됩니다. 하지만 웹 서버로 우리 웹앱 코드를
실행하면 코드가 임포트되므로
app
.
run
행이 실행되지 않습니다.
왜냐고요? 파이썬 인터프리터가 아니라 웹 서버가 우리 코드를 실행하기 때문입니다. 즉, 웹
서버가 우리 웹앱 코드를 임포트하고, 필요한 함수를 호출하며, 웹앱 코드를 항상 메모리에
저장하는 작업을 수행합니다. 상황에 따라서 웹 서버가 우리 웹앱 코드를 메모리에 저장했다
해제했다를 반복할 수 있습니다. 예를 들어 우리 웹앱이 필요한 상황에 웹앱 코드를 메모리에
저장하고, 장시간 활동이 없으면 메모리에서 해제할 수 있습니다. 이러한 웹 서버의 특성으로
인해 웹앱의 상태를 변수로