330.00 b

Description: This article covers a difference between Dango and FastAPI. Both ate famous backend framework for python. Main point is convention. Django has more strict convention..

#300#Applications#330#Backend#330.00#Django#330.00 b#Difference_between_Django_and_FastAPI

주제

Django와 FastAPI 중 어떤 것을 사용하는게 적절한가?

사용사례

Django의 경우 러닝커브가 큼
FastAPI는 러닝커브가 작음

Django의 경우 강력한 컨벤션으로 일관성유지, 단점으로는 그래서 형식이 제한됨
FastAPI는 자유로운 형식으로 사용, 그래서 시니어가 없는 경우 일관성과 특정 구조에 대한 이해없이 제작 될 수 있음

성능은 어느정도 차이가 나는 편이긴 하고 asnync와 같은 다양한 신기술들을 사용해 볼 수 있는게 FastAPI의 장점.
추가적으로 여러 설정들을 대신해주기 때문에 편하긴하지만, 해당 이해도를 높일 수는 없어 한계가 있음.

Django의 경우 컨벤션이 정해져있다보니 다른 회사의 다른 프로젝트에서도 크게 변하지 않고 사용가능
FastAPI의 경우 다른 회사나 다른 프로젝트 진행시 크게 번할 수 있음

Django의 자체 migration 기능활용하여 DB migration가능

사용 방법

학습

Django 4.0 tutorial
FastAPI 튜토리얼

두 프레임워크의 중요한 점은 ORM과 SQL의 관계.
테이블을 어떻게짜고 join을 어떻게 하느냐가 중요함.

예를들어 어떤데이터가 주어졌을 때 어떤결과를 원한다는 과제가 주어지면
자체적으로 필요한 콜럼과 이를위한 테이블을 짜고 Join관계를 고려하며, 데이터 특성에 따라 키나 값 속성을 설정하는 안목이 중요.
보통 ORM을 구현하는 것 보다는 SQL을 어떻게 짜서 ORM을 최적화 하는지가 백엔드 기술자로서 주목해야할 포인트.

예를 들어 테이블하나에 콜럼 한개만 만들고 모든 데이터를 json형태로 넣어버리는건 전혀 의도를 파악하지 못했다는 증거
왜냐하면 컬럼을 잘 설정할 경우 빠르고 빈번하게 접근할 수 있는 데이터를 한 번 트랜잭션이 발생할 때마다 모든 데이터를 가지고 와서 무거워지기 때문.