Development Study/Backend

[배경지식] Django, Flask, FastAPI의 차이점을 알아보자

  • -
728x90

Python을 이용하여 단기 프로젝트를 진행하는 사람들에게는 한 번씩은 거쳐가는 고민거리가 있다.

 

Django? Flask? 아니면 요즘 유행하는 FastAPI??

어떤 것을 선택해야 할까?

 

이 글은 개발에 필요한 기초지식을 공부하며 정리한 내용을 다룬 글이다


들어가기 전, 도대체 이것들은 무엇인가?

프레임워크

이 글에서 다루게 될 프로그램들은 모두 프레임워크라 불리는 것으로,

목적에 따라 효율적으로 구조를 짜놓는 개발 방식을 지원해주는 프로그램이다

 

쉽게말해 코딩에 필요한 완성된 기능들을 지원해주어 개발 시간과 노력을 감축시킬 수 있다는 장점을 가지고 있다

예시로는 로그인, 회원가입, CRUD 등이 있다


Django

  • 이 글에서 다루는 3가지의 프로그램 중 가장 넓은 생태계를 가지고 있는 프레임워크이다
  • 3가지 중 가장 많은 사람들이 사용하고 있다
    • -> 커뮤니티의 규모가 넓어 오류에 대한 해결책을 빠르게 얻을 수 있다
  • 프로그램에 기본적으로 포함되어 있는, 지원하는 것들이 많아 무거운 편이다
  • MVC 패턴 기반 MTV(Model-View-Controller)를 기반으로 하였다
  • 쉬운 DB 관리를 위해 프로젝트를 생성하면서 관리자기능을 제공한다
  • 쉬운 난이도의 URL 파싱 기능을 지원한다
  • 동일한 소스코드에서 다른 나라에서 용이하도록 번역, 날짜/시간/숫자 등의 포맷 타임존 지정 등의 기능을 제공한다
  • 많은 기능과 라이브러리들을 보유하고 있지만 그에대한 각각의 정보를 얻어내어야 하기에 까다롭게 느껴질 수 있다

Flask

  • 파이썬으로 작성된 마이크로 웹 프레임워크
  • 간결한 유지, 확장이 가능하다
  • 굉장히 짧은 코드만으로도 완벽하게 동작하는 웹 프로그램을 만들 수 있다
  • 확장성 있는 설계가 가능하기에 다양한 모듈을 이용하여 원하는 대로 만들 수 있다
  • 너무 많은 모듈이 필요한경우엔 모든 것을 지원해주는 Django보다 효율이 떨어질 수 있다

FastAPI

  • 이름값: 빠름
  • NodeJS와 Go에 필적하는 성능
  • 사용가능한 가장 빠른 프레임워크 반열에 든다
  • 코드 작성속도 200%~300% -> 기능 개발 속도 증가
  • 적은 버그 생성량
  • 모든 곳에서 자동완성, 디버깅 시간 감소
  • 쉽고 문서 읽기 시간이 적음
  • 코드 중복 최소화, 각 매개변수 선언의 여러 기능
  • 문서 자동화로 인해 실무에서 채택되기도 한다
  • 서버와 데이터 처리의 속도가 굉장히 빠르다

정리 - 주관적인 의견(이런 사람들에게 추천합니다)

  •  Django
    • 굉장히 넓고 깊은 본격적인 서비스를 만들고 싶다
    • 많은 사람들과 교류하며 정보를 얻으면서 개발을 하고 싶다
    • 취업을 파이썬을 이용한 백엔드 분야로 하고 싶다(타 분야에 비해 구인인원 2배 이상)
  • Flask
    • 짧은 기간 안에 완벽하게 작동하는 간단한 서비스를 만들고 싶다
    • 파이썬 백엔드 프레임워크를 입문한지 얼마 되지 않아 웹 구조를 파악하며 개발하고 싶다
  • FastAPI
    • 비동기 처리를 이용하여 빠른 서비스를 구현하고 발전가능성을 보고 있다
    • 내 웹사이트와 서비스가 느리게 동작하는 것을 도저히 내 눈으로 볼 수 없다
    • 대용량 트래픽을 관리해야 하는 프로젝트를 진행하려 한다

End

 

 

참고자료

더보기

 

 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.