본문 바로가기
Info

파이썬 웹 프레임워크 비교하기, 장고 vs 플라스크

by 별별 리뷰어 2021. 3. 11.
반응형

파이썬 웹 프레임워크, 장고 vs 플라스크

파이썬

웹 프레임워크는 웹 개발자들이 개발을 최대한 쉽게 할 수 있도록 합니다. 그중에서 가장 인기 있는 프로그래밍 언어 중 하나인 Python은 백엔드 개발 분야에서 많은 기여를 했습니다.

 

왜냐하면 파이썬에는 많은 웹 프레임워크가 있기 때문입니다. 이러한 프레임워크는 매크로 또는 마이크로 범주로 나뉩니다. TurboGears, Web2Py, Pyramid 및 Django는 Python의 매크로 웹 프레임워크 중 일부입니다. 반면 Flask, CherryPy및 Bottle은마이크로프레임워크의 예입니다.

 

그러나 두 범주에서 가장 많이 사용되는 예는 장고(Django)와 플라스크(Flask)입니다. 이러한 이유로, 사람들은 두 가지 프레임워크를 모두 살펴보고 어떤 것이 자신에게 더 효과적인지 판단을 해야 합니다. 둘 다 동일한 Python 프레임워크임에도 불구하고, Django와 Flask의 구조는 완전히 다릅니다. 그렇기 때문에 이들의 아키텍처가 사용자로서의 선택에 어떤 영향을 미치는지 살펴보겠습니다.

 

장고의 구조

파이썬 장고

Django는 보다 복잡한 Python 기반 웹 앱을 구축하는 데 사용되었기 때문에 확장성을 제공하는 강력한 아키텍처를 가지고 있습니다. MVT(Model-View-Template) 구조로 전체 스택 개발을 위한 완벽한 프레임워크입니다. 따라서 웹 개발의 프런트 엔드 및 백엔드 측면을 파악하고 파이썬을 서버측 언어로 사용할 수 있는 방법을 찾고 있다면 Django를 고려해 보는 것이 가장 좋습니다.

 

Django는 다양한 개발 패키지와 사전 생성된 Python 파일 구조를 이용할 수 있을 뿐만 아니라 ORM(Object-Relational Mapper)을 내장하여 다양한 데이터베이스에 유연하게 액세스할 수 있습니다. 기본적으로 데이터베이스에서 개체를 삽입하거나 호출하기 위해 많은 쿼리를 작성할 필요가 없습니다.

 

Django 모델을 통해 테이블을 생성할 때 개별 개체 내에서 데이터베이스에 있는 테이블의 속성만 정의하면 됩니다. 그런 다음 이러한 테이블을 만드는 원시 쿼리는 테이블을 데이터베이스로 이동한 후 마이그레이션 파일에 자동으로 커밋됩니다.

 

따라서 Django의 ORM은 데이터베이스에 대한 별도의 쿼리를 작성할 때 제공되는 추가 작업을 처리할 수 있도록 도와줍니다. 또한 타사 데이터베이스 주입을 구성할 걱정 없이 웹 사이트가 작동하도록 하는 데 더 중점을 두고 싶다면 Django를 선택하는 것이 좋습니다.

 

플라스크의 구조

파이썬 플라스크

플라스크는 장고와 비교하여 최소한의 구조를 제공합니다. 이것은 장고만큼 복잡하지 않은 마이크로 프레임워크입니다. Django의 MVT 아키텍처와 달리 Flask는 보다 일반적인 MVC(Model-Views-Controller) 구조를 따릅니다.

 

그러나 플라스크의 뷰(Views)와 컨트롤러(Controller)는 각각 Django의 템플릿과 뷰와 동의어입니다. 즉, 장고의 관점 대신 플라스크에 콘트롤러가 있다는 뜻입니다. 그리고 플라스크의 뷰에는 장고 템플릿의 기능을 차지합니다. Django와 달리 가상 환경에 Flask를 설치하고 프로젝트를 열면 빈 파일 디렉토리가 나타납니다. 즉, 수동으로 파일을 만들어야 합니다.

 

따라서, Django의 복잡한 구조를 피하려면 Flask를 고려하는 것이 좋습니다. 하지만, 플라스크는 가볍기 때문에 장고만큼 많은 내장 패키지를 제공하지 않습니다. 플라스크의 ORM 기능을 사용하려면 SQLAlchemy라는 타사 데이터베이스 주입 패키지가 필요합니다.

 

Flask에는 API 빌드를위한 REST 확장 기능도 있지만 Django가 제공하는 모든 기능을 갖춘 내장 API 구조는 여전히 제공하지 않습니다. 그러나 일반적으로 두 프레임 워크를 쉽게 선택할 수 있다는 점을 살펴보면 Flask는 초보자에게 더 친숙합니다.

 

그리고 Flask에서 대부분의 연결을 만들고 스스로를 구조화하기 때문에 Python을 사용한 웹 개발 워크 플로에 대한 기본적인 이해를 제공합니다. Django와는 달리, 파일 연결 방식에 대한 제어권을 잃지 않고 의도 한대로 빌드하는 데 초점을 맞춘 직접적인 프레임 워크입니다.

결론

이미 파이썬에 대한 지식이 많지 않다면 플라스크를 배우는 것이 완벽한 시작 방법 일 수 있습니다. 게다가 플라스크에서 코드를 작성하는 것은 대부분 순수한 파이썬을 작성하는 것과 같습니다.

 

그렇지만, 배우기 쉽고 가벼움에도 불구하고 플라스크는 인기 측면에서 장고보다 뒤처져 있습니다. 장고를 사용한 웹 앱 개발의 견고성, 안정성, 빠른 개발은 대부분의 개발자가 선택하는 프레임 워크 인 이유 중 일부입니다.

 

그리고 Stack Overflow에 대한 추세를 살펴보면 장고는 플라스크보다 활발한 커뮤니티를 갖고 있습니다. 즉, 문제가 발생할 때 도움을받을 수있는 대규모 장고 커뮤니티가 있다는 것 입니다.

 

반응형

댓글