Skip to content

Latest commit

 

History

History
69 lines (47 loc) · 2.6 KB

2019-05-19-MVC.md

File metadata and controls

69 lines (47 loc) · 2.6 KB
layout title date category tags
post
MVC
2019-05-18 18:12:55 -0700
post
ios

# MVC * 위키백과의 MVC [위키백과](https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC) * Apple MVC [documentation](https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html)

iOS 앱의 객체 관계는 MVC 패턴에 기반하고 있다.


MVCimg

MVC 패턴

MVC패턴 이란?

  • 소스 코드 설계 기법으로써, Model-View-Controller 로 이어지는 세개의 핵심 구조를 이용하여 애플리케이션을 설계 하는것을 말한다.

  • Model: 모델은 데이터를 담당

  • View: 뷰는 데이터에 대한 화면 표현을 담당

  • Controller: 모델과 뷰사이에 위치하여 데이터를 가공하여, 뷰로 전달하고 뷰에서 발생하는 이벤트를 입력받아 처리하는 역할 담당


요약

  • 3가지 요소를 설명하면

    • Model: 무엇을 할지 정의 비지니스 로직에서의 알고리즘, 데이터 등의 기능을 처리
    • Controller는 어떻게 할지를 정의 화면의 처리기능과 Model과 View를 연결시켜주는 역할
    • View는 화면을 보여주는 역할 웹이라면 Web, 모바일이라면 App 화면의 보여지는 부분
  • MVC 문제점:

    복잡한 대규모 프로그램을 개발할때,

    다수의 View와 Model이 Controller를 통해 복잡하게 연결될 수 있기 때문에,

    Controller가 커지게 되는 Massive ViewController(대규모 MVC 어플리케이션) 되어 버림.

    View와 Controller가 라이브사이클에 강하게 연결되어있고,

    더불어 Controller를 통해 View와 Model간에도 관계가 복잡하게 연결되어있어서,

    수정시 테스트가 힘들고, 파악이 어렵기 때문에 여러 Side-Effect를 불러오게 되는 문제점 있다.

    그래서 MVC는 위 문제점을 해결하기 위해 여러 패러다임을 수용한 다양한 패턴을 파생시킴


내 생각 한마디!!

애플의 MVC 패턴은 View와 Controller가 강하게 연결되어 있어 View Controller가 모든 일을 하는것 같다.