[Python] Django vs FastAPI

Hojun Song ·2023년 8월 26일
0

새로운 프로젝트에 합류하게 되었다. 실제 서비스를 목표로 팀이 구성되었고, 나는 백앤드 개발자로 합류하게 되었다. 나는 고작 프로젝트 3-4개 정도 해본 정도의 초초초 주니어 백엔드 개발자이기에 부담감이 많이 컸지만, 취직을 해야지라는 목표보다, 어떤 서비스라도 만들어 내는 백앤드 개발자가 목표를 잡았기 때문에, 내 역량으로 충분히 가능하다는 것을 보여주고 싶었다.

창업, 즉 스타트업이기에 백앤드 웹 프레임워크를 정하기에 고민이 들었다.

  1. 어떤 언어를 선택할 것인가?

  2. Full vs Micro

트립스케치라는 프로젝트 에서 코틀린 JVM의 스프링 부트를 이용한 웹 개발을 진행한 적이 있었는데, 처음으로 사용한 풀스택 웹프레임워크였지만, 개발에 유연한 MongoDB, 그리고 자바가 아닌 코틀린으로 개발해서 그런지, 오히려 마이크로한 웹프레임워크를 사용했을 때의 경험보다 생산성이 낮다고 판단하지 않았다.

그럼에도 JVM 언어가 가지고 있는 한계, 여전히 다른언어에 비해서 불편한 라이브러리 툴 Gradle, JVM 특유의 메모리 점유율 등, 다른 풀 스택 프레임워크는 어떤 느낌일까라는 궁금증이 떠올랐다.

일전에, FastAPI를 통해, 백앤드 서버를 구축한 경험이 있다.

FastAPI는 다음과 같은 장점을 가지고 있었던 것 같다.

  1. 파이썬 기반의 웹 프레임워크지만, 비동기를 지원하는 등 빠른 서버를 제공하는 것 같았다.

  2. 문서 자동화 기능은 충분히 매력적이다. 주석 등이 거의 필요하지 않고 대부분을 만들고 테스트할 수 있었다.

  3. 파이썬은 다른 언어에 비해 생산성이 높은 언어라고 생각된다. 어떤 언어라도 깊게 파고 들면 들수록 어렵지만, 그래도 파이썬이 가지고 있는 낮은 학습곡선은 큰 장점이라고 생각한다

단점은 다음과 같다.

  1. 비교적 신생 웹프레임워크라 공식문서나 자료가 적다.

  2. 나름 풀스택과 마이크로의 중간위치를 점하려고 했다는 생각이 들었지만, 이것도 저것도 아니라는 포지션이 스프링과 Express.js를 경험해본 나한텐, 애매하다라는 생각이 들었다.

Python의 대표적인 풀 스택 프레임워크인 Django는 내가 파악하기로 다음과 같은 장점이 있었다.

  1. 보일러 플레이트라는 원칙에 다양한 기능을 이미 프레임워크 단에서 제공

  2. Admin 페이지의 제공해서 생산성 향상

단점은 다음과 같다.

  1. 파이썬 특유의 느린 속도

  2. 또한 우리 서비스는 채팅서비스를 제공해야하는데, 비동기 기능이 완벽하지 않다.

다음 편은, 결국 어떤 프레임워크를 선택하게 되었고 그 이유와 과정을 이야기하는 시간이 되었으면 좋겠다.

profile
A web backend developer, let's share information and problem solving!

0개의 댓글