Django를 통해 만들어진 웹 어플리케이션은 정보들의 티키타카를 통해서 클라이언트의 요청(request)를 수행해준다.
사실, Django뿐만 아니라 대다수의 웹 프레임워크들이 각기 연결된 다른 파일들에서 티키타카를 하며 우리의 웹 페이지를 화면에 띄워준다.
따라서, 그러한 작업들이 어떤 과정을 거쳐 발생하는 것인지 제대로 이해한다면 우리는 다른 프레임워크를 배우는 데 있어서도 큰 무리없이 그 흐름을 따라갈 수 있다.
Django의 MTV 패턴
Django는 MTV 패턴을 활용해 웹 어플리케이션을 구동시킨다.
여기서 MTV는 각각 Model, Template, View를 뜻하는데 앞서 올린 Django관련 글들을 읽어보면 Template와 View가 어떤 일을 하는지 대충 감이 올 것이다.
Template에는 우리가 띄워주고 싶은 HTML 파일을 저장해준다고 했다. 즉, 우리가 보여주길 원하는 화면을 이 Template에서 관리한다.
View는 클라이언트의 요청에 따라 해당 화면을 어떠한 방식으로 보여줄 것인지, 그리고 각 상황에서 발생되는 데이터들을 어떻게 처리해줄지 정의한다.
마지막으로 Model은 웹 사이트에서 발생하는 데이터들을 관리하는 곳이다.
Django는 웹을 이 세 가지 기능으로 각각 나눔으로써, 하나의 기능이 다른 하나의 기능에 영향을 끼치지 않도록 하고 있다.
아마 이러한 정의들로만 세 기능의 역할을 이해하긴 쉽지 않을 것이다.
회원가입과 로그인 기능을 갖고 있는 웹 페이지를 생각해보자.
1. 우리는 사이트에 들어가면 회원가입을 위한 창, 로그인을 위한 창 등을 곧장 볼 수 있다. 이렇게 사용자들이 보는 페이지 창이 바로 Template이라는 공간에 저장된다.
2. 회원가입을 하기 위해 필요한 정보(아이디, 비밀번호, 이름, 생년월일 등)를 입력하고 제출 버튼을 누르면 해당 데이터들은 사용자 관련 데이터베이스에 저장된다. 이렇게 데이터와 관련된 작업들이 Model에서 이루어진다.
3. 회원가입을 위해 필요한 정보를 입력했는데, 내가 입력한 아이디를 누군가 이미 사용중이다. 이 때는 회원가입이 불가하므로 '이미 사용중인 아이디입니다' 등의 메시지를 띄워줄 수 있다. 또한, 회원가입 후 로그인 시 아이디나 비밀번호를 잘못 입력할 경우 '로그인 정보가 정확하지 않습니다' 등의 메시지를 띄워줘야 한다.
이렇게 서비스 이용 중 요구되는 데이터들의 처리를 view에서 실행해준다.
Django MTV 패턴 시각화
'프레임워크 > Django' 카테고리의 다른 글
[Django] Word Count 만들기 - 2 (0) | 2021.02.16 |
---|---|
[Django] Word Count 만들기 - 1 (0) | 2021.02.15 |
[Django] Hello World 페이지 만들기 (0) | 2021.02.15 |
[Django] django 프로젝트 및 앱 폴더 생성 (0) | 2021.02.15 |
[Django] Django란? - Django 설치 및 가상환경 설정 (0) | 2021.02.15 |