MVVM의 탄생 배경
Swift의 경우에 처음 구상이 되었을 때 MVC 패턴 아키텍처를 추구하여 개발한 언어이다.
기본적인 배경에는 View와 Model을 분리하는 것을 기본적인 생각이였고 이 부분은 정확하게 해결이 되었습니다.
다만 MVC의 단점인 View와 Controller의 결합이 너무 강해진다는 문제점이 있습니다.
예를 들면 view의 생명주기나 레이아웃을 변경하는 로직이 controller에 존재하게 됩니다.
또한 viewController가 너무 비대해지는 문제점 도 가지고 있습니다.
예를 들자면 viewController에 네트워크에 대한 코드나 데이터 변경에 대한 코드가 합쳐져 조금만 프로젝트가 커지면 한controller에 너무 많은 코드가 들어가게 된다.
정리하자면
MVC 단점
- View와 Controller의 결합이 강해진다.
- viewController가 너무 비대해지는 문제가 있다.
이러한 배경에서 MVVM이 탄생하게 된다.
MVVM의 구성
MVVM은 Model, View, ViewModel로 구성이 되어 있다.
Model : MVC와 같은 Model이다. 구조체를 담당하고 있다.
View : UI와 사용자 입력을 처리하는 부분이다.
ViewModel : 비즈니스 로직을 담당하는 부분이다.
MVVM의 특징
MVVM은 몇몇 특징을 가지고 있는데 이 특징을 생각하면서 코드를 짜면 좀더 도움이 될 수 있다.
1. UI 로직과 비즈니스 로직의 분리 : View와 ViewModel을 나누면서 로직의 분리가 확실이 이루어진다.
2. 테스트 코드를 작성하기 쉽다 : MVC와 비교하여 비즈니스 로직부분에 테스트 코드를 작성하기가 쉽다.
3. UIViewController에 대한 책임이 줄어든다 : 네트워크 연결로직같은 부분을 ViewModel로 변경이 되면서 옵저버 패턴을 이용하여 View나 데이터를 변경하게 된다.
'Ios > Swift' 카테고리의 다른 글
[Swift] 공통 Alert 함수 만들기 (0) | 2024.08.08 |
---|---|
[Swift] CollectionView에 대한 끄적임 (0) | 2024.08.07 |
[Swift] 자주 쓰이는 RxSwift의 개념 (0) | 2024.07.31 |
[Swift] Xcode Instruments에 대한 끄적임 (0) | 2024.07.30 |
[Swift] 키보드가 안내려가는 경우 처리하기 (0) | 2024.07.25 |