MVC 란?

E_H·2021년 3월 23일
0

Architecture

목록 보기
2/3

개요

Model View Controller의 형태이며 70년대 smalltalk에서 소개
애플의 문서에도 소개되어있으며 웹 애플리케이션에서 많이 쓰였다고도 한다.

MVC는 무엇인가?

Model

데이터를 캡슐화하고 데이터들을 조작하고 처리하는 논리 및 계산을 정의한다.
Model 객체는 자신의 데이터를 표시하고 사용자가 해당 데이터를 편집할 수 있도록 하는 View 객체에 명시적으로 연결되지 않아야 하며, 이는 사용자 인터페이스 및 표시 문제와 관련이 없어야 한다.

View

사용자가 보는 프로그램의 개체이다. View는 사용자 작업에 응답할 수 있으며
View의 주요 목적은 프로그램의 Model 객체의 데이터를 표시하고 해당 데이터를 편집할 수 있도록 하는 것이다.

Controller

Controller는 하나 이상의 View하나 이상의 Model 사이의 매개체 역할을 하며 프로그램의 동작방식을 제어한다.

MVC는 이 세 가지를 주체로 하여 구현을 하면 효율적으로 만들 수 있다는 방법론이다.

동작방식

  1. 유저가 어떤 이벤트 수행 ( View )
  2. Controller가 이벤트를 받고 수행할 메소드를 Model에 전송
  3. Model에서 메소드를 수행하고 결과물을 Controller에 반환
  4. Controller에서 반환받은 내용을 View로 반환
  5. View 에서 이벤트 결과 확인

이 순서로 나타낼 수 있다.

정리

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

0개의 댓글