Flask 보다 빠르고 기능이 많은 프레임워크 Fast API를 업무능력 향상과 자기개발을 위해 공부하기로 결심했다
그리하여 오늘부터 Fast API 공부 시작!
- 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)
의존성 주입은 객체지향 프로그래밍에서 사용되는 패턴으로 객체가 필요로 하는 의존성을 외부에서 받도록 하는 것을 의미한다 이를 통해 객체간의 결합도를 낮추고 유연성을 높일 수 있다.
참고자료
'Python > FastAPI' 카테고리의 다른 글
FAST API get, post 사용방법 (1) | 2024.01.29 |
---|