# 실행 방법 # 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=9600 import uvicorn from common.logger import LOG from config.server_configs import web_server_config, main_db_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}") # 실효 커넥션 풀(자동 산정 결과) — 멀티워커 시 커넥션 예산 준수 여부 확인용. _pc = web_server_config.process_count _conn = (main_db_config.pool_size + main_db_config.max_overflow) * 2 * _pc LOG.i(f"DB Pool : pool_size={main_db_config.pool_size} max_overflow={main_db_config.max_overflow} " f"× 2engine × {_pc}workers = {_conn} conns (budget={main_db_config.connection_budget})") if web_server_config.is_ssl: uvicorn.run( "router.router:app", host="0.0.0.0", port=web_server_config.port, access_log=False, workers=web_server_config.process_count, ssl_keyfile="./SSL/key.pem", ssl_certfile="./SSL/cert.pem", ) else: uvicorn.run( "router.router:app", host="0.0.0.0", port=web_server_config.port, access_log=False, workers=web_server_config.process_count, )