Tiny Finger Point Hand With Heart
본문 바로가기
Python/Django

[Django] Django 앱 구조로 보는 MTV

by yoondii 2023. 1. 13.
728x90
반응형
Djago는 MVC(Model-View-Controller)를 기반으로 한 프레임워크다.
하지만 장고에서는 같은 개념을 MTV(Model - Template - View)라고 부른다.

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

 

 

MTV패턴이란

Model(모델),Template(템플릿),View(뷰)의 약자이다.

 

1. Model

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

ORM이란?

Object-Relational Mapping의 약자로, SQL이라는 언어 대신 데이터베이스를 쉽게 연결해주는 방법.

 

2. Template

템플릿은 사용자에게 보여지는 부분이다. 장고 템플릿 시스템 문법에 맞게 python문법을 활용하여 작성하면 되므로, 다른 작업들과 화면 디자인 작업을 분리하여 확장성을 극대화 시킬 수 있다다.

즉, 보여지는 부분을 만드는 사람은 그 부분에만 집중하여 만들 수 있게 도와주는 역할을 한다.

3. View

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

4. URLconf (URL 설계)

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

5. 정리

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

자신이 하려는 작업이 무엇인지 파악하면 어느 부분을 작업해야하는지 명확해진다. MTV 패턴을 사용한 작업의 장점이다.

 

728x90
반응형

'Python > Django' 카테고리의 다른 글

[Django] Django 앱(App) 구조  (0) 2023.01.28
[Django] 프로젝트(project) 구조  (0) 2023.01.28
[Django] Admin site  (0) 2022.10.12
[Django] ModelForm  (0) 2022.10.11
[Django] Django로 CRUD를 해보자! 게시판만들기  (0) 2022.10.11

댓글