[iOS - swift] MVVM 구조 - ViewModel을 testable하도록 구현 방법 (DI, DIP, 추상화)

https://velog.io/@kipsong/iOSDesignPattern-MVVM-과-DataBinding에-대한-간략한-소개

MVVM Data Binding

https://cau-meng2.tistory.com/101 https://velog.io/@iammiori/MVVM-1.-Model-Service-구현-Alamofire-2-무한스크롤 https://jellysong.tistory.com/105

Untitled

MVVM 패턴

MVVM의 목적은 비즈니스 및 프레젠테이션 로직을 UI 에서 분리하는 것입니다. 테스트 가능성과 유지관리 가능성을 향상시킵니다. 이를 위해 view에서 의사 결정을 최소화 하고 뷰 상태와 동작을 viewModel로 이동시켜 view 가 수동적으로 됩니다.

Model

View

ViewModel

예제코드

MVVM 패턴을 사용하는 이유는?

Model을 View에 대한 다른 표현으로 변환해야 하는 경우 MVVM 패턴을 사용합니다. 예를 들어 ViewModel을 사용하여 Date 를 날짜형식을 String 변환 하거나, Decimal을 통화 형식 String으로 변환하는 등 많은 변환을 유용하게 수행할 수 있습니다.

장점