Django

[Django] #6 장고 설계 철학 MTV pattern

kinggoddino 2024. 8. 13.

소프트웨어들에는

구조에도 공통점이 있고, 문제Error에도 공통점이 있다!

 

소프트웨어의 디자인패턴

전세계의 개발자들이 개발을 하다보니 비슷한 문제를 해결하는 공통적인 구조를 발견

ex) 클라이언트 - 서버 (요청,응답) 구조 역시 소프트웨어 디자인 패턴 중 하나임

즉, 자주 사용되는 소프트웨어의 구조를 마치 건축공법처럼 일바화 해둔 것!

장점: 특정 구조에 대한 설계를 빠르게 할 수 있음.,

      공통 문제에 대해 재사용 가능한 해결 방법을 제시할 수 있음.

 

 

Django의 디자인패턴

MTV pattern 이라고 함.

== MVC 디자인 패턴을 살짝 변형한 것임.

(원래 mvc 라는 패텅이 있는데 장고에 맞게 살짝 변경(

 

MVC

Model - View - Controller 세가지 구조

데이터와 논리 구조를 제어하는 설계로, 널리 사용되는 디자인 패턴 중 하나

(하나의 큰 소프트웨어를 나워서 생각해보면 어떨까? 라는 생각으로부터 기반)

 

Model : 데이터와 관련된 로직을 관리

View : 레이아웃과 관련된 화면을 처리

Controller : Model과 View를 연결하는 로직을 처리

 

왜 이렇게 분리하는건지?

관심사를 분리하자!

각각의 부분이 독립적으로 변함 -> 생산성도 증가하고 유지보수도 용이

 

MTV

Model : DATA 담당

데이터와 관련된 로직을 처리. 데이터 구조 정의, 데이터베이스 기록 관리

 

(View)Template : 화면(레이아웃, 보여지는 부분) 담당

레이아웃과 화면상의 로직을 처리, UI 와 레이아웃

 

(Controller)View : M과 T의 중간 담당

메인 비즈니스 로직을 담당.

클라이언트의 요청에 대해 처리를 분기함

ㄴ 보여지는걸 요청하면 T로 보내고, data를 요청하면 M으로 보내고, 외부로 요청하기도 함

ㄴ 결과를 가져온 후 응답을 만들어서 클라이언트에게 전달.

 

 

 

 

'Django' 카테고리의 다른 글

[Django] #8 장고 Template System  (0) 2024.08.14
[Django] #7 장고 Template 시작하기  (0) 2024.08.13
[Django] #5 요청과 응답  (0) 2024.08.12
[Django] #4 클라이언트와 서버  (0) 2024.08.12
[Django] #3 장고 앱  (0) 2024.08.12