Web
수정·
FastAPI로 홈페이지 백엔드 교체
2022.08.04
Django RestFramework 로 작성한 홈페이지 백엔드를
FastAPI 기반으로 교체
최초 홈페이지 Backend를 초기에 Node Express로 작성하고 난 뒤
테스트 편의성 때문에 DRF로 옮겼으나 반응이 생각보다 느린점이 불만이었다.
비동기 처리 지원이 강점이라는 FastAPI를 보고 반신반의하며 이틀 정도 작업을 수행했는데
DRF에 비해 작성해야할 코드가 많을것 같다는 첫인상에 반해
기본적으로 설계가 잘 되어있어 작성해야할 코드가 그렇게 많지 않았다.
특히 Depends 를 통한 DI기능이 매우 강력했다.
응답시간 역시 기존 DRF 대비 2배 가까운 향상이 이루어졌다.
FastAPI 를 사용하면서 생각보다 비동기처리가 잘 동작한다는 것이다.
기존 asyncio 기반의 비동기처리는 async 지원 라이브러리를 이용하지 않으면
별도로 이벤트 루프에 thread 를 등록하는 식의 번거로운 과정을 거쳐야 했는데
FastAPI 는 그런 부분들을 전부 자동화 해두어서 async 함수 내에
blocking 함수가 들어가도 어느정도 처리를 해주는 것으로 보인다.
FastAPI 기반으로 CRUD API 소스코드를 자동 생성해주는 프로젝트를 시도해보려고 한다.