콘텐츠로 이동

FastAPI CLI

FastAPI CLI는 FastAPI 애플리케이션을 실행하고, 프로젝트를 관리하는 등 다양한 작업을 수행할 수 있는 커맨드 라인 프로그램입니다.

FastAPI를 설치할 때 (예: pip install "fastapi[standard]" 명령어를 사용할 경우), fastapi-cli라는 패키지가 포함됩니다. 이 패키지는 터미널에서 사용할 수 있는 fastapi 명령어를 제공합니다.

개발용으로 FastAPI 애플리케이션을 실행하려면 다음과 같이 fastapi dev 명령어를 사용할 수 있습니다:

fast →fastapi dev main.pyINFO Using path main.py
INFO Resolved absolute path /home/user/code/awesomeapp/main.py
INFO Searching for package file structure from directories with __init__.py files
INFO Importing from /home/user/code/awesomeapp

╭─ Python module file ─╮
│ │
│ 🐍 main.py │
│ │
╰──────────────────────╯

INFO Importing module main
INFO Found importable FastAPI app

╭─ Importable FastAPI app ─╮
│ │
from main import app
│ │
╰──────────────────────────╯

INFO Using import string main:app

╭────────── FastAPI CLI - Development mode ───────────╮
│ │
│ Serving at: http://127.0.0.1:8000 │
│ │
│ API docs: http://127.0.0.1:8000/docs │
│ │
│ Running in development mode, for production use: │
│ │
fastapi run
│ │
╰─────────────────────────────────────────────────────╯

INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [2265862] using WatchFiles
INFO: Started server process [2265873]
INFO: Waiting for application startup.
INFO: Application startup complete.

restart ↻

fastapi라고 불리는 명령어 프로그램은 FastAPI CLI입니다.

FastAPI CLI는 Python 프로그램의 경로(예: main.py)를 인수로 받아, FastAPI 인스턴스(일반적으로 app으로 명명)를 자동으로 감지하고 올바른 임포트 과정을 결정한 후 이를 실행합니다.

프로덕션 환경에서는 fastapi run 명령어를 사용합니다. 🚀

내부적으로, FastAPI CLI는 고성능의, 프로덕션에 적합한, ASGI 서버인 Uvicorn을 사용합니다. 😎

fastapi dev

fastapi dev 명령을 실행하면 개발 모드가 시작됩니다.

기본적으로 자동 재시작(auto-reload) 기능이 활성화되어, 코드에 변경이 생기면 서버를 자동으로 다시 시작합니다. 하지만 이 기능은 리소스를 많이 사용하며, 비활성화했을 때보다 안정성이 떨어질 수 있습니다. 따라서 개발 환경에서만 사용하는 것이 좋습니다. 또한, 서버는 컴퓨터가 자체적으로 통신할 수 있는 IP 주소(localhost)인 127.0.0.1에서 연결을 대기합니다.

fastapi run

fastapi run 명령을 실행하면 기본적으로 프로덕션 모드로 FastAPI가 시작됩니다.

기본적으로 자동 재시작(auto-reload) 기능이 비활성화되어 있습니다. 또한, 사용 가능한 모든 IP 주소인 0.0.0.0에서 연결을 대기하므로 해당 컴퓨터와 통신할 수 있는 모든 사람이 공개적으로 액세스할 수 있습니다. 이는 일반적으로 컨테이너와 같은 프로덕션 환경에서 실행하는 방법입니다.

애플리케이션을 배포하는 방식에 따라 다르지만, 대부분 "종료 프록시(termination proxy)"를 활용해 HTTPS를 처리하는 것이 좋습니다. 배포 서비스 제공자가 이 작업을 대신 처리해줄 수도 있고, 직접 설정해야 할 수도 있습니다.

Tip

자세한 내용은 deployment documentation에서 확인할 수 있습니다.

Was this page helpful?