코딩짜는 머글 2024. 12. 17. 15:22

소프트웨어의 디자인 패턴 

전세계의 개발자들이 개발을 하다보니 비슷한 문제를 해결하는 공통적인 구조(pattern)를 발견한다. 클라이언트-서버 역시 소프트웨어 디자인 패턴중 하나이다. 즉, 디자인 패턴은 자주 사용되는 소프트웨어의 구조를 마치 건축 공법처럼 일반화 해둔 것이다.

 

필요한 이유

  • 특정 구조에 대한 설계를 빠르게 할 수 있다.
  • 공통적으로 발생하는 문제에 대해 재사용 가능한 해결 방법을 제시할 수 있다.
  • 프로그래머가 시스템을 디자인할 때 발생하는 공통된 문제를 해결하면서 진행할 수 있는 형식화된 관행이다.

 

 

Django의 디자인 패턴

Django가 만들어진 디자인패턴을 이해하면 Django가 작동하는 방식도 알 수 있다. Django의 디자인 패턴은 MVC에서 살짝 변형된 MTV Pattern이다.

 

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

역할 
  Model : 데이터와 관련된 로직을 관리
  View : 레이아웃과 관련된 화면을 처리
  Controller : Model과 View를 연결하는 로직을 처리

분리하는 이유는?
관심사를 분리하기 위해서이다. 각 부분을 독립적으로 개발할 수 있어서 생산성이 증가하고 유지보수가 쉬워진다. 다수의 멤버가 동시에 개발하기도 용이하다. 

 

MVC MTV
Model Model
View Template
Controller View

 

View의 기능을 Template가, Controller의 기능을 View가 수행한다.

 

 

 

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