백엔드 개발 분야로 대규모 생태계를 가진 spring framework와 뛰어난 성능을 가진 node.js 등을 사용을 하여 웹 서버를 구축하고, 서비스를 해왔지만 최근 착수한 프로젝트에 적합한 python 기반의 웹 프레임워크를 찾던 도중에, FastAPI라는 것을 알게 되었다.
django, flask라는 파이썬 기반의 웹 프레임워크도 존재하지만 무겁지 않고, 성능이 가장 중요하다고 설계된 이번 프로젝트에서는 FastAPI를 선택하게 되었다.(부족한 레퍼런스는 극복하면 된다고 생각!)
FastAPI 공식문서를 보면 아래와 같이 명시되어있다.
- Fast : Very high performance, on par with NodeJS and Go (thanks to Starlette and Pydantic)
- Easy : Designed to be easy to use and learn. Less time reading docs.
- Fast to code : Increase the speed to develop features by about 200% to 300%.
이외에도 많이 나와있지만 Fast라는 부분에서 node.js와 Go를 대체할만큼 높은 퍼포먼스를 보인다고 명시되어 있다.
또한, 여기서 주의깊게 보게된 내용이 Starlette와 Pydantic덕분에 이와 같은 성능을 보인다고 하는 것이다.
사용해보면서, 주관적으로 좋다고 느낀 점은 아래와 같다.
- API Swagger: REST API를 설계하는데 있어 직관적으로 확인할 수 있어, 좋다고 느꼈다. 또한 나는 backend와 frontend를 동시에 개발을 진행하지만, 역할이 나눠져 있는 협업의 경우에는 이 API Swagger가 도움이 많이 된다는 글도 본 적이 있었다.
- ASGI를 사용한 비동기 처리
Starlette과 Pydantic은 따로 내용을 정리를 하였다.
해당 포스터에서는 FastAPI라는 것을 정리.
FastAPI를 설치하는 방법은 FastAPI공식 문서에 아래와 같이 나와있다.
서버를 구축한 뒤, 아래 사진과 같이 서버를 실행 시킨다.
서버 실행 뒤, 8000포트로 열리게 되고 http://127.0.0.1:8000/docs 으로 접속하면 위에서 언급한 SwaggerUI가 나오고, 작업의 진행 상태를 알 수 있다.
'backend > FastAPI' 카테고리의 다른 글
[FastAPI] 3. Request Body (0) | 2022.07.29 |
---|