📗 Django 


💡 다양한 응용 소프트웨어를 만들다 보니 공통적인 구조와 문제가 발생한다.
💡 이때, 구조에도 공통점이 있고, 문제에도 공통점이 존재한다.
      == 패턴(Pattern)이 보인다.

소프트웨어의 디자인 패턴

전 세계의 개발자들이 개발을 하다 보니 비슷한 문제를 해결하는 공통적인 구조를 발견한다.

  • 클라이언트-서버 역시 소프트웨어 디자인 패턴 중 하나이다.

 

디자인 패턴이란?
  • 자주 사용되는 소프트웨어의 구조를 마치 건축 공법처럼 일반화해둔

 

디자인 패턴이 필요한 이유
  1. 특정 구조에 대한 설계를 빠르게 할 수 있다.
  2. 공통적으로 발생하는 문제에 대해 재사용 가능한 해결 방법을 제시할 수 있다.

 

프로그래머가 시스템을 디자인할 때 발생하는 공통된 문제를 해결하면서 진행할 수 있는 형식화된 관행이다.


Django의 디자인 패턴

== MTV Pattern

  • 기존에 있던 MVC Design Pattern을 살짝 변형하여 쓰고 있다.

 

MVC 디자인 패턴
  • Model - View - Controller 이렇게 3파트로 나누어져 있다.
  • 데이터와 논리 구조를 제어하는 설계
    • 널리 사용되는 디자인 패턴 중 하나이다.
  • 하나의 큰 소프트웨어를 나눠서 생각해 보기 위해서 등장한 패턴이다.

 

MVC 각각의 역할
  • Model : 데이터와 관련된 로직을 관리
  • View : 레이아웃과 관련된 화면을 처리
  • Controller : Model과 View를 연결하는 로직을 처리
💡 왜 MVC로 분리하는 걸까?
 ① 관심사를 분리하기 위해서다.
 ② 각 부분을 독립적으로 개발할 수 있어서 생산성이 증가하고 유지보수가 쉬워진다.
 ③ 다수의 멤버가 동시에 개발하기도 용이하다.

 

Django의 MTV Pattern

MTV Pattern

Model
  • MVC에서의 Model
  • 데이터와 관련된 로직을 처리
  • 데이터 구조 정의, 데이터베이스 기록 관리
Template
  • MVC에서의 View
  • 레이아웃과 화면상의 로직을 처리 (UI, 레이아웃)
View
  • MVC에서의 Controller
  • 메인 비즈니스 로직을 담당
  • 클라이언트의 요청에 대해 처리를 분기하는 역할
    • DB도 조회하고 외부로 요청하기도 한다.
    • 응답을 만들어서 클라이언트에게 전달한다.

 

↓ 그림으로 정리된 MTV

+ Recent posts