TIL 20 | Django의 개념과 MVT패턴

Yoonsik·2022년 5월 23일
0

Django

목록 보기
1/5
post-thumbnail

장고(Django)란 무엇인가?

장고는 파이썬으로 작성된 오픈 소스 웹 프레임워크로, 모델-뷰-템플릿(MVT) 패턴을 따르고 있다.

장고는 웹 개발에서 번거로운 요소들을 새로 개발할 필요 없이 내장된 기능만을 이용해 빠른 개발을 할 수 있다는 장점을 가지고 있다.

이를 더 자세히 설명하면, 웹 사이트를 구축할때는 비슷한 유형의 요소들이 항상 필요하다.
예를들면 회원가입, 로그인, 로그아웃과 같이 사용자 인증을 다루는 방법 이나 웹사이트의 관리자 패널, 폼, 파일 업로드와 같은 것들 .. 크게는 데이터, 흐름, 화면 이 있다.

이런것들을 웹 개발 할때마다 매번 백지상태에서 다시 만드는 것보다, 공통적인 요소들 즉, 기본적인 틀은 그대로 가져다 쓰는게 더욱 편하고 효율적일 것이다. 이런 역할을 하는 프레임워크가 여러종류가 존재하는데, 그중에서 파이썬으로 작성된 가장 대표적인 웹 프레임워크가 바로 장고(Django)이다 !

이런 장고와 같은 프레임워크들을 사용하면서 웹 개발 시 매번 필요한 비슷한 유형의 요소들을 새로 개발하여야 한다는 문제에서 해방되고, 새로운 웹사이트를 개발할 때 뒤따르는 간접비용을 줄일 수 있게 된다.

프레임워크란?

프레임워크는 뼈대나 틀을 의미한다. 이때 장고는 웹(Web) 프레임워크로, 웹 개발을 하는데 있어서의 뼈대라고 할 수 있다.

장고의 기능

  • 데이터베이스를 쉽게 사용할 수 있게 해주는 기능
  • 그 외, 수많은 백앤드 관련 기능
  • 백엔드에서 프론트엔드에게 데이터를 넘겨주고, 그 데이터를 프론트엔드에서 사용하는 것까지 모두 장고로 구현 가능

이러한 기능들을 보면, 장고는 프런트엔드 / 백엔드 프레임워크로 나눠서 생각하기 보다 두 분야 모두 가능한 풀 스택 프레임워크라고도 생각 할 수 있다.

장고의 MVT(Model View Template) 패턴

모델(Model)

모델은 데이터에 관한 정보를 담는다. 데이터에 대한 접근, 검증, 작동과 데이터 사이의 관계를 정의하는데, 일반적으로 각각의 모델은 데이터베이스에서 테이블에 해당한다.

데이터 베이스 테이블 정의 - 필드명, 필드 타입 등을 정의

뷰(View)

어떤 데이터가 표시될 것인지를 정의한다(데이터 처리 - controller). 뷰는 HTTP 응답(response)를 반환해야 하며 응답의 종류는 웹 페이지, 리디렉션, 문서 등의 다양한 형태가 가능하다.

로직 처리 - 데이터를 가져와 데이터 가공해 돌려주기

템플릿(Template)

데이터가 어떻게 표시되는 지를 정의한다. 템플릿은 사용자에게 실제로 보여지는 웹 페이지나 문서를 다룬다. (HTML, CSS)

사용자가 보게 될 화면의 모습을 정의(프론트 영역)

+ URLconf

추가로 유저와 View 사이에는 URLconf(URL 설계)라는 단계가 있다.

URL 패턴을 정의하여 해당 URL과 View를 매핑한다. (path 함수 이용)

MVT 패턴의 Workflow

Ex)

사용자가 브라우저에서 어떠한 URL을 입력하면 urls.py파일에 정의해둔 리스트중 하나를 골라서 Template에 있는 main.html 파일을 보여줄 수 있다.


📌 참조 목록

장고란 무엇인가요?
장고(웹 프레임워크)
장고 프레임워크는 무엇인가요?
MVT (Model - View - Template) 패턴이란?

profile
꾸준함의 힘

0개의 댓글