본문 바로가기

Web Programming/Django

MTV 패턴

MTV 패턴


MTV 패턴은 Model - Template - View 로 구성되어있고 MVC 패턴 Model - View - Controller 와 기본적인 틀은 유사하다.

각각의 구성 요소들이 독립적으로 자신의 임무를 수행하여 Django Framework가 동작되는 것이며 각각의 역할은 다음과 같다.


Model - 데이터를 관리

Template - 보여주기

View - 처리


구체적으로는 다음과 같다.

Model

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


Template

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

URLconf - URL 설계

view가 나와야할 차례인데 URL이 튀어나왔습니다. URL은 view와 template을 이어주는 역할을 하고, 요 부분을 만들어 주는 작업을 URLconf라고 합니다. 장고 1.x 버전에서는 이부분에서 정규표현식이라는 이상한 녀석을 배웠어야 했지만, 장고 2.x 버전은 path라는 함수를 이용해 그 과정을 훨씬 매끄럽게 다듬어서 공부하기 더 쉬워졌습니다.

View

뷰는 웹 요청을 받고, 전달받은 데이터들을 해당 어플리케이션의 로직으로 가공하여, 그 결과를 템플릿에 보내줍니다. MTV 각각 요소가 모두 중요하지만 그 중에서도 머리역할을 하는 녀석이 뷰입니다. 데이터를 가공하는 처리를 해야한다 싶으면 뷰를 건드리면 됩니다.


  • 데이터저장 형태를 어떻게할지 설정하겠다. → Model
  • 유저에게 보여지는 화면을 고치고 싶다. → Template
  • 데이터를 처리해서 가공하고 싶다. → View
  • 가공한 데이터를 유저가 보는 화면으로 넘겨주고 싶다 → URLconf

'Web Programming > Django' 카테고리의 다른 글

Home & Detail (Blog 모델 상세 페이지)  (0) 2019.01.31
Model & Admin  (0) 2019.01.21
Word Counter 만들기  (0) 2019.01.17
Hello World 이론 & 실습  (0) 2019.01.08
Python & Django 설치 및 세팅  (0) 2019.01.08