Flask 보다 빠르고 기능이 많은 프레임워크 Fast API를 업무능력 향상과 자기개발을 위해 공부하기로 결심했다

그리하여 오늘부터 Fast API 공부 시작!

 

 

 

 


  1. Fast API란

Fast API는 빠른 성능, 타입 힌트 기반, 간결하고 직관적인 문법이 특징이다

  • 성능 및 빠른 속도 : 비동기 처리 및 Pydantic과 같은 최신 Python 라이브러리를 활용하여 빠른 속도와 뛰어난 성능을 보인다. asyncio를 활용하여 I/O 바운드 작업에서 높은 처리량과 낮은 지연시간을 가지는 특징
  • 타입힌트 기반 : Python의 타입 힌트를 사용하여 자동으로 API 문서를 생성하고, 타입 검사를 수행하여 개발자들의 안정적인 코드작성을 돕는다
  • 간결하고 직관적인 문법 : Swagger 및 OpenAPI를 자동으로 생성하며, 코드 작성을 위한 간결한 구문을 제공하여 빠른 API 개발이 가능!
  • Starletter 프레임워크 개발자가 개발하였으며 Python의 성능을 극대화하고 개발자 경험을 향상시키는 목표를 가지고 만들었다고합니다.

2. Fast API 장점

  • Starlette 프레임워크 기반 ASGI 비동기 처리로 대규모 트래픽 처리에 유리하다
  • 타입 힌트 기반의 자동 문서화한다. Pydantic을 사용하여 타입 힌트를 기반으로 자동으로 API 문서를 생성
  • OpenAPI 지원을 통한 자동 스웨거 생성
  • 직관적이고 간결한 문법으로 빠른 API 작성
  • Python 기반 라이브러리와 호환성이 높음

3. 관련 용어 정리

  • WSGI (Web Server Gateway Interface)

WSGI는 Python 웹 애플리케이션과 웹 서버 간의 표준 인터페이스를 제공한다. python 웹 프레임워크와 웹 서버가 상호 작용할 수 있도록 하는 규칙이며 여러 애플리케이션을 서로 다른 웹 서버에 배포할 수 있도록 표준화된 방법

  • ASGI (Asynchronous Server Gateway INterface)

ASGI는 WSGI의 비동기 버전으로 Python의 비동기 웹 애플리케이션을 위한 인터페이스이다. WSGI는 동기적 요청-응답 패턴에 적합하지만 ASGI는 비동기 요청-응답을 처리하며 WebSocket과 같은 실시간 통신을 처리하는데 적합하다

  • Cpython

Cpython은 Python 프로그램을 C나 C++로 코드를 변환하는 도구로 Python과 C언어 혼합 형태로 사용되며 Python 코드에 정적 타입을 추가하고 C 확자 모듈을 생성하여 Python 코드의 성능을 향상시킨다. 실행을 위해 CPython 인터프리터가 필요하다

  • uvloop

uvloop는 asyncio 이벤트 루프의 성능 향상을 위한 라이브러리로 libuv 이벤트 루프 라이브러리의 Python 바인딩을 제공하며, asyncio의 기본 이벤트 루프보다 성능이 좋다

  • coroutine

coroutine은 비동기 프로그래밍을 위한 개념으로, 실행이 일시 중지되고 다시 시작될 수 있는 함수이다. 이를 통해 비동기적인 작업을 간다하게 표현할 수 있다

  • Event loop

이벤트 루프는 비동기 프로그래밍에서 이벤트를 관리하고 처리하는 매커니즘이다. 비동기 코드에서는 이벤트 루프를 사용하여 작업 스케줄링을 관리한다

  • DI (Dependency Injection)

의존성 주입은 객체지향 프로그래밍에서 사용되는 패턴으로 객체가 필요로 하는 의존성을 외부에서 받도록 하는 것을 의미한다 이를 통해 객체간의 결합도를 낮추고 유연성을 높일 수 있다.

참고자료

  1. https://tech.madup.com/FastAPI/
  2. https://livvjh.com/posts/develop/fastapi-beginner/

'Python > FastAPI' 카테고리의 다른 글

FAST API get, post 사용방법  (1) 2024.01.29

+ Recent posts