∟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 추가 필요) 기본적으로 비동기 지원

 

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

Django - 프로젝트  (2) 2025.01.03
Django 개발 환경 구성  (9) 2025.01.02