<django 의 3가지 가장 중요한 개념: MVT>
1. Model
- 데이터 구조 생성
- 데이터 베이스와 소통
ex) 대학 강의 수강신청 사이트를 만든다면, 강의 목록에 대한 데이터 테이블- 학생 목록에 대한 데이터 테이블이 필요하다.
다. 이런 정보를 Model에 저장해두면, 장고는 데이터 베이스와 소통하며 데이터를 쓰고(C), 읽고(R), 수정하고(U), 삭제(D)하게 된다.
2. View
- 웹 사이트의 로직 담당
- Model과 Template사이를 연결
- Model과 Template을 컨트롤하는 역할
- 요청(request)이 들어오면, 요청을 처리해서 응답(response)을 해주는 역할
- 간단한 요청 -> view -> 템플릿 렌더링 -> 화면으로 (HTML) 응답
- 복잡한 요청 -> view -> Model을 통해서 필요한 데이터를 DB에서 가져오기 -> 가져온 데이터 처리 -> 처리된 데이터 Template에 보내기 -> 템플릿 렌더링 -> 화면으로 (HTML) 응답
3. Template
- 웹 사이트 화면구성 담당 = HTML, CSS, JS를 이용해서 유저가 사용할 웹사이트를 만든다.
- 장고 템플릿에는 Template Language가 있는데, Template Language를 이용하면, 매번 변하는 데이터에 따라서 화면을 다르게 구성할 수 있다. -> 매번 바뀌는 동적 화면 구성
- 기본적인 내용은 HTML, CSS로 작성, 세부 내용은 Template Language를 활용해 작성
ex) 유튜브의 화면 구성은 같으나, 영상에 따라 영상 내용과 영상 제목, 세부 설명 등만 바뀐다. django의 Template Language를 사용하면, 변하는 세부 내용들에 대해서만 채워넣을 수 있다.
Model, View, Template이 3가지를 합쳐 MVT구조라고 한다.
(1) 클라이언트인 웹브라우저 -> URL을 통해 요청(Request)
(2) 서버에서 동작하는 Django -> URL을 보고, URL이 가리키는 view 호출 하기
(3) View에서 필요한 경우, Model을 통해서 데이터 베이스와 소통하기
(4) View에서 데이터를 받으면, 알맞은 로직에 따라 데이터 처리하기
(5) Template에 데이터 보내기
(6) Template에서 데이터 받아서, Rendering 화면 구성하기
(7) 만들어진 HTML화면을 클라이언트에 응답(Response)으로 돌려주기
<아키텍처 패턴이란?>
아키텍처 패턴(Architecture Pattern)
- 소프트웨어 내부에 존재하는 구조적인 패턴
- 오랜시간 개발된 다양한 소프트웨어는 내부적으로 비슷한 구조를 가진다.
- 발견된 구조를 일반화해서 범주화 하면, 대표적으로 10가지의 패턴이 나온다.
1. 클라이언트- 서버 아키텍처 패턴
- 클라이언트 = 서비스 요청하는 쪽
- 서버 = 요청을 받아서 서비스를 제공하는 쪽
ex) 인터넷 웹사이트, 온라인 게임
2. MVC 아키텍처 패턴
- 하나의 소프트웨어를 역할에 따라 Model, View, Controller 세 가지 파트로 나눠서 개발하는 패턴
- Model = 데이터 저장, 보관
- View = 사용자에게 보여지는 부분 담당
- Controller =사용자의 입력 받아서 내부 로직 처리
- 분업 가능 -> 빠르고 완성도 있는 개발 가능
- 유지 보수 용이
<MVC 아키텍처 vs MVT 아키텍처>
: MVT 아키텍처는 MVC 아키텍처 구조를 기반으로 만들어져서, 둘 간의 공통점이 많다.
MVC구조 | MVT구조 |
Model | 데이터 저장, 보관 => Model |
View | 사용자에게 보여지는 부분 담당 => Template |
Controller | 웹 사이트의 로직 담당 => View |
: 하지만 차이점도 있다! MVC구조에서 Controller가 했던 역할을 일부 분리해서, Django프레임 워크가 직접 처리한다.
: Django 개발자는 Model, View, Template에 집중하고, 나머지 모든 부분은 Django 프레임 워크에게 맡겨서 빠르게 개발할 수 있다.

오늘의 핵심, MVT구조의 작동 방식 !
Django는 맨 처음 URL을 보고 알맞은 메인 로직을 처리하는 View을(를) 호출합니다.
View에서는 필요하다면 Model을 통해 데이터베이스와 소통하고
처리한 데이터를 화면을 담당하는 Template과 함께 렌더해서 최종 화면을 만든 후
View를 통해 클라이언트 에게 응답으로 돌려줍니다.
이러한 Django의 구조를 MVT아키텍처 라고 합니다.
'웹 개발' 카테고리의 다른 글
[django] Django Template 템플릿 적용하는 법 ! + 정적 파일 관리 static files ! (0) | 2022.09.15 |
---|---|
[UNIX] 유닉스 커맨드 터미널, shell-bash, 커맨드 기본 형태, 커맨드 메뉴얼의 모든것 ! (0) | 2022.09.14 |
[django] Django 템플릿과 렌더링하는 방법! + Render 함수 설명 (1) | 2022.09.13 |
[django] Django URL 처리 방법, 클라이언트와 서버란 ? (1) | 2022.09.06 |
[django] 장고란 ? 장고 개발 환경 이해하기 ! (1) | 2022.09.05 |