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 |