티스토리 뷰
## 시작하기 전
기본적으로 많이 사용되는 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 패턴에 대해 알아보겠습니다.
'Develop > 아키텍처' 카테고리의 다른 글
[Clean Architecture] 4. Crossing Boundaries(교차 경계)와 DIP(의존성 역전 원칙) (0) | 2022.06.19 |
---|---|
[Clean Architecture] 3. Layer와 Dependency Rule (0) | 2022.06.18 |
[Clean Architecture] 2. What is Clean Architecture (0) | 2022.02.19 |
[Clean Architecture] 1. Why Clean Architcure? (0) | 2022.02.19 |
아키텍처와 디자인 패턴 (0) | 2021.08.22 |
- Total
- Today
- Yesterday
- 프로파일
- ios
- notification
- 아키텍처
- 동적계획법
- 프로비저닝
- 코테
- 프로비저닝 프로파일
- Apple
- remote
- dip
- TabBar
- APNS
- MVC
- CSR
- Rx
- 클린아키텍처
- MVVM
- Push
- 코드사이닝
- RxSwift
- rxcocoa
- subject
- Crossing Boundaries
- provisioning profile
- Swift
- Clean Architecture
- TextField
- certificate
- relay
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |