Model View Controller의 형태이며 70년대 smalltalk에서 소개
애플의 문서에도 소개되어있으며 웹 애플리케이션에서 많이 쓰였다고도 한다.
데이터를 캡슐화하고 데이터들을 조작하고 처리하는 논리 및 계산을 정의한다.
Model 객체는 자신의 데이터를 표시하고 사용자가 해당 데이터를 편집할 수 있도록 하는 View 객체에 명시적으로 연결되지 않아야 하며, 이는 사용자 인터페이스 및 표시 문제와 관련이 없어야 한다.
사용자가 보는 프로그램의 개체이다. View는 사용자 작업에 응답할 수 있으며
View의 주요 목적은 프로그램의 Model 객체의 데이터를 표시하고 해당 데이터를 편집할 수 있도록 하는 것이다.
Controller는 하나 이상의 View와 하나 이상의 Model 사이의 매개체 역할을 하며 프로그램의 동작방식을 제어한다.
MVC는 이 세 가지를 주체로 하여 구현을 하면 효율적으로 만들 수 있다는 방법론이다.
이 순서로 나타낼 수 있다.
MVC는 3가지로 구분하여 프로그램을 짤 수 있어 빠르게 구현이 가능하다.
하지만 애플의 MVC설명에도 나와있듯이 Controller가 하나 이상의 View와 Model을 가질 수 있기에 다양한 기능들이 추가될 수록 Controller는 점점 비대해 진다. (그래서 Massive View Controller라고 불리우는 듯 하다.)
현재 예전만큼 간단한 앱이 아닌 다양한 기능들이 추가되어 서비스하는 형태이기 때문에 대용량을 필요료 하는 애플리케이션의 경우 이 아키텍쳐 패턴은 맞지 않을 수 있다.
출처:
https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html
https://tv.naver.com/v/4980400