- Design Pattern
- GoF 객체지향적 디자인패턴 카테고리
- MVC VS MTV
Spring Framework을 사용하다보면서 MVC을 알게되었습니다.
그런이유에서 Design Pattern에 대해 찾아보며 정리해보았습니다.
✅ 기존환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어 나갈지에 대한 구조
✅ GoF(Gang of Four)디자인 패턴은 소프트웨어 공학에서 가장 많이 사용되는 디자인 패턴이며,목적에 따라 분류할 시 생성 패턴 5개, 구조 패턴 7개, 행위 패턴 11개로 구성된다.
1) 생성(Creational) 패턴
→ Singleton / Abstract Factory / Factory Method / Builder / Prototype
2) 구조(Structural) 패턴
→ Adapter / Composite / Decorator / Facade / Flyweight / Proxy
3) 구조(Structural) 패턴
→ Command / Interpreter / Iterator / Mediator /
Memento / Observer / State / Strategy / Template Method
Scope | Creational Pattern | Structural Pattern | Behavioral Pattern |
---|---|---|---|
Class | Factory Method | Adapter | Interpreter / Template Method |
Object | Singleton | Composite | Command |
Abstract Factory | Decorator | Iterator | |
Builder | Facade | Mediator | |
Prototype | Flyweight | Memento | |
Proxy | Observer | ||
State | |||
Strategy |
✅ MVC는 Spring Framework, MTV는 Django Framework에서 사용되는 Design Pattern
: Model, View, Controller로 구분된 패턴, 이때 각각의 구성요소가 다른 요소들에게 영향을 미치지 않아야 한다.
MVC는 구성 요소 간 간섭 없이 각자의 역할에만 충실해야 한다는 패턴
- Model : 데이터를 가지고 있으며, 데이터를 처리하는 로직을 포함
- View : 화면에 요청에 대한 결과물을 보여주는 역할 (유저와 어플리케이션 간의 인터페이스)
- Controller : 모델과 뷰를 이어주는 역할
→ 요청에 따라 모델에게 적절한 로직을 가동하도록 알려주고 모델이 응답시, 응답을 뷰에 전달
MVC Pattern
Model, Template, View로 구성된 패턴
→ MTV Pattern은 전반적으로 MVC Pattenr에 대응되는 성격이 있는듯
##URLConf Example
from django.urls import path
from . import views
app_name = 'project'
urlpatterns = [
path('', views.HomeView.as_view(), name='home'),
path('login/', views.LoginView.as_view(), name='login'),
]
https://tibetsandfox.tistory.com/16
https://developer.mozilla.org/ko/docs/Glossary/MVC
https://tecoble.techcourse.co.kr/post/2021-04-26-mvc/
https://beomy.tistory.com/43
https://velog.io/@hidaehyunlee/Django-MTV-%ED%8C%A8%ED%84%B4