Juni_Dev_log

Django MTV 패턴? 본문

Theorem (정리)/Django

Django MTV 패턴?

Juni_K 2020. 8. 11. 16:40

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

이러한 MVC 패턴을 MTV(Model - Template - View)라고 부르기도 한다.

 

MVC 패턴은 데이터(Model), 사용자 인터페이스(View), 데이터 처리 로직(Controller)으로 구분해서 한 요소가 다른 요소들에게 영향을 주지 않도록 하는 설계 방식인데, 이러한 패턴을 장고도 따라가고 있다.

 

장고의 MTV 패턴

 


1. Model

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

excel과 같은 표의 형태로 데이터를 정리하여 데이터베이스에 넣는다고 생각하면 된다.

원래 DB 를 다루기 위해서는 SQL이라는 언어를 알아야 하지만, SQL을 몰라도 DB 작업을 가능하게 해주는 ORM을 제공하기 때문에 다른 프레임워크에 비해 공부할 내용이 훨씬 적다.

 

ORM 이란?

Object-Relational Mapping 의 약자이다. SQL을 쓰지 않고 데이터베이스를 쉽게 연결해주는 것을 말한다.

 

 


2. Template

템플릿은 사용자에게 보여지는 부분이다. 다양한 html 파일들이 이 템플릿을 담당한다.

장고 템플릿 시스템 문법에 맞게 python 문법을 활용하여 작성하면 되기 때문에, 다른 작업들과 화면 디자인 작업을 분리하여 확장성을 극대화시킬 수 있다.

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

 


3. View

뷰는 웹 요청을 받고, 전달받은 데이터들을 해당 애플리케이션의 로직으로 가공하여, 결과를 템플릿에 보내준다.

데이터를 가공하는 처리를 해야한다 싶으면, 뷰에서 함수를 작성해서 사용하면 된다.

 


4. URLconf (URL 설계)

URL 은 view와 template을 이어주는 역할을 하고, 이 부분을 만들어 주는 작업을 URLconf라고 한다.

장고 1.x 버전에서는 이 부분에서 정규표현식을 사용해서 굉장히 복잡했지만, 장고 2.x 버전은 path() 함수를 통해서 그 과정을 매끄럽게 다듬어서 공부하기 더 쉬워졌다.

 


5. 정리

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

자신이 진행 중인 작업이 무엇인지 정확하게 파악하면, 좀 더 큰 그림을 그리는 데 도움이 되기에, 항상 머릿속에 생각해놓고 작업을 진행하도록 하자.

 

 


 

(참고 사이트)

https://velog.io/@hidaehyunlee/Django-MTV-%ED%8C%A8%ED%84%B4

 

[Django] MTV 패턴

자신이 하려는 작업이 무엇인지 파악하면 MTV 중 어느 부분을 작업해야하는지 명확해진다.

velog.io

 

'Theorem (정리) > Django' 카테고리의 다른 글

Django - MySQL 연결하는 방법  (0) 2020.08.15
Comments