개발/Django

[Django] MTV 디자인 패턴

p-code 2024. 3. 18. 20:51

MTV(Model - Template - View)

장고 프레임워크에서 사용하는 디자인 패턴으로, 프로젝트를 데이터 처리(Model)와 UI처리(Template), 인터페이스 처리(View) 세 부분으로 나누어 개발하는 방법이다.
 
스프링 프레임워크에서의 MVC(Model - View - Controller)와 1대1 대응한다는 면에서 발음상 MVT라고 부르기도 하지만 여기서 View의 의미는 MVC에서 UI 처리를 맡는 View가 아닌 인터페이스 처리를 하는 Controller의 역할을 하므로 MTV패턴이라고 한다.  
 

URL conf

  •  URL과 호출할 View의 매핑 정보를 가지고 View를 호출하는 역할을 한다.

View

  • 정의된 Model(데이터)와 Template(뷰)를 적절히 호출하여 결과물을 생성하고 호출한 웹 클라이언트로 반환한다.

Model

  • 데이터베이스로부터 데이터를 CRUD 할 수 있는 방법을 제공한다. 이때 ORM방식을 사용한다.

Template

  • 웹에서 사용할 html 양식을 제공한다. 이 양식은 장고 템플릿 문법으로 구성되어 있으며, View가 템플릿에 데이터를 추가하여 렌더링하면 인터프리터를 통해 완성된 html을 생성하여 반환한다.