반응형
장고를 접하게 되면서 장고의 디자인 패턴에 대해 공부하며 작성해보려 한다.
1. MTV 패턴 (Model - Template - View)
3가지로 영역을 나눠 독립적으로 프로그램을 개발하는 패턴이다.
Java의 MVC 패턴의 단점을 보완한 것이라고 생각하면 된다.
백엔드로직과 프론트앤드 디자인 분리가 가능하다.
✓ Model
django.db.models.Model 클래스 상속을 받는, 장고와 데이터 베이스를 연결시켜주는 코드이다.
각 모델들은 데이터 베이스의 테이블과 매핑이 되고 모델의 속성은 데이터 베이스 필드를 나타낸다.
파일은 기본 생성되며, 파일명은 models.py 이다.
✓ Template
장고에서 template 디렉터리 내에 HTML 파일을 이용해 웹 브라우저로 돌려주는 코드이다.
장고를 사용하는 우리에게는 제공될 결과물의 형태를 보여준다.
나의 경우 ToDolist 를 하며, 직접 폴더와 파일을 생성해서 HTML 코드를 작성했다.
✓ View
파이썬의 함수(function) 을 사용하며, 사용자의 요청을 받아 처리하는 웹 사이트의 로직을 가지는 코드이다.
쉽게 말하자면 Template 에서 설정한 HTML 코드를 웹 페이지에 보이도록 요청하는 과정이다.
파일은 기본 생성되며, 파일명은 views.py 이다.
2. MVC 패턴 (Model - View - Controller)
하나의 애플리케이션이나 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구별하는 패턴이다.
단순하고 가장 보편적으로 사용하는 디자인패턴이다.
but) View와 Model 사이의 의존성이 높아 어플리케이션이 커질 수록 복잡하지고 유지보수가 어렵다.
✓ Model
어플리케이션(소프트웨어)에서 사용되는 데이터와 그 데이터를 처리한다.
MTV의 Model과 같은 역할을 한다.
✓ View
사용자에게 보여주는 UI이다.
MTV의 Template과 같은 역할을 한다.
✓ Controller
사용자의 입력을 받고 처리한다.
MTV의 View와 같은 역할을 한다.
반응형
'웹개발' 카테고리의 다른 글
[UI/UX] 디자인 간략하게 알아보기 (0) | 2023.08.12 |
---|---|
쿠키?? 세션?! (+ 캐시?) 차이점 확실히 알고가자! (0) | 2023.08.01 |
jinja2 template 진자 템플릿이 뭐길래?? (0) | 2023.08.01 |
웹 브라우저 URI? URL? URN? 도대체 차이점이 뭐야?? (0) | 2023.07.25 |
웹 개발 기본 지식 알고가자! - 프로토콜 편(TCP? IP? UDP?) (0) | 2023.07.25 |