본문 바로가기
Django

Django + FastAPI 혼합하여 백엔드 만들기 (개요)

by Django_ 2022. 6. 8.
반응형

이번에는 공부 차원에서 실험적인 포스팅을 진행할까 합니다.

RESTful API 백엔드 개발을 FastAPI만 사용하려다보니 몇가지 걱정이 앞섰습니다.

 

1. RESTful API 서비스에서 웹 서비스까지 추가 확장될때 세션 구현을 어떻게 하지?

2. Django의 장점인 미들웨어를 얼마나 직접 구현해야 하지?

3. 마이그레이션을 잘 관리할 수 있나?

4. 종속성이 없는 FastAPI 구조를 일관되게 끝까지 잘 유지할 수 있나?

 

뭐 생각해보면 더 많겠을수도있고 제가 언급한게 아니라고 생각할 수도 있을것 같습니다.

개인적으로는 위에 언급된 부분을 처음부터 고민한것은 아닙니다.

각자의 장점이 될만한것만 잘 조합해서 사용해보면 어떨까?가 궁금증에서 해당 포스팅의 시작이 되었습니다.

 

그렇다면 바로 mkdir 해야죠

우선 이번 포스팅에서는 계획만 나열 할 예정입니다.

 

먼저 공통으로 바라볼 Database를 세팅합니다.

모델링에는 Django를 사용하고 RESTful API server의 역할은 FastAPI가 진행합니다.

 

핵심 역할을 나누어보면 

Django의 역할 FastAPI의 역할
- Auth 사용 (login, logout, password change....)
- Migration 사용
- admin 사용
- async RESTfull API serving
- swagger (API 문서화)

 

FastAPI의 경우 Sqlalchemy orm 과 core를 잘 섞어서 사용해야 될것으로 보여집니다.

 

각자의 장점으로 확장성있게 뻗어나갈 수 있지 않을까 싶어 진행해보게 되었습니다.

오히려 관리해야할 포인트가 증가할것인지 오히려 확장성 면에서 좋을지는 예측이 어려운것 같습니다.

저의 예상은 아래 이미지처럼 될 수 있지 않을까 생각을 합니다

이어서 연재 형식으로 포스팅을하며 최종편에서 레퍼지토리를 공개하도록 할 예정입니다.

반응형

댓글