MVVM 아키텍처 :
애플리케이션의 로직과 UI를 분리하여 관리하며, 데이터 바인딩을 통해 뷰와 뷰모델 사이에 동기화를 자동화하는 소프트웨어 디자인패턴.
SwiftUi와 MVVM의 관계 :
- SwiftUI에서는 데이터 바인딩이 가능한 Property Wrapper들을 제공해주기 때문에 View에서 Property Wrapper를 사용하게 되면 이미 그 자체가 View + ViewModel 이다.
- 데이터 바인딩을 위해서 ViewModel을 만들고, 데이터 바인딩을 구현해주는 역할로 MVVM을 채택하기보다는 비지니스 로직을 분리하고, 상태 관리를 다뤄주기에 적합한 ViewModel을 만들어야 한다.
(View 내에서 비지니스 로직과 View 상태 관리를 위한 프로퍼티들을 ViewModel로 분리함)
- SwiftUI에서 중요한건 데이터 바인딩을 위한 MVVM 구조 사용이 아닌 적절한 상태 관리를 위한 MVVM 구조 사용이 필요하다.