TIL-012 | Django_MVC, MTV 디자인 패턴

Lee, Chankyu·2021년 9월 17일
0
post-thumbnail

디자인 패턴이란 ?

  • 디자인패턴(Desigin Pattern)은 소프트웨어 개발 방법으로 사용되며, 그동안 축적된 소프트웨어 개발 설계 노하우를 가공하여 규약으로 정리 한 것이다.

  • 웹 설계시 발생하는 문제들을 예방 혹은 해결하기 위해 탄생하였으며, 기능별로 독립적으로 분리시킴으로써 개발 진행 시 효율을 극대화하고 부작용을 최소화 하는 것이 목적이다.


MVC(Model-View-Controller)

  • MVC는 디자인 패턴중 하나이며, Model, View, Controller 각각의 요소가 서로에게 영향을 미치지 않아야 한다.
  • 사용자가 View를 통해 Controller에 요청을 보내게 되고 Controller는 Model을 통해 데이터를 가져오게 된다.
  • MVC패턴은 각각의 요소가 독립적으로 분리되어있어 유연성이 높고 유지보수가 용이하며 개발자와 디자이너의 작업 영역을 분리할 수 있다는 장점이 있다.
  • 프로젝트의 규모가 커질수록 Controller가 비대화되고 Model과 View의 의존성을 완벽히 분리하기 힘들어져 유지보수가 점점 어려워진다는 단점이 있다.

M = Model : 백그라운드 데이터(앱 정보 등)를 가지고 있으며 이를 담당한다.(DB접근)
V = View(s) : 사용자에게 보여지는 부분을 출력한다.(HTML페이지)
C = Controller(s): Model과 Viewf를 이어주는 중간 관리자의 역할이며, 사용자의 입력을 처리하고 흐름을 제어한다.


출처 : http://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/mvc.html


MTV(Model-Template-View)

  • Django의 디자인 패턴이다.
  • MVC 패턴과 명칭이 다를뿐 기본 원리는 동일하다고 볼 수 있다.

M = Model: MVC 패턴의 Model과 동일하며 DB에 저장되는 데이터를 의미한다. 백그라운드 데이터(앱 정보 등)를 가지고 있으며, 클래스로 정의된다. Django는 ORM 기능을 지원하기 때문에 파이썬 코드로 DB 조작이 가능하다.
T = Template: MVC 패턴의 View와 동일하며, 사용자의 요청에 따라 사용자에게 보여지는 화면을 출력한다 (HTML페이지)
V = View(s): MVC 패턴의 Controller이고 데이터가 어떤 상황에서 어떻게 처리되는지를 알려주는 함수가 모여있으며, Model 과 Template을 이어주는 로직을 담당한다. 로직 처리 결과를 템플릿으로 렌더링하여 응답한다.
👉 추가적으로 Django에서는 URLconf(설계) 단계가 존재한다.
urls.py 에서 URL 패턴을 정의하여 해당 URL과 View를 mapping하는 단계이다.

- MTV 진행 순서
1) 클라이언트가 특정 URL로 요청을 보낸다.
2) URLConf모듈을 통해 URL을 분석하고 해당 URL과 매핑된 View를 호출한다.
3) 호출된 View는 자신의 로직으로 처리하고 Model에 CRUD를 지시한다.
4) Model은 ORM을 통해 DB를 조작하여 CRUD를 진행한다.
5) View는 로직 처리가 끝나면 지정된 Template을 사용하여 클라이언트에 응답할 HTML을 생성하여 응답한다.

출처: https://m.blog.naver.com/nuberus/221747636515

profile
Backend Developer - "Growth itself contains the germ of happiness"

0개의 댓글