[iOS] MVC 패턴

Erick·2023년 1월 21일
0

iOS

목록 보기
2/4
post-thumbnail

MVC 패턴


디자인패턴이란?

MVC패턴에 대해 알아보기 이전에 디자인패턴이 무엇인지 간단히 말해보겠습니다.

우리가 개발을 하며 반복적으로 생기는 문제들은 나 혼자 겪는 문제가 아닌 모두의 문제이기도 합니다.
하여 이러한 문제들을 더 쉽게 해결하기 위해 사용하는 일종의 해결책을 디자인패턴이라고 합니다.

MVC 패턴

MVC패턴이란 Model, View, Controller의 줄임말로 디자인패턴의 일종입니다.
디자인패턴 중에서도 구조패턴이라고 할 수 있으며, 우리가 앱을 만들 때 그 구성 요소를 Model, View, Controller 3가지로 나누어 만들도록 하는 패턴입니다.

Model, View, Controller가 각각 어떤 역할을 하는지 설명하겠습니다.

Model

Model은 앱 내 비즈니스 로직, 데이터를 담당합니다.
사용자가 원하는 모든 데이터를 가지고 있어야 하며, View나 Controller에 대한 어떠한 정보도 가지고 있지 않아야 합니다.

View

View는 사용자가 보는 화면 및 UI를 담당합니다.
Model의 데이터를 출력하여 사용자에게 보여주지만, 데이터를 따로 저장하거나 Model, Controller의 역할을 알고 있으면 안 됩니다.

Controller

Model과 View를 잇는 다리 역할을 하며, 두 개의 요소에 대에 알고 있어야 합니다.
그리고 Model과 View를 관찰하며 View에서는 사용자의 Action을 Model에게 알리고, Model에 새로운 데이터가 생긴다면 View에 알리는 역할을 해야 합니다.

MVC 패턴의 장점 및 단점

장점

  • 코드를 요소별로 분리하여 파일 하나에 코드가 너무 길어지는 것을 방지하여 가독성을 높일 수 있다.
  • 기능별로 코드를 분리하여 협업을 할 때 파트를 나누어 프로젝트를 진행할 수 있다.
  • 개발 속도가 다른 패턴에 비해 빠르고, 가장 기본적인 구조패턴이므로 다른 개발자가 보다 쉽게 접근할 수 있다.
  • 코드 가독성이 높고 요소가 분리되어 있어 유지 보수가 쉽다.

단점

MVC패턴의 단점은 명확합니다.
Model과 View가 Controller를 사이에 두고 연결되어 있어 완전한 분리가 불가능하며, Controlller를 통해 소통하므로 프로젝트가 커질수록 Controller가 무거워질 수 있습니다.
그리고 iOS는 주로 ViewController를 사용하기 때문에 View와 Controller 간의 의존성이 높아져 재사용성이 낮아집니다.


마치며

새롭게 진행하는 프로젝트를 MVC패턴을 사용하여 만들어보고 싶어서 MVC패턴에 대해 포스팅하게 되었습니다.
간단한 개인 프로젝트라 MVC패턴을 활용해도 충분히 좋을 것 같고, MVP, MVVM패턴들을 사용하기 이전에 가장 기본적인 MVC패턴부터 사용해보고 싶다는 생각을 하여 MVC패턴으로 프로젝트를 진행하게 될 것 같습니다.
다음 포스팅은 새로운 프로젝트 포스팅으로 돌아오겠습니다.

profile
iOS Developer

0개의 댓글