MVC패턴 vs MVT패턴

YunGyu Choi·2023년 5월 22일
0

1. 아키텍처 패턴(Architecture Pattern)이란?

아키텍처 패턴은 건축과 비교할 수 있다. 건물 설계 시 가이드 라인이 존재하면 이를 참조해서 더 쉽게 설계가 가능할 것이다. 이 가이드 라인이 소프트웨어 설계에서 아키텍처 패턴이라고 할 수 있다.

아키텍처 패턴은 주어진 문맥 안에서 소프트웨어 아키텍처의 공통적인 발생 문제에 대한 일반적인, 재사용 가능한 해결책을 의미한다. 소프트웨어 디자인 패턴과 비슷하지만 더 넓은 범위이다.

아키텍처 패턴은 소프트웨어 공학의 다양한 문제를 해결하는데, 예를 들어 컴퓨터 하드웨어 성능 제한, 비즈니스 위험의 최소화와 고가용성을 들 수 있다. 일부 아키텍처 패턴은 소프트웨어 프레임워크 안에 구현되어 있다.

2. MVC패턴

MVC패턴은 Model, View, Controller로 구성된 아키텍처 패턴이다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있으며, 이러한 "관심사 분리"는 업무 분리와 관리를 용이하게 한다.

Model

Model은 화면을 구성하는데 필요한 것들을 담아서 View로 전달하는 역할을 한다.

View

View는 Model로 부터 받은 정보를 바탕으로 유저와 소통하는 화면을 구성한다. 유저는 화면을 통해 Controller로 입력할 수 있다.

Controller

Controller는 비즈니스 로직과 관련된 내부적 처리에 집중한다. 유저의 정보 입력이 필요한 경우 View를 통해 입력받고 Controller에서 처리한 뒤 그 결과를 Model에 반영한다.

3. MVT패턴

MVT패턴은 Model, View, Template으로 구성된 아키텍처 패턴이다. 이 패턴은 클라이언트로 부터 요청을 받으면 URLconf를 이용해 URL을 분석한다. 그리고 분석 결과를 통해 해당 URL에 대한 처리를 담당할 View를 결정한다. View는 자신의 로직을 실행하면서, 데이터 베이스가 필요하면 Model을 통해 처리하고 그 결과를 받환 받는다. 그리고 자신의 로직 처리가 끝나면 Template을 사용해 클라이언트에게 전송할 HTML파일을 생성한다. View는 최종 결과로 HTML파일을 클라이언트 에게 보내 응답한다.

즉, MVC패턴에서 Controller와 같은 역활을 View가 수행하고 MVC패턴에서 View와 같은 역할을 Template View에서 수행한다.

Model

Model은 사용할 데이터에 대한 정의를 담고있는 클래스이다. ORM 기법을 사용하여 데이터베이스를 Class로 매핑해서 사용한다. Model class는 하나의 table에 매핑되고 Model class속성은 table column에 매핑된다.

View

View는 유저에게 요청을 받아 데이터베이스 처리 등 비즈니스 로직에 맞는 처리를 하고 그 결과 데이터를 HTML로 변환하기 위해 Template처리를 한 후 최종 HTML로 된 응답 데이터를 클라이언트에게 반환한다.
장고에서 View는 함수 또는 클래스의 메소드로 작성되며 웹 요청을 받고 응답을 반환한다. 다양한 형태의 응답 데이터를 만들어내기 위한 로직을 View에 작성하는데, 이러한 View는 보통 View.py파일에 작성한다.

Template

Template은 개발자가 작성하는 HTML파일이다. 장고가 클라이언트에게 반환하는 최종 응답은 HTMl 텍스트이다. 개발자가 응답에 사용할 .html 파일을 작성하면 장고는 이를 해석하여 최종 HTML 텍스트 응답을 생서하고 이를 클라이언트에게 보낸다.


[참고]

profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글