전형적인 데이터기반 웹사이트에서 웹 어플리케이션은 웹 브라우저로부터 HTTP 요청(Request)을 기다린다
요청을 받으면 웹 어플리케이션은 URL과 GET, POST 데이터의 정보에 기반하여 요구사항을 알아내게 되고, 그 다음이 무엇이 필요한지에 따라, 데이터베이스로부터 정보를 읽거나 쓰고 필요한 다른 작업들을 수행할 것이다. 그 다음 웹 어플리케이션은 웹 프라우저에 응답(Response)을 반환하는데, 주로 동적인 HTML 페이지를 생성하면서 응답한다
- URLs: 단일 함수를 통해 모든 URL 요청을 처리하는 것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽다. URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 뷰(view)로 보내주기 위해 사용된다. 또한 URL mapper는 URL에 나타나는 특정한 문자열이나 숫자의 패턴을 일치시켜 데이터로서 뷰 함수에 전달할 수 있다.
- View: 뷰는 HTTP 요청을 수신하고 HTTP 응답을 반환하는 요청 처리 함수이다. 뷰는 Model을 통해 요청을 충족시키는데 필요한 데이터에 접근한다. 그리고 탬플릿에게 응답의 서식 설정을 맡긴다.
- Models: 모델은 응용프로그램의 데이터 구조를 정의하고 데이터베이스의 기록을 관리(추가, 수정, 삭제)하고 쿼리하는 방법을 제공하는 파이썬 객체이다.
- Templates: 탬플릿은 파일의 구조나 레이아웃을 정의하고(예: HTML 페이지), 실제 내용을 보여주는 데 사용되는 플레이스홀더를 가진 텍스트 파일이다. 뷰는 HTML 탬플릿을 이용하여 동적으로 HTML 페이지를 만들고 모델에서 가져온 데이터로 채운다. 탬플릿으로 모든 파일의 구조를 정의할 수 있습니다. 템플릿이 꼭 HTML 타입일 필요는 없다
Django는 이 구조를 '모델 뷰 템플릿(Model View Template)(MVT)' 아키텍처 라고 부른다.
Model View Controller 아키텍처와 많은 유사점을 가지고 있다.
Web Server vs Web Application Server
Web Server
Apache, ninx, IIS
필요로 하는 페이지들을 미리 만들어놔야한다.
사용자는 미리 만들어놓은 1.html로 접속을 하게된다(Static - 정적)
성능이 아주 빠르고 간단하다
Web Application Server
django, flask, php, jsp, ROL
웹페이지를 생성하는 프로그램을 하나 만들어놓으면 된다.
사용자가 /read/1/로 접속하게 되면 1에 해당하는 값을 DB같은곳에서 가져와서 그 순간에 HTML 코드를 만들어 응답하게 된다(Dynamic - 동적)
웹 서버에 비하면 느리고 복잡하다.
유지보수가 매우 좋다.
개인화에 대한 정보를 만들 수 있다.
출처 : https://www.youtube.com/watch?v=QX8CQMycDa0&list=PLuHgQVnccGMDLp4GH-rgQhVKqqZawlNwG&index=4
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Introduction
'Backend > Python' 카테고리의 다른 글
Web Framework Django 시작하기(5) - CRUD의 Create (0) | 2022.01.11 |
---|---|
Web Framework Django 시작하기(4) - CRUD의 Read (0) | 2022.01.11 |
Web Framework Django 시작하기(2) - Routing URLConf ★ (0) | 2022.01.10 |
Web Framework Django 시작하기(1) - 프로젝트 생성 (0) | 2022.01.08 |
Python Multithread vs Multiprocessing (0) | 2021.12.29 |