MVC
- ️모델(Model), 뷰(View), 컨트롤러(Controller)의 약자
- 애플리케이션을 세 가지 역할로 구분한 개발 방법론(디자인턴)
- 모델: 데이터와 비즈니스 로직을 관리합니다.
- 뷰: 레이아웃과 화면을 처리합니다.
- 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅합니다.
1. Model
- 모델은 앱이 포함해야할 데이터가 무엇인지를 정의합니다.
- 데이터의 상태가 변경되면 모델을 일반적으로 뷰에게 알립니다.
(따라서 필요한대로 화면을 변경할 수 있습니다.) - 업데이트된 뷰를 제거하기 위해 다른 로직이 필요한 경우
컨트롤러에게 알리기도 합니다.
(예) 쇼핑리스트 앱에서의 Model의 역할
: 리스트 항목이 포함해야 하는 데이터(품목, 가격, 등)와
이미 존재하는 리스트 항목이 무엇인지를 지정
2. View
- 뷰는 앱의 데이터를 보여주는 방식을 정의합니다.
(예) 쇼핑 리스트 앱에서의 View의 역할
:뷰는 항목이 사용자에게 보여지는 방식을 정의하며,
표시할 데이터를 모델로부터 받습니다.
3. Controller
- 컨트롤러는 앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함합니다.
(예) 쇼핑 리스트 앱에서의 View의 역할
- 쇼핑 리스트는 항목을 추가하거나 제거할 수 있게 해주는 입력 폼과 버튼
- 업데이트할 경우
:모델이 업데이트되는 것이므로 입력이 컨트롤러에게 전송되고,
모델을 적당하게 처리한다음, 업데이트된 데이터를 뷰로 전송합니다. - 단순한 업데이트를 할 경우
(예를 들면, 항목을 알파벳순서로 정렬한다거나, 가격이 낮은 순서 또는 높은 순서로 정렬)
:단순히 데이터를 다른 형태로 나타내기 위해 뷰를 업데이트할 경우에는
컨트롤러는 모델을 업데이트할 필요 없이 바로 처리할 수 있다.
- 업데이트할 경우
MVC 패턴의 과정
사용자가 #1Controller를 조작하면
➡️ Controller는 #2Model을 통해 데이터를 가져오고
➡️그 데이터를 바탕으로 #3View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 되는 패턴입니다.
MVC 패턴의 장점
- Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성.유연성에 유리하다.
- 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행 가능하게 해준다.
MVC 패턴의 단점
- 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있습니다.
- MVC패턴에서 View는 Controller에 연결되어 화면을 구성하는 단위 요소이므로
다수의 View를 가질 수 있습니다. - 그리고 Model은 Controller를 통해서 View와 연결되지만,
Controller에 의해서 하나의 View에 연결될 수 있는 Model도 여러 개가 될 수 있어
View와 Model이 서로 의존성을 띄게 됩니다.
- MVC패턴에서 View는 Controller에 연결되어 화면을 구성하는 단위 요소이므로
(참고)
공부한 내용을 여러글과 책 읽은 내용을 바탕으로 정리하고 있습니다.
좋은 글로 저의 공부에 도움을 주시는 분들께 감사드립니다.