본문 바로가기
웹개발

Django - MTV? MVC?

by 포 키 2023. 7. 26.
728x90

 

 

장고를 접하게 되면서 장고의 디자인 패턴에 대해 공부하며 작성해보려 한다.

 

1. MTV 패턴 (Model - Template - View)

 3가지로 영역을 나눠 독립적으로 프로그램을 개발하는 패턴이다.
Java의 MVC 패턴의 단점을 보완한 것이라고 생각하면 된다.
백엔드로직과 프론트앤드 디자인 분리가 가능하다.

Model

django.db.models.Model 클래스 상속을 받는, 장고와 데이터 베이스를 연결시켜주는 코드이다.

각 모델들은 데이터 베이스의 테이블과 매핑이 되고 모델의 속성은 데이터 베이스 필드를 나타낸다.

파일은 기본 생성되며, 파일명은 models.py 이다.

 

Template

장고에서 template 디렉터리 내에 HTML 파일을 이용해 웹 브라우저로 돌려주는 코드이다.

장고를 사용하는 우리에게는 제공될 결과물의 형태를 보여준다.

나의 경우 ToDolist 를 하며, 직접 폴더와 파일을 생성해서 HTML 코드를 작성했다.

 

View

파이썬의 함수(function) 을 사용하며, 사용자의 요청을 받아 처리하는 웹 사이트의 로직을 가지는 코드이다.

쉽게 말하자면 Template 에서 설정한 HTML 코드를 웹 페이지에 보이도록 요청하는 과정이다.

파일은 기본 생성되며, 파일명은 views.py 이다.

 

 

2. MVC 패턴 (Model - View - Controller)

하나의 애플리케이션이나 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구별하는 패턴이다.
단순하고 가장 보편적으로 사용하는 디자인패턴이다.
but) View와 Model 사이의 의존성이 높아 어플리케이션이 커질 수록 복잡하지고 유지보수가 어렵다.

 

 Model

 어플리케이션(소프트웨어)에서 사용되는 데이터와 그 데이터를 처리한다.

MTV의 Model과 같은 역할을 한다.

 

View

사용자에게 보여주는 UI이다.

MTV Template과 같은 역할을 한다.

 

Controller

사용자의 입력을 받고 처리한다.

MTV View와 같은 역할을 한다.

728x90