Fast API :
현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크
비동기 방식의 웹 서버 프레임워크
특징 :
- 빠르다 : Starlette 및 Pydantic을 기반으로 하여 빠른 웹 프레임워크 중 하나이다.
- 자동으로 문서 제공 : swagger ui를 통해 브라우저에서 api를 직접 호출 할 수 있기 때문에 테스트에 용이하다.
Uvicorn :
An ASGI web server, for Python.
Uvicorn은 Python용 ASGI 웹 서버
비동기 방식의 http 서버
CGI :
Common Gateway Interface
사용자가 요청 > 서버에서 처리 > 사용자에게로 결과 리턴
이때 공통 표준 인터페이스를 지정하여 언어, 서버로부터 독립성을 갖게 함
요청이 들어올 때마다, 프로세스를 실행
동시에 다량의 요청이 들어오면, 매번 프로세스를 생성, 실행 및 삭제를 반복한다.
요청에 대한 정보를 환경변수, STDIN 등 으로 처리한다.
WSGI :
요청에 대한 정보를 객체, 함수, collable object로 처리한다.
동기성에 대한 요청 처리에 적합
단점
WSGI 애플리케이션은 요청을 받고 응답을 반환하는 단일 동기 callable 항목
이는 장기 폴링 HTTP 또는 WebSocket 연결과 같이 장기 연결을 허용하지 않습니다.
ASGI :
동기적, 비동기적 요청 처리에 대한 표준을 제공
단일 비동기 callable 항목으로 구성
여러 개의 수신 이벤트와 발신 이벤트를 허용
애플리케이션이 다른 작업(예: Redis 대기열과 같은 외부 트리거에서 이벤트 수신 대기)을 수행할 수 있도록 백그라운드 코루틴을 허용
scope, send, receive를 갖는다.
scope :
특정 연결에 대한 세부사항을 담고 있는 dict
send :
비동기 callable(함수를 호출하듯이 호출할 수 있는 객체).
어플리케이션이 클라이언트에게 이벤트 메세지를 보낼 수 있게 한다.
receive :
비동기 callable
어플리케이션이 클라이언트로부터 이벤트 메세지를 받는다.
callable :
파이썬에서 호출 가능한 클래스 인스턴스, 함수 그리고 메소드 등의 객체
References
https://fastapi.tiangolo.com/ko/
https://kangbk0120.github.io/articles/2022-02/cgi-wcgi-asgi
https://asgi.readthedocs.io/en/latest/?ref=breezymind.com
'TIL' 카테고리의 다른 글
[TIL] Linux 명령어 / main method (0) | 2023.09.23 |
---|---|
[TIL] 프로그래밍 언어 / TCP / UDP / 진수 변환 / 데이터 단위 / IntelliJ 단축키 / vi, vim (0) | 2023.09.21 |
[TIL] Unix / Linux / 대화형 시분할 시스템 / 커널 / Link (0) | 2023.09.20 |
[TIL] Computer HW / 컴파일러 / 인터프리터 (0) | 2023.09.19 |
[TIL] MLOps / ML Pipeline (0) | 2023.09.09 |