앞의 글에서 Django는 Python의 프레임워크란걸 배웠고 프레임워크와 라이브러리의 차이를 배웠습니다.
MVT pattern에 공부하려고 합니다
우선 MTV모델이란 위의 사진처럼 Model , View , Template로 이루어져있습니다.
하나하나 살펴 봅시다.
1.Model
- 모델은 DB에 저장되는 데이터들을 의미합니다.
- 모델은 클래스로 정의되며 하나의 클래스가 하나의 DB Table입니다.
- 다른 프레임워크들은 SQL로 DB에 접근하지만 장고는 ORM(Object Relational Mapping)기능을 지원합니다
- 이 ORM기능 덕부에 파이썬 코드로 DB를 조작할 수 있습니다.
2.Template
- 유저에게 보여지는 화면을 의미합니다.
- Model에서 다룬 데이터와 VIew에서 다룬것들이 합쳐져 Template에서 유저에게 화면을 제공합니다.
3.View
- 메소드로 구현되며, HTTP request를 받아 HTTPResponse를 반환하는 형태입니다.
- model과 template를 중계하며 비즈니스 로직의 핵심입니다.
- "기능"의 영역에 해당하는것들은 대부분 view에서 이루어진다.
Django work flow
위의 사진은 실제 장고의 work flow 입니다.
처음보는게 하나 생겼습니다. URLconf? urls.py
URLconf
아래의 사진은 장고의 튜토리얼에 따라 작성한 프로젝트의 urls.py입니다.
도메인/polls/로 사용자가 접속하면 이 접속은 polls.urls 로 넘겨줍니다.
이 프로젝트의 directory 구조는 아래와 같습니다.
위에있는 노란색 urls.py가 위의 사진이고 polls/로 접속한 사용자의 요청은 polls.urls.py로 넘겨받게됩니다.
아래는 pools.urls.py파일입니다.
이요청들은 다 views로 넘어가 models 거쳐 정제된 api 가 되는것입니다.
다시 django work flow 사진을 보면 이상한 부분이 있습니다.
그렇습니다. tamplate가 빠져있습니다.
Django는 2세대웹에 개발된 워크플로우로 그시절에는 Django로 모든것을 구현하였기에 Template기능이 있었지만
현재는 백엔드와 프론트엔드가 나뉘어져 Django의 Template는 프론트엔드에서 처리하는 부분이 되었습니다.
(현재 Template의 경우는 백엔드 개발자들이 관리자 도구를 만들때 정도 사용합니다.)
결국 Template를 제외한 나머지들로 API를 만들어서 프론트엔드에 전달하는게 백엔드 개발자의 역할입니다.
아래는 조금더 설명이 잘된 work flow 사진입니다.
노란 상자를 통해 백엔드 개발자는 API를 생성하는 것 입니다.
'Python > Django' 카테고리의 다른 글
Project start(2) 프로젝트 기본셋팅 (0) | 2022.06.04 |
---|---|
Project start(1) 미니콘다 설치 및 사용하기 (0) | 2022.06.04 |
가상환경이란? (0) | 2022.06.04 |
백엔드 개발자가 만든다는 API란 무엇일까?! (0) | 2022.06.03 |
프레임 워크란 무엇일까!? (0) | 2022.06.01 |