Coding/TIL & 배운것들
MTV Pattern
코딩짜는 머글
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도 조회하고 외부로 요청하기도 함. 응답을 만들어서 클라이언트에게 전달함.