플라스크가 여러개의 요청을 동시에 받을때 어떻게 처리하는지 궁금해서 연구해봄 플라스크는 비동기 처리를 지원하지 않고, 스레드, 프로세스 포크 해서 쓴다고 한다. 이는 플라스크가 WSGI 위에서 동작하기 때문이라고 하는데.. 기본적으로 uWSGI나 gunicorn을 사용하지 않더라도 내장되어있는 werkzeug라는 WSGI 툴킷을 기반으로 작동. 근데 실제 운영환경에서는 성능이 더 좋은 uWSGI나 gunicorn을 쓰라고 한 비동기/동기, uWSGI등에 관한 완벽한 설명 : https://datafireball.com/2021/11/29/is-flask-synchronous-threaded-vs-processes/ 실제로 locust로 간단한 플라스크 서버에 요청 날려보니까 트래픽 폭주해도 잘 동작한다 분석결과, flask 객체에 run 메소드 실행하면 내부에서 다음과 같이 kwargs를 바꿔주고 werkzeug의 run_simple로 넘겨줌. 그래서 thread가 True가 되는데, 이걸 False를 넣어서 돌려보면 완전 동기로 실행되는걸 알 수 있음. locust로 넣으면 트래픽이 폭주해도 하나씩 처리하는걸 확인 가능 uWSGI 붙이는 간단한 예제 https://cat-minzzi.tistory.com/48

threading.current_thread().ident를 써서 현재 스레드 ident 확인가능 whl 파이썬 배포할때 쓴다.. whl 파일 하나 만들어서 똑같이 venv 만들어서 쓴다고 하면 됨 pipenv랑 requirements랑 뭐가 다른건지 알아봐야한다 알아보니 배포용 패키지 만들떄 사용하는 파일이라고 한다(pip install)