∟Framework/∟Django

Django

최 수빈 2024. 12. 30. 16:32

 

 

Django

 

Python 기반으로 작성된 웹 프레임워크

웹 개발을 위한 모든 필수 도구를 포함한 풀스택 프레임워크

웹사이트의 백엔드(서버 측 논리)와 프론트엔드(HTML, CSS, JavaScript 등)을 효율적으로 연결할 수 있도록 돕는 도구이자 환경

 

 

 

Django의 구조

 

Django가 따르는 MTV 아키텍처

 

 Model

데이터베이스와 상호작용하는 부분

데이터를 저장하거나 가져올 때 사용하는 로직을 포함

예: 사용자 정보, 게시글 데이터 등을 정의

 

Template

HTML, CSS, JavaScript와 같은 프론트엔드 레이아웃을 구성하는 부분

데이터를 사용자에게 보여주는 역할

 

View

사용자의 요청을 처리하고 Model과 Template 사이를 연결하는 역할

비즈니스 로직을 작성하거나 데이터를 가공한 뒤, 결과를 반환

 

 

 

Why Django?

 

DRY(Don’t Repeat Yourself) 원칙

코드 중복을 최소화하고 재사용성을 극대화하는 DRY 원칙을 따름

 

모든 것이 갖춰진 프레임워크

보안, 관리자 인터페이스(Admin Panel), 인증(Auth), ORM 등 웹 개발에 필요한 대부분의 기능을 내장

 

풍부한 레퍼런스

상대적 오래 사용된 프레임워크로, 방대한 커뮤니티와 레퍼런스를 제공

 

검증된 프레임워크

대규모 서비스에서도 사용되는 안정성과 확장성을 입증

 

 

 

Django가 적합한 프로젝트

 

웹 애플리케이션 (블로그, 전자상거래, 포털 사이트 등)

데이터 관리가 중요한 프로젝트 (회원관리 시스템, 관리자 대시보드 등)

빠르게 프로토타입을 만들어야 하거나 복잡한 기능이 필요한 프로젝트

 

 

 

 

Flask/ Django/ FastAPI

  Flask Django FastAPI
철학 경량, 확장 가능 모든 기능 포함, 배터리 내장 현대적, 빠른 비동기 처리 
아키텍처 자유로운 구조 MTV(Model-Template-View) 단일 파일 API 설계
기본 기능 최소한의 기능 제공 관리자 페이지, ORM, 인증 등 내장 자동 문서화, 타입 힌트 데이터 검증
보안 플러그인과 커스터마이징 중심
직접 다 구현 해야됨
내장 보안 기능(XSS, CSRF 등)
이미 다 준비 되어 있음
추가 기능은 필요 시 확장
OAuth2, JWT, 데이터 검증(Pydantic 활용)을 빠르게 설정 가능
CSRF 방어는 제공 X 
(자동화와 최신 기술로 도움
보안 설정 편리, 일부 기능 직접 보완 필요)
확장성 자유롭지만 대규모 프로젝트에 어려움 대규포 프로젝트에 적합 대규모 API 서버에 적합
커뮤니티 풍부 매우 풍부 신생, 점점 성장 중
비동기 지원 기본 지원하지 않음(ASGI 추가 필요) 기본적으로 비동기 지원

 

 

 

기타 Python 웹 프레임워크

 

Tornado

특징: 비동기 네트워크 라이브러리와 웹 서버를 포함하는 프레임워크

주요 장점:

수십만 개의 연결을 동시에 처리할 수 있는 강력한 비동기 처리 성능

WebSocket 지원에 최적화되어 있어 실시간 애플리케이션(예: 채팅, 알림)에 적합

적합한 용도:

실시간 웹 애플리케이션

대규모 비동기 네트워크 애플리케이션

 

CherryPy

특징: 매우 가벼운 마이크로 프레임워크로, Python 객체 지향 스타일을 따름

주요 장점:

최소한의 설정으로 빠르게 시작 가능

WSGI 지원 및 독립형 웹 서버 제공

적합한 용도:

간단한 RESTful API 개발

경량 애플리케이션

 

Bottle

특징: 단일 파일로 실행 가능한 마이크로 프레임워크

주요 장점:

배포가 매우 간단하며, 파일 크기가 작음

내장 HTTP 서버, 템플릿 엔진, 라우팅 제공

적합한 용도:

소규모 웹 애플리케이션

임시 테스트용 서버

 

Pyramid

특징: 확장 가능성과 유연성을 제공하는 프레임워크

주요 장점:

작은 프로젝트부터 대규모 애플리케이션까지 확장 가능

URL 라우팅과 인증 기능 내장

적합한 용도:

대규모 애플리케이션

복잡한 URL 구조를 가진 웹사이트

 

Falcon

특징: 고성능 API 개발에 최적화된 프레임워크

주요 장점:

REST API 개발에 초점을 맞춤

최소한의 종속성으로 높은 성능 제공

적합한 용도:

고성능 RESTful API 개발

경량 API 서버 구축

 

Web2py

특징: Django와 비슷한 풀스택 프레임워크

주요 장점:

배포가 간단하고, 보안 기능이 기본 내장됨

웹 기반 IDE를 제공하여 프로그래밍 환경을 단순화

적합한 용도:

빠른 프로토타이핑

데이터베이스 중심 애플리케이션

 

Sanic

특징: FastAPI와 유사하게 비동기 HTTP 서버에 초점

주요 장점:

asyncio 기반으로 설계되어 비동기 처리가 빠름

WebSocket, 스트리밍 같은 비동기 작업에 최적화

적합한 용도:

실시간 애플리케이션

API 서버

 

Hug

특징: REST API 개발에 특화된 프레임워크

주요 장점:

API 설계를 간단히 하고, 문서화를 자동 생성

타입 힌트를 기반으로 한 깔끔한 API 작성 가능

적합한 용도:

RESTful API 구축

데이터 중심 프로젝트

 

Dash

특징: 대시보드와 데이터 시각화 애플리케이션에 특화

주요 장점:

Pandas, NumPy 등 데이터 과학 라이브러리와 연동이 쉬움

데이터 분석 및 보고용 대시보드 개발에 적합

적합한 용도:

데이터 시각화

분석 대시보드

 

AIOHTTP

특징: HTTP 클라이언트/서버를 위한 비동기 라이브러리

주요 장점:

asyncio 기반으로 비동기 작업이 강력함

요청/응답 객체를 통한 직관적인 HTTP 처리

적합한 용도:

비동기 기반 웹 애플리케이션

대규모 비동기 API 서버

'∟Framework > ∟Django' 카테고리의 다른 글

Django - Request & Response  (1) 2025.01.07
Django - Client↔Server  (2) 2025.01.07
Django - App  (1) 2025.01.06
Django - Project  (3) 2025.01.03
Django 개발 환경 구성  (9) 2025.01.02