규도자 개발 블로그

젖과 꿀이 흐르는 기회의 땅. FastAPI 본문

Python/FastAPI

젖과 꿀이 흐르는 기회의 땅. FastAPI

규도자 (gyudoza) 2022. 2. 12. 14:33

python webfamework하면 떠오르는 양대산맥이 있다. 풀스택프레임워크 Django와 경량화프레임워크 Flask. 하지만 이 둘을 제치려고 하는 엄청난 잠재력을 가진 framework가 하나 있다. 바로 fastAPI.

 

fastapi공식홈페이지

 

다른건 차치하고서라도 이름에서 볼 수 있다시피 fast를 추구하는 프레임워크이다. tiangolo라는 이름으로 활동하고 있는 개발자가 개인으로 시작한 프로젝트인데 2018년 12월 8일에 0.1.0버전으로 첫 릴리즈가 됐고 만3년째를 지나 4년째를 향해 달려가고 있는 지금 아직도 0.73.0이다.

 

가장 괄목할만한 점은 gitstar 갯수이다. 글을 쓰고 있는 현재 gitstar 갯수는 다음과 같다.

framework 최초릴리즈일 현재(2022.02.12) gitstar
Django 2010.05.18 (1.0.1) 62.3k
Flask 2010.04.16 (0.1) 57.9k
FastAPI 2018.12.08 (0.1.0) 41.6k

이제 초등학교를 졸업하려하는 Django와 Flask의 gitstar갯수를 가파르게 따라잡고 있다. 그래프로 보면 다음과 같다.

위 그래프는 https://star-history.com/에서 [사용자명/저장소명] 형식으로 검색하면 확인해볼 수 있다. 여기도 오픈소스 프로젝트의 트렌드를 파악하기에 굉장히 좋은 곳이므로 알아두면 도움이 된다.

 

 

모놀리식보다는 마이크로서비스형태가 각광받고 있는 요즘 fastapi는 엄청난 기회의 땅이라는 생각이 든다. 아직 1점대도 아니고 0점대임에도 불구하고 각종 채용사이트의 JD에서 심심찮게 목격할 수 있다. 그리고 실제로 프로젝트에 적용해보면서 드는 생각인데 아직 부족한 부분이 정말 많다. 아니, 부족한 부분이라고 하기보단 "기여할 수 있는 부분"이 정말 많다. 나도 필요한데 아직 없는 기능이 있어서 contribute하기 위해 내 저장소에 fork를 따둔 상태이다.

 

 

파이썬이라는 언어의 역린이라고도 할 수 있는 "속도"에 있어서 어느정도 고민을 해결해줬던 sanic이나 aiohttp도 falcon도 이정도 성장세를 보이진 못했다. 사용해보진 않았지만 django와 flask가 잡고 있던 사용자친화적인 환경이 sanic, aiohttp, falcon등에서는 해결하지 못했고 fastAPI에서 해결된 게 아닐까 하는 추측만 있을 뿐이다.

 개인적인 경험으로 비춰봤을 때에는 Django에서 view를 상속받아 로직을 작성하는 형태가 동기화된 프로세스에는 간결하고 쉽게 로직을 작성할 수 있을 뿐만 아니라 커스터마이징도 쉬워서 정말 편하고 좋았지만 여기에 이제 비동기화 프로세스를 끼얹으려고 하면 python 특성상 django library 안에 있는 최상위 클래스까지 커스터마이징을 해야지 작동이 되는 지라 보통 celery를 이용하곤 했는데 이게 또 서로 변수를 주고받는 부분에 있어서 불편한 부분이 있어 javascript로 같은 로직을 구현할 때보다 꽤 골치아팠던 적이 있다. 하지만 fastAPI는 애초에 모든 endpoint가 async가 붙은 채로 작성돼있어서 비동기 프로세스를 적용하는 데에 있어서 보다 유연하게 대처할 수 있다. 비동기프로세스가 대세인 요즘의 웹 트렌드에 비춰봤을 때 fastAPI의 이런 방향은 정말 탁월한 선택이 아닐 수 없다고 생각했다.

 

 

그리고 이게 왜 젖과 꿀이 흐르는 기회의 땅이냐, 그건 바로 아직 관련 강의나 팁들이 적기 때문이다. 받고 있는 주목도나 성장세에 비해 단체가 아닌 개인이 관리하는 프로젝트이다보니 릴리즈 텀도 느리고 이슈관리도 잘 안 되는 느낌이다. 글을 쓰고 있는 현재 919개의 open issue와 462개의 PR이 대기중이다.

 

 

차세대 python webframework가 무엇이냐 하고 물으면 당당히 fastAPI라고 말 할 수는 없다. 하지만 지금 많은 인기를 얻고 있는 것은 사실이며 수요도 충분하고 MSA가 도입되면 될수록 이렇게 경량화되고 빠른 속도를 가진 프레임워크가 각광받을 것이다. 그리고 특히 기여할 수 있는 부분들이 많다. 1점대 정식 릴리즈도 되지 않은 어떤 프레임워크가 이렇게 폭발적인 반응을 보여줬나. 개발자들이 그만큼의 가능성을 여기에서 보고 있다는 반증이 아닐까 한다.

 

 

 

차세대 파이썬 웹프레임워크에 기여할 수 있는 기회. 지금 열려있다.

 

Comments