티스토리 뷰

Develop/아키텍처

MVC Pattern

Zartt 2021. 8. 22. 15:37

## 시작하기 전

기본적으로 많이 사용되는 MVC, MVP, MVVM 등의 패턴 중 Apple에서 기본으로 제공하고 있는 MVC 패턴에 대해 알아보려고 합니다.

 

##MVC 패턴이이란?

프로젝트를 Model(M) , View(V), Controller(C)로 나누어 관리하는 패턴입니다.

각 구성요소의 역할은,

- Model: Data를 다루는 부분을 담당

- View: 화면에 보여지는 UI를 담당

- Controller: Model과 View를 연결. View에서 들어온 사용자의 입력을 바탕으로 Model을 변경하고, 변경된 Model로 부터 View를 갱신하는 역할

 

## 장점

- 비교적 사용이 쉽고 코드량이 적습니다.

- Apple에서 기본으로 제공하고 있는 패턴이기 때문에 접근에 용이합니다.

- 개발속도가 빠르기 때문에 규모가 작거나 아키텍처 선택이 중요하지 않은 경우에 사용하기 좋습니다.

 

## 단점

- iOS에서 UIViewController의 이름에서도 알기 쉽듯이, View와 Controller가 매우 밀접하게 연결되어 있어 분리가 쉽지 않습니다.

특히, ViewController에서 View의 life cycle까지 제어해주고 있습니다.

- 재사용성이 떨어지고, 테스트가 어렵습니다.

View와 Controller가 매우 밀접하게 연결되어 있기 때문에, 비지니스 로직은 테스트하기 위해서 반드시 View가 필요한 상황에 봉착합니다.

 

## 마치며

Apple이 기본적으로 제공해주고 있는 MVC 패턴을 큰 고민 없이 사용했지만, 점점 규모가 큰 프로젝트를 경험하게 되면서 테스트의 필요성과 구성요소 분리의 필요성 등을 느끼게 되어 View와 비지니스 로직을 분리할 수 있는 'MVVM' 패턴에 더욱 관심이 생기게 되었습니다. 다음은 MVVM 패턴에 대해 알아보겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함