본문 바로가기
개발 언어/파이썬

Fast API - 개발환경 Setting

by Chaein.P 2023. 3. 22.

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 옵션 제공 등

pydantic

  • pydantic은 Python의 데이터 유효성 검사 라이브러리로 runtime환경에서 type hint를 강제한다.
  • pydnatic은 유저 친화적으로 데이터 유효성 검증에 따른 에러를 반환한다.
  • FastAPI에는 pydantic이라는 모듈이 내장되어있다.

'개발 언어 > 파이썬' 카테고리의 다른 글

Django - 개발 환경 세팅  (0) 2023.04.24

댓글