[Django] MTV 패턴

Updated:

MTV 패턴

장고는 MVC(Model - View - Controller)를 기반으로 한 프레임워크이다.

MVC 패턴 데이터(Model) (View) (Controller)를 구분해 한 요소가 다른 요소들에게 영향을 주지 않도록 설계하는 방식

장고에서는 이를 MTV(Model - Template - View)라고 한다.

Model

모델은 DB에 저장되는 데이터를 의미한다. 원래 DB를 다루기 위해서는 SQL이라는 언어를 알아야 하지만 장고는 SQL을 몰라도 DB 작업을 가능하게 해주는 ORM을 제공한다.

ORM Obeject-Relational Mapping의 약자 SQL 언어 대신 데이터베이스를 쉽게 연결해 주는 방법

Template

템플릿은 사용자에게 보이는 부분이다. html 파일이 템플릿을 담당하게 된다. 장고 템플릿 시스템 문법에 맞게 python 문법을 활용하여 작성하면 되므로, 다른 작업과 화면 디자인 작업을 분리하여 확장성을 극대화 시킨다. 보여지는 부분을 만드는 사람은 그 부분에만 집중하여 만들 수 있게 도와준다.

View

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

URLconf - URL 설계

URL은 View와 Template을 이어주는 역할을 한다. 이 부분을 만들어주는 작업을 URLconf라고 한다. 장고 1.x 버전에서는 정규표현식을 사용해 복잡했지만, 장고 2.x 버전은 path() 함수를 이용해 그 과정이 훨씬 매끄럽게 다듬어져 공부하기 더 쉬워졌다.

정리

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

Leave a comment