django에서 사용되는 설계 구조이다.
이름은 조금 다르지만 위에서 나온 MVC와 거의 동일하다.
위의 그림에서처럼 Model, Template, View가 각각 Model, View, Controller에 대응된다. 그러나 아래와 같이 MTV만이 가지는 특징도 존재한다.
- Model에서 파이썬 코드를 통해 DB를 조작할 수 있다. 이는 ORM(Object Relational Mapping)이라는 것 덕분인데 객체와 관계형 DB를 연결해주며, 파이썬 코드를 SQL 쿼리로 자동 변환해준다. 단 복잡한 쿼리 같은 경우에는 적합하지 않다.
- django는 자체 django template 문법을 지원하며, 이를 통해 html 파일 내에서 context로 받은 데이터를 활용할 수 있다.
- View는 Controller 역할을 하지만 항상 template을 렌더링하진 않으며 백엔드에서 데이터만 주고받기도 한다.
- MVC와 달리 URLConf(URL 설계)라는 단계가 존재하는데 URL을 View와 연결하는 과정이다. django 프로젝트 내 urls.py에서 진행되며 path 함수를 사용한다.
이러한 특징을 반영하여 진행되는 요청-응답 과정은 다음과 같다.
- 사용자가 특정 URL로 요청을 보낸다.(ex. 채용 사이트 주소를 치고 엔터를 친다)
- URLConf를 통해 해당 URL과 매핑된 View를 호출한다.
- View는 요청에 따라 적절한 로직을 수행하며, 그 과정에서 Model에게 CRUD를 지시한다.
- Model은 DB와 소통하며 CRUD를 수행한다.
- View는 지정된 template을 렌더링하고, 최종 결과를 응답으로 보낸다.
'What is □?' 카테고리의 다른 글
18_데이터베이스 마이그레이션(Database Migration)이란 무엇인가? (0) | 2021.05.30 |
---|---|
17. 데이터 마트(Data mart)란 무엇인가? (0) | 2021.05.22 |
15_데이터 웨어하우스(Data Warehouse)란 무엇인가? (0) | 2021.05.16 |
14_데이터 파이프라인(Data Pipeline)이란? (0) | 2021.05.15 |
13_데이터 레이크(Data Lake)란 무엇인가? (0) | 2021.05.12 |