티스토리 뷰

Python/Django

[Django]MVT Pattern

Vagabund.Gni 2023. 4. 29. 15:19
728x90
반응형

프레임워크에 대한 지식 없이 파이썬으로 알고리즘 풀이만 하다가

 

이제 준비가 된 것 같아(?) 간단한 게시판 만들기를 따라 해 보았다.

 

내가 생각해야 하는 것이 아니라 보고 따라 적기만 하면 되는 거라서 구현 자체는 잘 됐는데,

 

적당히 따라 하다 보니 여러 가지 새로운 개념에 대해 정리해야 할 것 같다는 판단이 들었다.

 

예를 들면 함수 기반 뷰와 클래스 기반 뷰의 차이 같은 것.

 

근데 이에 대해 알려면 일단 스프링의 MVC과는 다른 장고의 MVT패턴을 제대로 알아야 할 것 같아

 

글쓰기 페이지를 열었다.

 

시작!

 

MVT Pattern

 

MVT패턴은 Model-View-Template의 앞글자를 딴 패턴으로서, 기존의 MVC 패턴에서 파생된 개념이다.

 

따라서 태생적으로 MVC 패턴과 비슷한 구조를 가지고 있긴 하지만, 각 파트의 역할이 조금 다르다.

 

참고로 위 그림에서 URLconf란 별게 아니라 URL configuration, 즉 URL과 뷰의 매핑에 대한 설정을 가리킨다.

 

계속해서 각각의 역할을 알아보자.

 

  1. Model
    모델은 MVC와 마찬가지로 디비와 관련된 작업을 수행한다. ORM을 통해 테이블과 매핑되어서
    디비에 데이터를 쓰거나 지우거나 가져오는 등의 역할을 맡는다.
  2. View
    모델에서 가져온 디비의 데이터를 클라이언트에게 출력하는 역할을 한다.
    이를 위해 사용자의 입력 데이터를 처리하거나 모델에게 CRUD 명령을 전달하는 등,
    MVC 패턴에서 컨트롤러가 맡던 웹 앱의 핵심 로직이 구현되는 부분이다.
  3. Template
    위 뷰에서 클라이언트에게 보여줄 화면을 렌더링 하는 데 사용되는 HTML 파일이다.
    뷰에서 입출력 데이터 등을 보내주면 이를 이용해 화면을 구성한다.

HTML을 작성하는 데 아직 다소 진입장벽이 있긴 하지만,

 

나름 연습을 하고 돌아와 개념을 보니 이해가 잘 되는 부분이 있다.

 

끝으로 MVT의 장점은 당연하게도 역할분리가 확실해 코드의 유지보수 및 재사용이 용이하다는 것이다.

 

글이 길어질 거라 생각했지만 생각보다 빨리 끝났다.

 

끝!

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함