티스토리 뷰

Heroku에 블로그 배포를 공부하면서 그저 받아쓰기 복붙(복사, 붙여넣기)이 trial-error로 인한 목적없는 반복이 혼란을 가져왔다.

python을 취미로 접근하는 이에게 자체 언어의 명령어에 시달리는 것도 부족해 web, 데이터베이스(DB) 용어들에 치이다보면 거대한 숲길을 해메고 있다는 느낌을 지울 수가 없다. 한 쪽으로 치워두기가 무섭게 반복해서 만날 때면 추상적일지도 모를 이미지가 필요하다. django를 통해 개발 서버로 관리자 모드가 실행되는 것만으로도 가슴벅찬 일임은 분명하다. 하지만 이제 나만의 공간에 무언가를 채우려하니 무작정 따라하는 것만으로는 어렵게 공간을 만들고도 '나만의'라는 유니크한 의미는 아닐 것이다. 아직 먼 이야기이지만 조금 더 나아가기 위해서는변수와 메소드간의 흐름이 django project에서 작용하는 관계를 아는 것이 선행되어야 할 시점이라고 생각한다.

 

시작부터 어려운 이야기를 꺼내놓는 이유는 MTV(Model, Template, View)의 구조에 대한 이해가 필요하기 때문이다.

 

이해를 돕기 위해 도식화가 잘되어있는 부분을 발췌해보았다.(출처 : https://devopedia.org/django)

출처 : https://devopedia.org/django

1번이 우리가 보는 browser이고 HTTP Request가 HTTP Reply로 되돌아오는 과정이 보기좋게 설명되어있다.

여기서 우리가 관심을 가져야할 영역은 Routing, View, Template, Model이다.

 

요약하자면,

Model : 데이터 정보를 다루며 DB 테이블 해당. 일반적으로 python Class로 구성되어있다.

Template : 사용자가 보는 웹페이지, HTML기반으로 작성.

View : request 인자를 통해 Model에서 정의된 데이터를 가져와사용자가 볼 수 있는 형태로 가공 작업을 하며, HTTPRespose를 통해 render나 redirect함수로 return하는 형태로 구성됨 . 일반적으로 python 함수(def)로 구성되어있다.

Router : django urls.py에서 수행하며, View 작동을 위해 request를 전달받기 위한 주소를 할당해주는 역할. 

 

 

'django' 또는 '장고'를 위키백과에서 찾아보면 MTV에 대해 다음과 같이 설명되어있다.(출처 : 장고_(웹_프레임워크))

----------------------------------------이하 위키 특징부분 발췌----------------------------------------

구성

장고는 파이썬으로 코딩한 모델을 관계형 데이터베이스로 구축해주는 모델(Model), HTTP 요청을 처리하는 웹 템플릿 시스템인 뷰(View), URL의 라우팅을 처리하는 URL 컨트롤러 (Controller) 로 구성된 MVC 디자인 패턴을 따른다.

하지만 전통적인 MVC 디자인 패턴에서 이야기하는 컨트롤러의 기능을 프레임워크를 자체에서 하기 때문에 모델(Model), 템플릿(Template), 뷰(View)로 분류해 MTV 프레임워크라고 보기도 한다.

 

모델(Model)

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

장고에서는 모델을 정의할 때 필드의 종류를 지정해줘야 하는데, 이것이 데이터베이스에게 컬럼 타입을 알려주고 HTML 폼으로 표시 될 때의 입력 타입도 내포하는 역할을 한다. 또한 장고의 폼 자동 생성 API 를 이용할 때 데이터 검증에 쓰이기도 한다.

뷰(View)

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

장고에는 자주 사용되는 형태의 뷰를 패턴화하여 추상화 해둔 재사용 가능한 뷰들을 내장해 놓았는데, 이들을 제네릭 뷰(generic view) 라고 하며 원하는 제네릭 뷰를 상속한 클래스 뷰를 생성하여 사용할 수 있다.

템플릿(Template)

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

흔히 HTML 에 기반해서 템플릿을 만들며, HTML 에 동적인 요소를 추가하기 위해 파이썬의 일부 기능을 쓰게 도와주는 장고 템플릿 태그가 존재한다.

내장 애플리케이션

장고에는 아래와 같은 웹 개발에서 자주 쓰이는 애플리케이션이 'contrib' 패키지에 내장되어있다.

----------------------------------------이상 위키 특징부분 발췌----------------------------------------

 

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함