iOS

[iOS] MVC 패턴

Model, View, Controller

Posted by dongjune on December 13, 2020

오늘은 Design Patterns의 한 종류인 MVC 패턴에 대해 알아보겠습니다.

Design Pattern은 코드를 조직적으로 구성하는 방법입니다. 이를 통해 코드의 복잡성을 줄여 가독성을 높이고 유지 보수를 보다 쉽게 할 수 있습니다.
또한 다른 사람과 공통된 Design Pattern을 사용한다면 협업에 굉장히 유리해지겠죠. Design Pattern은 굉장히 많은 종류가 있습니다. MVVM, MVP, MVC 등등이 있죠.

오늘은 그 중에서도 iOS 개발에서 권장되는 MVC 패턴을 알아보겠습니다.

MVC 패턴이란?

MVC 패턴은 Design Pattern 의 한 종류로, Model-View-Controller 의 3가지로 Component로 이루어진 패턴을 의미합니다.
스크린샷 2020-12-13 오전 11 44 54

각각의 Component들은 무슨 의미를 가지며 어떤 역할을 수행할까요?
스크린샷 2020-12-13 오전 11 45 29

MModel을 의미하며 어플리케이션의 Data를 저장하고 그 Data를 처리하는 Logic을 담당합니다. 퀴즈 앱을 예로 든다면 문제 리스트와 그 문제 각각에 대한 답, 정답 개수 등등을 저장하고 처리하는 것을 담당합니다.

VView를 의미합니다. 이름처럼 어플리케이션에서 User Interface를 다루는 Component입니다. 퀴즈 앱을 예로 들면 사용자에게 직접 보여지는 화면입니다.

CController 를 의미합니다. 위의 그림을 보면 Mediator(중재자)라고 표현했는데, 한 마디로 Model과 View를 연결해주는 역할을 합니다. 퀴즈 앱에서 사용자가 정답을 입력하고 제출을 누르면 View에서 어떤 답을 입력했는지를 Controller를 통해 Model에게 전달해줍니다.

MVC 패턴의 Process

스크린샷 2020-12-13 오전 11 46 16

그림을 통해 MVC 패턴의 프로세스를 설명하겠습니다.

  1. View에서 사용자가 버튼을 누르는 등의 event가 발생합니다.
  2. View의 event가 Controller에게 전달됩니다.
  3. Controller는 버튼이 눌리면 소리가 나게 하는 등의 기능을 수행하고 Data가 필요하다면 Model에게 요청을 합니다.
  4. Model은 요청을 받아 요청에 따른 처리를 수행하고 다시 Controller에게 data를 반환해줍니다.
  5. Controller는 Model에게 새로운 data를 받아서 View, 즉 User Interface를 변경합니다.

오늘은 MVC 패턴에 대해 알아보았습니다. MVC 패턴은 iOS 뿐만 아니라 다양한 분야에서 사용되는 만큼 알아두면 상당히 유용할 것 같습니다.