[디자인 패턴] MVC

김태형·2023년 3월 26일
0

디자인패턴

목록 보기
1/1

디자인 패턴

디자인 패턴이란 코드의 유지보수와 협업적인 측면에 있어서 용이하도록 정해놓은 일련의 규칙(템플릿)이다.

여러 가지 디자인 패턴들이 있는데, 그 중에서 가장 기본이 되는 MVC패턴에 대해 알아보았다.

MVC

우선 MVC는 Model, View, Controller로 구성되어 있으며, 기존에 많이 사용하는 UIKit 프레임워크에 적합한 디자인 패턴이다(아마 MVC 패턴을 기반으로 UIKit 프레임워크가 만들어 진 것으로 알고 있다).


Model

  • 앱에 사용되는 데이터와 비즈니스 로직을 담당하는 함수 등을 정의한다. ex. Data.swift, WeatherData.swift 등

View

  • 사용자가 볼 수 있는 화면을 구성한다.
  • 스토리보드를 생각하면 될 것 같다. ex. Main.storyboard 등

Controller

  • Model의 데이터를 View에 띄워주는 역할을 한다.
  • Model과 View의 중간다리 역할로, Model과 View 사이에서 데이터를 전달해준다.
    (Model과 View는 직접적으로 접근할 수 없고, Controller를 통해 소통할 수 있다)
  • ViewController 파일을 생각하면 될 것 같다.
    ex. ViewController.swift 등

장점

  • 애플(UIKit)에서 기본적으로 지원하고 있는 패턴이라 쉽게 적용할 수 있음
  • 다른 패턴에 비해 코드량이 적음
  • 개발속도가 빠르기 때문에 아키텍쳐가 크게 중요하지 않고, 규모가 작은 프로젝트에서 사용하기 편하다.

단점

  • Controller에 의존성이 너무 높다.
    → View와 Controller가 밀접하게 연결되어 있어, 이 둘을 분리하기가 어렵다
  • ViewController에 너무 많은 코드가 작성되어 (Model 데이터 처리, @IBOutlet을 이용한 View와의 결합)
    'Massive View Controller'라고도 부름
  • 규모가 큰 프로젝트일수록 코드가 복잡해지기 때문에 유지보수하기 어려워진다.


이번 정리를 통해 MVC 패턴에 대해 어느정도 알게 되었다.
SwiftUI는 MVC 패턴보단 MVVM 패턴에 적합하다고 하는데, 다음에는 MVVM 패턴과 같은 다른 디자인 패턴에 대해 정리해보겠다.

0개의 댓글