Back-End

[Django] MTV 디자인 패턴 (Model, Template, View)

NIMHO 2023. 5. 6. 23:30
728x90

Spring을 공부할 때는 MVC(Model - View - Controller) 디자인 패턴을 사용한다고 배웠다.

하지만 장고는 이런 개념을 MTV 패턴이라고 부른다.

 

MTV 디자인 패턴

Model

데이터베이스에 저장되는 데이터를 의미한다.

데이터 관리, 데이터베이스와 연결 및 실행이 주된 역할이다.

장고는 SQL을 몰라도 DB 작업을 가능하게 해주는 ORM을 제공한다.

ORM (Object-Relational Mapping)
SQL이라는 언어 대신 데이터베이스를 쉽게 연결해 주는 방법이다.

models.py 파일에 class를 만들고 수정하면서 작업한다.

 

Template

사용자에게 보이는 데이터를 출력하는 역할을 한다.

html과 같은 페이지이다.

urls.py라는 url 패턴에 따라 특정 함수를 불러오는 동작에서 Template를 설정해 사용자에게 보여준다.

 

View

컨트롤러의 역할을 한다.

웹 요청을 받고 전달받은 데이터들을 해당 애플리케이션의 로직으로 가공해 결과를 템플릿으로 보낸다.

views.py 파일에서 코드를 작성해 작업한다.

728x90

장고 실행 흐름

4, 5, 6, 7번은 필요에 의해 선택적으로 진행한다.

 

URLconf (URL 설계)

URL은 view와 templat을 매핑해 주는 역할을 한다.

이런 작업을 URLconf라고 한다.

 

정리

Model : 데이터 저장 형태를 어떻게 할지 설정

Template : 유저에게 보이는 화면을 작성 및 수정

View : 데이터를 처리해서 가공

URLconf : 가공한 데이터를 유저가 보는 화면으로 전송

728x90