[FastAPI] 패빠정 EP.1 - FastAPI 빠르게 정복하기(?)

정재경·2022년 9월 19일
0

패빠정

목록 보기
2/2
post-thumbnail

왜 하필 FastAPI?

학교 창의학기제 프로젝트에서 "15GG - 리그오브레전드 실시간 승률 예측 앱" 을 만들기로 했다.

이번에도 백엔드를 맡게 되었는데,지금까지 백엔드 API를 제대로 만든 것은 Django REST Framework 밖에 없었다. 그런데 어느 순간 내 실력 상승이 멈춘 채로 익숙한 코드에 로직만 바꿔서 작성하고 있다는 것을 느끼고.. 새로운 기술스택을 늘리기로 마음 먹었다! 그렇게 여러 후보들 중에 고른건.. FastAPI 였다!

왜냐면 일단 AI 모델을 돌리기 위해서는 파이썬 기반의 백엔드 서버여야 헀기 때문이다. 따라서 가능한 후보는 Django, Flask, FastAPI 정도가 남았었다. 이들의 성능 비교를 한 표를 발견했는데..?

Django의 성능은 처참 그 자체였다. Django를 또 하지 않기로 결심했으니 기왕 하는거 이름부터 빠르고, 실제로도 빠른 FastAPI를 하기로 결정했다! 다른 큰 이유는 없다ㅋㅋ

물론 아직 AI 모델이 완성되지도, 프런트가 완성되지도 않았지만 그래도 꽤나 타당한 이유로 FastAPI를 선택했으니 빠르게 정복(이라 쓰고 공식문서 중요한 내용 훑기를) 해보자!

나는야 공식문서맨

바로 공식문서로 가보자.

설치과정은 과감하게 생략하고 넘어가자. 내 로컬 환경은 다음과 같다.

  • Python 3.10.3
  • pipenv
  • fastapi 0.84
  • uvicorn 0.17.6

헬로월드

이 5줄만 쓰니까 바로 API가 생겼다 헬로월드는 늘 쉬워..

Django와 비교해서 보면 진짜 간단한 것 같긴하다. Django에서 class 기반의 View에 익숙해져 있다가, 함수형 View를 하니까 색다르다.

API 문서

Swagger이랑도 바로 연동이 돼서 코드만 써도 API 문서도 만들어준다! 근데 개인적으로 스웨거 불편하다고 생각해서 내가 따로 API 문서를 뽑아주는 편이긴 하다. 그래도 따로 설정 없이도 바로 연동해준다는 점은 좋은 것 같다!

Method 정의하기

Python 데코레이터로 함수형 View가 허용하는 HTTP 메소드를 허용할 수 있다!

N줄 요약

  1. Fast API 임포트해서
  2. 앱을 만들고
  3. 데코레이터로 메소드 허용해주고
  4. View 함수 작성해서
  5. 서버 실행하기!

정복완료?

다음 포스팅은 Path 파라미터, 쿼리 파라미터 받는 법 정복해보도록 하자..

profile
You'll see what I've become.

0개의 댓글