difference
우선 아키텍처 패턴(Architecture Pattern)은 소프트웨어 내부에 존재하는 구조적인 패턴을 말합니다. 대표적으로 10개 정도가 있습니다.
◆ 아키텍처 패턴
-. 계층화 패턴(Layered pattern)
-. 클라이언트-서버 패턴(Client-server pattern) : 우리 주변의 웹 사이트, 온라인 게임 등
-. 마스터 슬레이브 패턴(Master-slave pattern)
-. 파이프-필터 패턴(Pipe-filter pattern)
-. 브로커 패턴(Broker patttern)
-. 피어 투 피어 패턴(Peer-to-peer pattern)
-. 이벤트-버스 패턴(Event-bus pattern)
-. MVC 패턴(Model-View-Controller pattern)
-. 블랙보드 패턴(Blackboard-pattern)
-. 인터프리터 패턴(Interpreter pattern)
![]() |
![]() |
![]() |
위의 패턴들 중에서 Django MVT 패턴가 비슷한 MVC 패턴에 대해 같단히 정리하고 가겠습니다.(이전에 정리해보았던 MVC 패턴도 확인해주세요!) MVC 패턴은 Model, View, Controller 세 가지로 나눠서 개발하는 패턴입니다. Model은 데이터를 저장, 보관하고 View는 사용자에게 보여지는 부분을 담당하고 Controller는 사용자의 입력을 받아 로직을 처리합니다. 이렇게 역할을 분리하여 개발하면 분업이 가능해지고 프로그램 완성도 더 빨리 할 수 있습니다!
MVT 패턴은 Model, View, Template를 합친 것인데요, 하나씩 살펴보겠습니다. Model은 데이터 구조를 생성하고 데이터베이스와 소통하는 역할을 합니다. Model로 데이터 구조를 정리하면 Django는 CRUD를 통해 데이터 베이스와 소통합니다. Template는 이전 시간에 다뤘었는데요, 웹 사이트의 화면 구성을 담당하며 Template Language를 통해 매번 바뀌는 동적인 화면을 구성합니다. 만약 유튜브를 생각하면 영상, 제목, 댓글은 변경되더라도 기본적인 틀은 동일합니다. 여기에 Template Language를 이용하면 변하는 세부 내용들도 채워넣을 수 있습니다! 마지막으로 View는 웹 사이트의 로직을 담당하고 Model과 Template 사이를 연결해 줍니다. 즉 요청(Request)이 들어오면 요청을 처리하여 응답(Response)해주는 역할을 합니다!
MVC 패턴과 차이점은 MVC 패턴의 View가 하는 역할을 MVT 패턴의 Template이 하고 MVC 패턴의 Controller가 하는 역할을 MVT 패턴의 View가 합니다! Django에서 MVT 구조를 하는 이유는 MVC의 Controller가 했던 역할의 일부를 Django 프레임워크가 직접 처리합니다. 따라서 개발자는 Model, View, Template에 집중하고 나머지는 Django프레임워크가 직접 처리해줍니다.
The following wiki, pages and posts are tagged with
Title | Type | Excerpt |
---|---|---|
2021-10-01-wiki-magnific-popup.md | post | 지킬 블로그에 이미지 확대 기능 추가하기 |
Jekyll + liquid | post | Monday-jekyll-liquid, jekyll install on mac and ubuntu using docker |
css tips for web development | post | Tue, Oct 19, 21, tools, fonts cascading and selectors |
auto focus when page loads | post | Tue, Oct 19, 21, auto-focus media-query google-font |
keycode css trics for search focus | post | Wednesday-keycode, how to find keycode for the kb input keys |
using css and jquery to switch between themes | post | Wed, Oct 20, 21, toggle icon, flash loading fix, DOM loaded before show content |
tools for webdev | post | Sat, Oct 23, 21, tools for webdev frameworks, drawing, visualization text-editor |
Complete guide to django rest framework and vue js | post | Wed, Nov 10, 21, Build professional REST APIs and spa with django vue |
mvc-mvt definition | post | Fri, Dec 24, 21, difference between mvc and mvt |
로컬 구글 Apps Script 개발 | post | 튜토리얼 따라하기 |
개발자의 글쓰기 | post | 개발자 글쓰기의 3원칙 : 정확성, 간결성, 가독성, 변수 네이밍부터 릴리스노트... |
파이썬 코딩의 기술 2판 | post | 똑똑하게 코딩하는 법 |
자바스크립트는 왜 그 모양일까? | page | 더글라스 크락포드가 알려주는 |
javascript for impatient | page | Exploit the power of modern javascript and avoid the pitfalls |
Practical Vim | post | 손이 먼저 반응하는 |
리팩토링 2판 | page | 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 |
한 권으로 끝내는 정규표현식 | page | 여덟 가지 프로그래밍 언어별 완벽 해설 |
자바스크립트 코딩의 기술 | page | 똑똑하게 코딩하는 법 |
typescript로 개발시 파일 순서 문제 | post | typescript hoisting filepushorder |
css-meaning.md | post | toc의 css를 조정하다가 우연히 깨닫게 된 CSS 어원의 의미 |
Djangovue a fastrack to success | page | summary. |
refactoring.md | post | toc의 css를 조정하다가 우연히 깨닫게 된 CSS 어원의 의미Javascript 에서 출력된 html string을 브라우저로 확인하기 |
wiki-favicon.md | post | favicon 추가 방법, 관련 링크 |
wiki-innerhtml.md | post | View 에서 가져온 data 를 표기하는 과정에서 문득 value, textContent, innerHTML, innerText의 차이 |
wiki-toc2side.md | post | CSS및 SCSS에 대한 정리 |