📗 Django
💡 다양한 응용 소프트웨어를 만들다 보니 공통적인 구조와 문제가 발생한다.
💡 이때, 구조에도 공통점이 있고, 문제에도 공통점이 존재한다.
== 패턴(Pattern)이 보인다.
소프트웨어의 디자인 패턴
전 세계의 개발자들이 개발을 하다 보니 비슷한 문제를 해결하는 공통적인 구조를 발견한다.
- 클라이언트-서버 역시 소프트웨어 디자인 패턴 중 하나이다.
디자인 패턴이란?
- 자주 사용되는 소프트웨어의 구조를 마치 건축 공법처럼 일반화해둔 것
디자인 패턴이 필요한 이유
- 특정 구조에 대한 설계를 빠르게 할 수 있다.
- 공통적으로 발생하는 문제에 대해 재사용 가능한 해결 방법을 제시할 수 있다.
∴ 프로그래머가 시스템을 디자인할 때 발생하는 공통된 문제를 해결하면서 진행할 수 있는 형식화된 관행이다.
Django의 디자인 패턴
== MTV Pattern
- 기존에 있던 MVC Design Pattern을 살짝 변형하여 쓰고 있다.
MVC 디자인 패턴
- Model - View - Controller 이렇게 3파트로 나누어져 있다.
- 데이터와 논리 구조를 제어하는 설계
- 널리 사용되는 디자인 패턴 중 하나이다.
- 하나의 큰 소프트웨어를 나눠서 생각해 보기 위해서 등장한 패턴이다.
MVC 각각의 역할
- Model : 데이터와 관련된 로직을 관리
- View : 레이아웃과 관련된 화면을 처리
- Controller : Model과 View를 연결하는 로직을 처리
💡 왜 MVC로 분리하는 걸까?
① 관심사를 분리하기 위해서다.
② 각 부분을 독립적으로 개발할 수 있어서 생산성이 증가하고 유지보수가 쉬워진다.
③ 다수의 멤버가 동시에 개발하기도 용이하다.
Django의 MTV Pattern
MTV Pattern
Model
- MVC에서의 Model
- 데이터와 관련된 로직을 처리
- 데이터 구조 정의, 데이터베이스 기록 관리
Template
- MVC에서의 View
- 레이아웃과 화면상의 로직을 처리 (UI, 레이아웃)
View
- MVC에서의 Controller
- 메인 비즈니스 로직을 담당
- 클라이언트의 요청에 대해 처리를 분기하는 역할
- DB도 조회하고 외부로 요청하기도 한다.
- 응답을 만들어서 클라이언트에게 전달한다.
↓ 그림으로 정리된 MTV
'공부 > Django 공부' 카테고리의 다른 글
[Django] Template System, DTL 문법, 템플릿 상속 (0) | 2025.01.12 |
---|---|
[Django] ⭐️⭐️⭐️ urls.py, views.py 및 Templates 처리하기 ⭐️⭐️⭐️ (0) | 2025.01.11 |
[Django] 클라이언트 - 서버 구조 이해하기 (0) | 2025.01.10 |
[Django] Django 앱(App) 생성 및 등록하기 (0) | 2025.01.10 |
[Django] ⭐️Django 프로젝트(Project) 시작⭐️ (0) | 2025.01.04 |