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 추가 필요) | 기본적으로 비동기 지원 |
'∟Framework > ∟Django' 카테고리의 다른 글
Django - 프로젝트 (2) | 2025.01.03 |
---|---|
Django 개발 환경 구성 (9) | 2025.01.02 |