디자인 패턴
자주 사용되는 소프트웨어의 구조와 문제 해결 방법을 일반화한 개념
디자인 패턴을 통해 소프트웨어 개발 과정에서 공통적으로 발생하는 문제를 효과적으로 해결 가능
클라이언트-서버 구조도 하나의 디자인 패턴
소프트웨어에서의 공통 구조: 디자인 패턴
소프트웨어 개발 시 다양한 응용 프로그램을 만드는 과정에서 공통적인 구조와 문제를 발견
→ 이를 해결하기 위해 디자인 패턴이 탄생
설계를 빠르고 효율적으로 진행
공통 문제에 대해 재사용 가능한 해결책을 제공
개발 생산성을 높이고 유지보수를 쉽게 함
Django와 디자인 패턴
Django 프레임워크는 설계 철학에 따라 디자인 패턴을 활용 → MTV 패턴 구조를 채택
MVC 패턴
MVC는 소프트웨어를 Model, View, Controller의 세 가지 부분으로 나누는 디자인 패턴
Model: 데이터와 관련된 로직 처리
View: 사용자 인터페이스(UI)와 레이아웃을 담당
Controller: Model과 View 사이의 상호작용(비즈니스 로직)을 처리
• 관심사 분리로 각 구성 요소를 독립적으로 개발 가능
• 유지보수와 협업이 용이
Django의 MTV 패턴
MTV 패턴은 MVC 패턴을 Django의 방식으로 변형한 것 (이름과 역할에 차이가 있음)
MVC | MTV |
Model | Model |
View | Template |
Controller | View |
Model
데이터 관리
• 데이터와 관련된 로직 처리
• 데이터베이스 구조 정의 및 관리
Template
UI 및 레이아웃
• 사용자 인터페이스(UI)와 레이아웃 처리
• 화면에 표시될 내용을 정의
View
요청 처리와 응답 생성
• 비즈니스 로직을 담당
• 클라이언트 요청을 처리하고 적절한 응답 생성
MTV 패턴 vs. MTV 아키텍처
구분 | MTV 패턴 | MTV 아키텍처 |
의미 | 특정 상황에서 반복적으로 사용되는 설계 방식 또는 문제 해결 방법을 의미 | Django 프레임워크의 설계 철학을 구체화하고 전체적인 구성 방식을 설명 |
설명 방식 | Django에서 사용되는 디자인 패턴, 소프트웨어의 구조를 Model, Template, View로 나누어 설명 | MTV 패턴이 실제로 구현되는 방식과 Django의 설계 철학을 반영한 구조적 설계를 설명 |
강조점 | 문제 해결 방식과 구조적 개념, 재사용성 및 일관성에 초점 | 전체 시스템의 구현 방법과 구성 요소 간의 상호작용에 초점 |
특징 | 일반적 원칙을 통해 코드 설계와 로직 분리로 생산성 향상 강조 | MTV 패턴을 기반으로 실제 웹 애플리케이션의 동작과 구조 구현을 강조 |
기본적으로 같은 구조를 설명하지만, “패턴”은 설계의 일반적 원칙을 강조, “아키텍처”는 시스템의 구체적 구성과 구현을 설명하는 데 사용
Django에서 이 두 용어가 상황에 따라 교차 사용될 수 있지만,
MTV 아키텍처는 더 큰 그림을, MTV 패턴은 설계 철학의 원칙을 말할 때 적합
'∟Framework > ∟Django' 카테고리의 다른 글
Django - Template (0) | 2025.01.09 |
---|---|
Django - Request & Response (0) | 2025.01.07 |
Django - Client↔Server (2) | 2025.01.07 |
Django - App (1) | 2025.01.06 |
Django - Project (3) | 2025.01.03 |