MVC vs MVT

Sang Jun Park·2020년 12월 21일
0

웹 개발을 공부하며 자주 들어봤을 MVC패턴과 Django의 MVT패턴의 차이가 궁금했다.
스윽 듣기로는 큰 차이가 없다고들 한다. 정말 그런지 한번 봐보자!

아, Django의 설계 철학도 한번 봐보면 좋을거 같아 링크도 걸어둔다.


우선, 각각의 정의를 알아보자.

MVC 패턴이란?
Model-View-Controller의 약자로 개발을 진행할 때 구성요소를 세가지의 역할로 구분하여 개발하는 개발 방법론이다.

위 이미지를 가져온 곳

  • Model : 데이터를 처리하며 DB와 상호 작용하는 인터페이스 역할을 하며, 기본적으로 DB의 복잡성에 얽매이지 않고 데이터와 상호작용할 수 있다.

  • View : 웹 응용 프로그램인 브라우저에서 실제 사용자에게 표시되는 프레젠테이션 로직을 처리하여 UI로 나타낸다.

  • Controller : View에서 핸들러의 흐름을 처리하거나 Model의 데이터를 처리하는 로직을 제공한다.

MVC 패턴의 장점과 단점

  • 장점 : 유연성이 높고 유지보수가 용이하며 개발자, 디자이너의 작업 영역을 분리할 수 있음
  • 단점 : 프로젝트의 규모가 커질수록 Controller가 거대해지고 Model, View의 의존성을 분리할 수 없기에 유지보수가 점점 어려워진다.

MVT 패턴이란?
Model-Template-View의 약자로 MVC를 기반으로 한 디자인 패턴

  • Model : MVC패턴의 Model과 마찬가지로 데이터 간의 인터페이스를 담당한다.

  • View : 프레임워크에서 실제 브라우저에 보이는 프레젠테이션 로직을 처리하고 사용자에게 인터페이스를 제공하는 방법을 제어하는 곳

  • Template : MVC의 Controller와 비슷한 역할을 한다. 따라서 View에서 모든 비지니스 로직을 처리하고, Model과 Templates간의 다리 역할을 하기도 함

그래서

Django에서의 MVT패턴은
일반적인 MVC패턴과 각각의 패턴이 하는 일은 크게 차이가 없다.

따라서 MVC패턴과 MVT패턴은 넓게 보면 동일하다고 할 수 있다.

하지만, MVT패턴에서는 View에 프레젠테이션 로직이 아닌, 비지니스 로직을 포함시켜야 한다고 주장하는 패턴이다.

또한 기존 MVC패턴에서 Controller에서 처리해야 했던 일부를 Django 프레임워크에서 자동적으로 처리한다.

즉, MVT패턴은 MVC패턴의 입장에서 보면
Model-Template-View(+Controller)의 형태로 구성되어있다고 볼 수 있을거같다.

다만 위에서 언급한 바와 같이 Controller의 역할 일부를 Django에서 처리하기 때문에 종종 생략되는 경우가 있다.


해당 포스트의 내용은

https://nitro04.blogspot.com/2020/01/django-mvc-mvt.html#1down

https://m.blog.naver.com/jhc9639/220967034588

에서 발췌하였다. 너무 좋은 글들이니 한번씩 봐도 좋을거같다.

profile
Django 개발자가 되고싶은 사람

1개의 댓글

comment-user-thumbnail
2024년 3월 18일

템플릿이랑 뷰 순서 잘못된것같아요 ... !

답글 달기