장고에 있어서 가장 중요
1) 모델
django에서 Database와 통신을 하게 해주는 도구
데이터 저장하는 공간, 저장소의 개념(여기서 다양한 데이터를 끌어와서 사용할 수 있음)
2) 객체 만들기
유저의 회원가입
유저에 의해 계정이 생성되고 유저가 새로은 게시글을 작성(게시글도 하나의 객체)
그때 그 객체를 데이터베이스에 저장을 해야하는데 저장하는 과정에서 그 과정을 편리하게 해주는것이 Model임.
장고에서 굳이 DB쪽 언어를 사용하지 않고도 간편하게 데이터페이스 내용을 수정, 삭제 등 여러가지 일을 할수있는 것이 패턴

3) 데이터베이스
데이터베이스 안에는 Row(행), Column(열) 그리고 각 행의 속성인 Item, Attributes 등이 매칭됨
장고에서의 Article이라는 Item이 Databsase의 Row에 매칭됨. Title, article, image이라는 Attribute들은 Database의 Columns에 매칭됨.
그 중간 과정을 해주는것이 모델
모델 설정만 해준다면 저장하거나 삭제하거나 수정하거나 모든 일들은 장고가 알아서 처리해줌 → DB에 대해서 신경 안 써도 됨

장고에서 계산하는 부분 대부분을 담당.
연산 수행(실질적인 개발 코드)
유저가 서버에게 우리의 웹 서비스를 요청, 서버에서는 유저의 요청에 대한 응답
※ 과정
1) 유저가 인증이 됐는지 안됐는지
2) 유저가 로그인이 됐다면, 유저가 요청한 정보가 유효한 것들인지
3) 유효 하다면, DB로부터 데이터 가져오기
4) 응답을 만들어서 user에게 응답
결과적으로 request를 받아서 되돌려주는 것은 View 단계에서 진행

JS, HTML, CSS로 구성
눈에 보여지는 화면(아무 기능이 없음)
실질적으로 Template 안에 구성되어있는것은 HTML, CSS, JavaScript 와 같은 화면에 보여지는 프론트엔드 단의 내용들

일단 유저는 우리가 만든 웹사이트의 UI을 볼 것이다. 이 UI 내부에 있는 내용들을 어떻게 구현할 것인가 어떻게 생성해 낼것이냐에 대한 해결책을 주는 것이 template임.
HMTL 이라는 정적인 언어에 동적인 내용을 생성하게 해주는 작업을 template 라고 볼수있다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- <title>Title</title> -->
<title>{{Article.title}}</title>
</head>
</html>
유저가 한 게시글의 내용을 보기위해 어떤 게시글에 대한 요청을 보냄
그럼 서버에서는 여러가지 앞서 말한 작업들을 거친 후 article이라는 게시글 내용을 전달할 것
그 중간에 HTML 하나만 있다고 가정을 해보면 HTML 내부에서 게시글을 생성해내줄 작업이 필요
HTML 자체로는 정적인 언어이기 때문에 자체적으로 동적으로 만들어주는 것이 바로 template
HTML 문서 내에 Title을 우리가 '유저로부터 받은' 게시글의 제목으로 바꾸기 위해 Article을 <title>{{Article.title}}</title>
이런 식으로 쌍 중괄호를 사용해 Article이라는 객체 내부에 있는 title 이라는 값을 불러와서 HMTL 내부에 직접 생성해줄 수 있음
HMTL 자체는 변하지 않고 동적으로 그 내용만 계속 변화시킬 수 있는 기능을 갖게 된 것

<body>
{% for article in article_list %}
<p>{{ article.title }}</p>
{% endfor %}
</body>
만약에 게시글 하나가 아니라 여러 가지 게시글 리스트를 받았다면 template 안에서 for loop을 돌면서 그 안에 있는 모든 제목들을 출력할 수 있는 이런 식의 template를 구성할 수도 있다.
<body>
{% if article in article_list %}
<p>Article exists!</p>
{% endif %}
</body>
if문으로 우리가 article을 받았는지 안받았는지를 모르는 상태에서 artcle이 있는지를 확인하고 그 이후에 article이 존재한다는 <p>Article exists!</p> 이런 식의 분기문도 template 안에 작성할 수 있다.
Model은 데이터가 저장되는 곳과 쉽게 연결하기 위해서 만들어준 것
View는 계산. ex) 인증이라던지 계산이라던지 확인 등
Template(=Controller)은 유저가 볼수있는 UI에 굉장히 밀접한 관련이 있음
