[ iOS ] MVC 패턴에 대해 알아보자

이숭인·2021년 9월 3일
0

[ Swift ]

목록 보기
10/13

MVC 패턴이란?

MVC 패턴은 애플에서 기본적으로 지원하는 디자인 패턴으로, Model + View + Controller 구조의 아키텍처 패턴을 말합니다.

각 영역에 대해 알아보장.

Model 은 앱의 데이터와 비즈니스 로직을 갖고 있다.

View 는 사용자에게 데이터를 보여주거나 UI를 담당한다.

ControllerModelView 의 중간다리 역할로 View로부터 사용자의 action을 받아 Model에게 어떤 작업을 해야 하는지 알려주거나, Model의 데이터 변화를 View에게 전달하여 View를 어떻게 업데이트할지 알려준다.




영역별 소통

Controller 는 Model 과 View 에 직접 소통할 수 있지만 Model 과 View 는 Controller에 직접적으로 알릴 수 없다.

그러면 Model 의 데이터가 변경되거나, View 에서 사용자의 action 을 Controller 에게 알릴 쑤 있으까?


View to Controller

Controller는 View에서 발생할 수 있는 action에 대한 target을 만들어둔다.
그래서 View에서 유저의 action이 발생할 경우 Controller에 있는 target이 이를 받아들이고 작업을 수행한다.
또한 View는 delegate 패턴의 delegate와 datasource를 이용하여 Controller에게 어떤 작업을 수행해야하는지 알리기도 한다.
대표적인 예로 UITableView의 UITableViewDelegate와 UITableViewDatasource를 들 수 있다




Model to Controller

Model은 Observer 패턴의 NotificationKVO(Key Value Observation) 를 통해 Controller에게 알린다.

NotificationKVO는 일을 수행하는 객체(publisher)가 진행하던 작업이 끝나면 자신들을 구독 중인 객체들(subscribers)에게 신호를 보내는 방식이다.

간단하게 설명하자면, 작업이 완료됐을 때 라디오 센터에서 전파를 보내는 것처럼 Controller에게 신호를 보낸다.


profile
iOS Developer

0개의 댓글