다양한 파이썬 프레임워크 중 요새 Hot한 FastAPI를 알아보고자 한다.
FastAPI란?
https://fastapi.tiangolo.com/ko/
FastAPI
FastAPI FastAPI 프레임워크, 고성능, 간편한 학습, 빠른 코드 작성, 준비된 프로덕션 문서: https://fastapi.tiangolo.com 소스 코드: https://github.com/tiangolo/fastapi FastAPI는 현대적이고, 빠르며(고성능), 파이썬
fastapi.tiangolo.com
- 웹 프레임 워크 (다른 프레임워크로는 Django, Flask, Sanic etc..)
- 마이크로 프레임 워크 (Flask, Sanic <-> 풀 스택 프레임 워크 : Django가 있고 SSR을 공식적으로 지원함)
→ 간단한 HTTP 요청을 받고 응답을 해주는것을 마이크로 프레임 워크라고 함.
→ 기본적으로 관리자와 같은 기능도 내장이 되어 있지 않음.
→ Django는 자체 ORM이 있으나 FastAPI나 Flask는 존재하지 않아서 외부 라이브러리를 사용함
- ASGI 어플리케이션
→ WSGI (Web Server Gateway Interface) : 파이썬에서 정의한 웹 애플리케이션 인터페이스
→ ASGI (Asynchronous Server Gateway Inteface) : WSGI와 같다고 보아도 되나, 비동기를 지원함.
➪ 비동기를 지원하는 마이크로 웹 프레임 워크이다!
왜 FastAPI?
- 배우기 쉬움
- 모던 파이썬(3.6이상) 문법 사용
→ 비동기를 지원 함 (async, await)
→ 타입 힌트 (자바스크립트나 파이썬과 같이 동적 타입 언어는 변수 선언 시 타입을 지정하지 않음),
: 파이썬은 동적 타입으로 형을 강제하지 않으나, 힌트를 줌으로써 개발자와 IDE에 편리함을 제공
- OpenAPI 기반
→ 예전에는 Swagger API로 불리웠음 (*Swagger API란 RESTful을 표현하기 위한 규격)
→ RESTful 기반
→ 자동 문서 생성
- 마이크로 프레임 워크
→ 모놀리틱(자바, Django)과 같이 하나의 앱에 모든 기능이 들어가는 게 주류였음, 이경우 서비스가 죽게 될 경우 서버가 다운이 됨
이로 인해 MSA가 나오게 됨
→ MSA (Micro Service Architecture) : 서비스 별로 기능을 분리해서 작업하기에, 하나의 서비스가 죽더라도 다른 서비스는 동작할 수 있음.
(쿠버네티스가 MSA의 서비스를 관리하기 위한 프로그램)
Flask와 비교
- FastAPI가 Flask에 영향을 많이 받았기에 문법이 비슷함.
Flask | FastAPI |
@app.route("/") def hello(): return "Hello, World!" |
@app.get("/") def hello(): return "Hello, World!" |
FastAPI는 OpenAPI의 영향을 받아 Route 호출 시 get과 같이 RestFul 메서드 호출 가능
Flask에서 같은 경로를 Get과 Post의 2가지 메서드를 호출하기 위해서는 if와 같이 분기를 통해 가능
'Programming > Python' 카테고리의 다른 글
[FastAPI] 응답 모델 (0) | 2022.08.13 |
---|---|
[FastAPI] 요청 본문 (0) | 2022.08.12 |
[FastAPI] 쿼리 매개변수 (0) | 2022.08.11 |
[FastAPI] 경로 매개변수 (0) | 2022.08.10 |
[FastAPI] FastAPI 설치 (0) | 2022.08.09 |