[Django] MTV 패턴

정호석·2022년 5월 30일
0

장고는 MVC(Model-View-Controller)를 기반으로 한 프레임워크다.
하지만 장고에서는 같은 개념을 MTV(Model - Template - View)라고 부른다.

참고로 MVC패턴은 데이터(model), 사용자 인터페이스(view), 데이터 처리 로직(controller) 을 구분해 한 요소가 다른 요소들에게 영향을 주지 않도록 설계하는 방식인데, 장고도 기본적으로 이 방식을 따르며 명칭이 조금 다를 뿐이다.

1. Model

모델은 데이터베이스에 저장되는 데이터를 의미한다. excel과 같은 표의 형태로 정리하여 데이터베이스에 넣는다고 생각하면 된다. 원래 DB를 다루기 위해서는 SQL이라는 언어를 알아야하지만, 장고는 이 SQL을 몰라도 DB 작업을 가능하게 해주는 ORM을 제공하기 때문에 공부할 내용이 훨씬 적다.

2. Template

템플릿은 사용자에게 보여지는 부분이다. 이전 글에서 'Hello World'를 작성했던 html파일이 이 템플릿을 담당한다. 장고 템플릿 시스템 문법에 맞게 python문법을 활용하여 작성하면 되므로, 다른 작업들과 화면 디자인 작업을 분리하여 확장성을 극대화 시킬 수 있다다. 즉, 보여지는 부분을 만드는 사람은 그 부분에만 집중하여 만들 수 있게 도와주는 역할을 한다.

3. View

뷰는 웹 요청을 받고, 전달받은 데이터들을 해당 어플리케이션의 로직으로 가공하여, 그 결과를 템플릿에 보내준다. 데이터를 가공하는 처리를 해야한다 싶으면 뷰에서 함수를 작성하면 된다.

URLconf

URL은 view와 template을 이어주는 역할이고 이 작업을 URLconf에서 해준다.
쉽게 URL을 뷰와 매핑시켜준다 생각하면 편하다.

from django.urls import path
from . import views

app_name = 'project'

urlpatterns = [
    path('', views.HomeView.as_view(), name='home'),
    path('login/', views.LoginView.as_view(), name='login'),
]
profile
welcome

0개의 댓글