Fastapi
FastAPI, Uvicorn, ASGI[편집]
- Python에서 FastAPI는 웹 애플리케이션 또는 API를 구축하기 위한 고성능 웹 프레임워크이며,
- Uvicorn은 이 애플리케이션 코드를 실행하는 비동기 웹 서버입니다.
- 이 둘은 ASGI(Asynchronous Server Gateway Interface)라는 표준 인터페이스를 통해 서로 통신합니다.
FastAPI의 기능 (웹 프레임워크)[편집]
- API 구축: REST API를 구축하는 데 필요한 라우팅, 요청 처리, 응답 생성 등의 기능을 제공
※ REST API(Representational State Transfer Application Programming Interface)는 웹 서비스에서 자원(Resource)을 이름(URL)으로 구분하고, HTTP 프로토콜을 통해 이 자원의 상태를 주고받는(데이터 생성, 조회, 수정, 삭제 등) 아키텍처 스타일이자 표준화된 통신 방식
- 자동 문서 생성: OpenAPI 표준을 기반으로 대화형 API 문서를 자동으로 생성
Uvicorn의 기능 (ASGI 웹 서버)[편집]
- HTTP 요청 처리: 클라이언트로부터 HTTP 요청을 수신하고, FastAPI 애플리케이션으로 전달
- ASGI 구현: 웹 서버와 비동기 Python 애플리케이션 간의 표준 인터페이스인 ASGI를 구현
- 응답 반환: FastAPI 인스턴스가 반환한 데이터를 HTTP 응답으로 변환하여 클라이언트에게 다시 전송
FastAPI와 Uvicorn의 관계[편집]
FastAPI와 Uvicorn의 관계는 다음과 같이 비유할 수 있습니다.
- FastAPI는 카페의 주방장과 같습니다. 어떤 요리를 어떻게 만들지(애플리케이션 로직, 데이터 처리) 결정합니다.
- Uvicorn은 카페의 종업원 또는 접수 담당자와 같습니다. 손님의 주문(HTTP 요청)을 받고, 주방장(FastAPI)에게 전달하며, 완성된 요리(HTTP 응답)를 손님에게 다시 가져다줍니다.
- ASGI는 주방장과 종업원이 사용하는 표준화된 주문서 및 의사소통 방식입니다.
요약하자면, FastAPI는 애플리케이션 로직을 정의하고, Uvicorn은 해당 로직을 네트워크 상에서 실제로 구동되게 하는 역할을 합니다. FastAPI 애플리케이션을 실행할 때는 uvicorn main:app와 같은 명령어를 사용하여 Uvicorn이 FastAPI 인스턴스를 로드하도록 지시합니다. (Google AI)
FastAPI, Uvicorn 설치[편집]
- 모듈 설치
C:\Rnd\시스템환경>pip install fastapi uvicorn
- 설치 확인
C:\Rnd\시스템환경>python -m pip check
- 프로그램 실행 명령
uvicorn main:app --reload python -m uvicorn main:app --reload http://127.0.0.1:8000
- uvicorn 설치 위치 확인 및 Path 지정
pip show uvicorn C:\Users\USER\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages 제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 (화면 오른쪽) > 환경 변수 > 시스템 변수 > 새로 만들기 uvicorn