FastAPI란?
Fast API는 Python 3.6+에서 웹 API 애플리케이션을 빌드하기 위한 프레임워크이다. 특히 Type Hints와 pydantic을 이용해 동적 언어의 런타임 에러 발생 및 낮은 유지보수성을 개선하였고 uvicorn을 이용한 비동기 API 처리를 지원하면서 매우 빠른 성능을 자랑하는 것으로 알려져있다.
FastAPI의 특성
- 빠른 속도: FastAPI는 Python에서 가장 빠른 프레임워크 중 하나
- Python Type Hints 기반: FastAPI는 Python Type Hints를 기반으로 하므로 코드를 작성하고 유지 관리하기 쉽다.
- 데이터 검증: fastAPI는 파이썬 타입 힌트와 Pydantic을 사용하여 요청과 응답의 데이터를 검증하고 시리얼라이즈할 수 있다.
- API 문서 자동화: FastAPI는 Swagger UI 및 ReDoc을 사용하여 API 문서를 자동으로 생성하고 테스트할 수 있다.
- 비동기 지원: fastAPI는 async/await 구문을 사용하여 비동기 함수를 정의하고 호출할 수 있다. 이를 통해 병렬 처리와 고성능을 달성할 수 있다.
FastAPI 개발 환경 세팅
FastAPI 설치
FastAPI는 Python 3.6 이상에서 작동하기 때문에 따라서, Python 3.6 이상 버전을 설치해야한다.가상 환경 세팅
가상환경은 Python 프로젝트를 개발할 때, 프로젝트마다 독립적인 Python 환경을 구성하기 위해 사용된다. 가상환경을 사용하면, 프로젝트마다 필요한 Python 패키지를 독립적으로 설치하고 관리할 수 있다. 또한, 가상환경을 사용하면, 프로젝트마다 Python 버전을 독립적으로 관리할 수 있다. 따라서, 가상환경을 사용하면, 다른 Python 프로젝트와 충돌하지 않고 Python 패키지를 관리할 수 있다.python -m venv myenv # myenv 라는 가상환경을 세팅한다.
가상 환경 실행
source myenv/bin/activate
pycharm IDE를 사용하면 2, 3번 진행 없이 프로젝트별로 가상 환경을 GUI툴로 손쉽게 세팅할 수 있다.
FastAPI
설치가상환경이 활성화된 상태에서, FastAPI를 설치한다.
python install fastapi
uvicorn 설치
python install uvicorn[standard]
- uvicorn은 Python 3.6+에서 사용할 수 있는 고성능 ASGI(Asynchronous Server Gateway Interface) 서버이다. uvicorn[standard]\는 uvicorn에 비해 다음 기능들을 추가적으로 제공한다.
- uvloop: FastAPI 는 ASGI 비동기 서버로 uvicorn을 사용하기를 권장하고 있고 uvicorn은 libuv라이브러리의 uvloop를 사용한다. uvloop는 python 비동기 모듈인 asyncio의 이벤트 루프를 대체할 수 있는 비동기 라이브러리이며 node.js에서 사용하는 libuv 엔진에서 구현한 이벤트 루프를 Cython 언어로 개발한 것이다.
- httptools: HTTP parser
- wsproto: WebSocket 프로토콜을 구현한 라이브러리
--reload
,--env-file
옵션 제공 등
- uvicorn은 Python 3.6+에서 사용할 수 있는 고성능 ASGI(Asynchronous Server Gateway Interface) 서버이다. uvicorn[standard]\는 uvicorn에 비해 다음 기능들을 추가적으로 제공한다.
pydantic
- pydantic은 Python의 데이터 유효성 검사 라이브러리로 runtime환경에서 type hint를 강제한다.
- pydnatic은 유저 친화적으로 데이터 유효성 검증에 따른 에러를 반환한다.
- FastAPI에는 pydantic이라는 모듈이 내장되어있다.
'개발 언어 > 파이썬' 카테고리의 다른 글
Django - 개발 환경 세팅 (0) | 2023.04.24 |
---|
댓글