오늘은 Design Patterns의 한 종류인 MVC 패턴에 대해 알아보겠습니다.
Design Pattern은 코드를 조직적으로 구성하는 방법입니다. 이를 통해 코드의 복잡성을 줄여 가독성을 높이고 유지 보수를 보다 쉽게 할 수 있습니다.
또한 다른 사람과 공통된 Design Pattern을 사용한다면 협업에 굉장히 유리해지겠죠.
Design Pattern은 굉장히 많은 종류가 있습니다. MVVM, MVP, MVC 등등이 있죠.
오늘은 그 중에서도 iOS 개발에서 권장되는 MVC 패턴을 알아보겠습니다.
MVC 패턴이란?
MVC 패턴은 Design Pattern 의 한 종류로, Model-View-Controller 의 3가지로 Component로 이루어진 패턴을 의미합니다.
각각의 Component들은 무슨 의미를 가지며 어떤 역할을 수행할까요?
M 은 Model을 의미하며 어플리케이션의 Data를 저장하고 그 Data를 처리하는 Logic을 담당합니다. 퀴즈 앱을 예로 든다면 문제 리스트와 그 문제 각각에 대한 답, 정답 개수 등등을 저장하고 처리하는 것을 담당합니다.
V 는 View를 의미합니다. 이름처럼 어플리케이션에서 User Interface를 다루는 Component입니다. 퀴즈 앱을 예로 들면 사용자에게 직접 보여지는 화면입니다.
C 는 Controller 를 의미합니다. 위의 그림을 보면 Mediator(중재자)라고 표현했는데, 한 마디로 Model과 View를 연결해주는 역할을 합니다. 퀴즈 앱에서 사용자가 정답을 입력하고 제출을 누르면 View에서 어떤 답을 입력했는지를 Controller를 통해 Model에게 전달해줍니다.
MVC 패턴의 Process
그림을 통해 MVC 패턴의 프로세스를 설명하겠습니다.
- View에서 사용자가 버튼을 누르는 등의 event가 발생합니다.
- View의 event가 Controller에게 전달됩니다.
- Controller는 버튼이 눌리면 소리가 나게 하는 등의 기능을 수행하고 Data가 필요하다면 Model에게 요청을 합니다.
- Model은 요청을 받아 요청에 따른 처리를 수행하고 다시 Controller에게 data를 반환해줍니다.
- Controller는 Model에게 새로운 data를 받아서 View, 즉 User Interface를 변경합니다.
오늘은 MVC 패턴에 대해 알아보았습니다. MVC 패턴은 iOS 뿐만 아니라 다양한 분야에서 사용되는 만큼 알아두면 상당히 유용할 것 같습니다.