FastAPI CLI¶
FastAPI CLI는 FastAPI 애플리케이션을 실행하고, 프로젝트를 관리하는 등 다양한 작업을 수행할 수 있는 커맨드 라인 프로그램입니다.
FastAPI를 설치할 때 (예: pip install "fastapi[standard]"
명령어를 사용할 경우), fastapi-cli
라는 패키지가 포함됩니다. 이 패키지는 터미널에서 사용할 수 있는 fastapi
명령어를 제공합니다.
개발용으로 FastAPI 애플리케이션을 실행하려면 다음과 같이 fastapi dev
명령어를 사용할 수 있습니다:
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에서 확인할 수 있습니다.