[Django tutorial] Ch1-1. MTV 개발 방식
Django의 개발 방식: MTV(Model-Template-View)
MTV(Model-Template-View) 란?
- 웹 프로그래밍 영역을 3가지 개념(모델, 템플릿, 뷰)으로 나눠 개발하는 방식
- 모델(Model): 테이블(DataBase) 정의(백엔드, models.py)
- 템플릿(Template): 사용자가 보게 될 화면 정의(프론트엔드, 브라우저 화면, html)
- 뷰(View): 애플리케이션의 제어흐름 및 처리 로직을 정의(백엔드, views.py)
예를 들어, Django로 만들어진 블로그에 들어가서
www.django-blog.com/post1
이란 url을 브라우저에 입력해서 어떤 글을 보는 상황이라면,
1. views.py(View)에서 www.django-blog.com/post1에 해당하는 함수가 실행되고,
2. 함수에서는 화면에 보여줄 데이터를 테이블(Model)에서 가져와 가공하고,
3. 가공된 데이터는 브라우저 화면(Template)에 전달되어,
4. 사용자는 www.django-blog.com/post1에 해당하는 블로그 글을 볼 수 있게 된다.
MTV 방식의 장점
- 모델, 템플릿, 뷰 각각의 모듈간에 독립성을 유지 가능
- 소프트웨어 개발의 중요 원칙인 느슨한 결합(Loose Coupling) 설계 원칙에도 부합
- 디자이너, 프론트개발자, 백엔드 개발자 간의 협업이 쉽다.
덧붙이는 말
- MTV와 거의 동일한 개념으로 MVC(Model-View-Controller)가 있다.
MTV | MVC |
---|---|
Model | Model |
Template | View |
View | Controller |
즉, MTV의 Template 기능은 MVC의 View의 기능과 비슷하고,
MTV의 View 기능은 MVC의 Controller의 기능과 비슷하다.