# 실행 방법 # pip install -r requirements.txt # python web_main.py # 기본 local 환경 # APP_ENV=dev python web_main.py # 환경 지정 # # 또는 uvicorn 직접 실행: # uvicorn router.router:app --reload --host=0.0.0.0 --port=9800 import os import uvicorn from common.logger import LOG from config.server_configs import web_server_config LOG.SetPrefix(web_server_config.server_name) # import 시점에 app 및 DB 세션 매니저(싱글톤)가 초기화된다. import router.router if __name__ == "__main__": LOG.i(f"Server Name : {web_server_config.server_name}") LOG.i(f"Server Port : {web_server_config.port}") LOG.i(f"API Server start time : {router.router.API_SERVER_START_TIME}") # RELOAD=1 (개발 컨테이너) → 소스 변경 시 자동 재기동. reload 와 workers(다중) 는 함께 못 쓰므로 분기. reload = os.environ.get("RELOAD") == "1" run_kwargs = dict( host="0.0.0.0", port=web_server_config.port, access_log=False, ) if reload: run_kwargs["reload"] = True else: run_kwargs["workers"] = web_server_config.process_count if web_server_config.is_ssl: run_kwargs["ssl_keyfile"] = "./SSL/key.pem" run_kwargs["ssl_certfile"] = "./SSL/cert.pem" uvicorn.run("router.router:app", **run_kwargs)