반응형
MTV 패턴과 MVC 패턴의 차이점
웹 개발에서 많이 언급되는 아키텍처 패턴이 바로 MVC와 MTV입니다.
Django는 MTV 패턴을 따르지만, 기본 개념은 전통적인 MVC 패턴과 크게 다르지 않습니다.
단, 역할을 바라보는 관점과 용어에 차이가 있을 뿐입니다.
아래에서 자세히 비교해 보겠습니다.
1. MVC 패턴이란?
MVC는
- Model (모델): 데이터와 비즈니스 로직을 관리합니다.
- View (뷰): 사용자에게 보이는 화면을 담당합니다.
- Controller (컨트롤러): 사용자 입력을 받아 모델과 뷰를 연결하고 조정합니다.
흐름 요약:
사용자 입력 → Controller → Model 조작 → View에 데이터 전달 → 화면 표시
2. MTV 패턴이란?
MTV는 Django 특유의 용어를 씁니다.
- Model (모델): 데이터와 비즈니스 로직을 관리합니다. (MVC의 Model과 같음)
- Template (템플릿): 사용자에게 보여지는 화면을 담당합니다. (MVC의 View에 해당)
- View (뷰): 요청을 처리하고, 필요한 데이터를 준비해 템플릿에 넘겨줍니다. (MVC의 Controller에 가까움)
흐름 요약:
사용자 요청 → View 처리 → Model 조회 → Template에 데이터 전달 → 화면 표시
3. 비교 정리
항목 | MVC 패턴 | Django의 MTV 패턴 |
데이터 관리 | Model | Model |
사용자 화면 표시 | View | Template |
요청 처리와 흐름 제어 | Controller | View |
요점:
- Django에서는 View가 Controller 역할을 합니다.
- Django의 Template이 MVC의 View 역할을 대신합니다.
4. 왜 이렇게 이름을 다르게 썼을까?
- Django는 웹 중심 프레임워크입니다.
- 사용자가 접하는 "보여지는 화면" 부분을 더욱 강조하기 위해 'Template'라는 단어를 썼습니다.
- 요청을 처리하는 부분을 단순히 'View'라고 부른 것은, 웹 요청에 대한 응답 처리를 직관적으로 표현하기 위함입니다.
정리
- MVC와 MTV는 역할은 비슷하지만, Django에서는 역할 이름이 다릅니다.
- Django의 View는 MVC의 Controller 역할을 한다고 이해하면 쉽습니다.
- 개발 흐름 자체는 둘 다 데이터-처리-화면 표시를 명확히 나누는 구조입니다.
반응형
'Linuxpia > 웹 프로그램' 카테고리의 다른 글
리눅스에 visual studio code 설치 명령어 상세 해설 (2) | 2025.05.06 |
---|---|
리눅스 환경에서 VS Code로 Django 프로젝트 개발하기 (3) | 2025.05.05 |
[Django 연습] Poem App 설치 (2) | 2025.05.03 |
GitHub에서 clone한 Django 프로젝트 실행을 위한 기본 세팅 (6) | 2025.05.02 |
Django 앱 구조로 알아보는 MTV 패턴 (2) | 2025.05.02 |