웹 프로그램 개발 시 일반적으로 언급되는 패턴은
MVC(model - view - controller) 패턴입니다.
M(model)은 데이터,
V(view) 는 사용자 인터페이스,
C(controller)는 데이터를 처리하는 로직.
이렇게 3가지 개념으로 묶어서 구현합니다.
Django에서는 MTV(model-template-view) 패턴으로 바꿔서 정의하고 있습니다.
Model: 모델 클래스, 데이터 객체 정의와 그 데이터 (models.py)
Template: 사용자에게 보여지는 인터페이스 화면 (templates/*.html)
View: 데이터를 가져오고 적절하게 가공하여 그 결과를 템플릿에 전달하는 역할 (views.py)
우리가 브라우저의 주소창에 어떤 웹페이지의 주소를 입력하면 다음의 일련의 과정이 일어납니다.
1) CLient가 특정 주소로 Request를 보낸다.
2) Django 웹 앱에 Request가 들어온다.
3) url conf 모듈을 이용하여 Request의 url을 확인한다.
4) 해당 url에 대한 처리를 담당하는 View를 결정한다
4) View는 Logic을 실행한다.
5) 필요한 경우, Model을 통해 데이터를 처리한다.
5) Template을 기반으로 최종 html 코드를 생성한다.
6) 생성된 html 코드를 Client로 보낸다.
7) Client가 받은 html 코드를 렌더링한다.