MVVM 기존 MVC패턴은 View와 Model의 의존성이 존재하고, 앱의 규모가 커질수록 View의 크기가 커지고 Controller에 많은 부하가 걸려 유지보수에 어려움이 있었다. MVVM은 이를 해결하기 위한 디자인 패턴으로 Command 패턴과 Data Binding을 이용하여 View와 Model뿐만 아니라 View와 View Model 사이의 의존성까지 최소화 했다. Model : 데이터, 네트워크 로직, 비즈니스 로직 등을 담고 있으며, 데이터를 캡슐화하는 역할 ➡️ 화면에 그려지기 위한 데이터 / 모델은 하나로 존재하지 않음. 상황에 따라 다른 형태로 존재함. View : 사용자에게 보여지는 UI 화면 ViewModel : 핵심적인 비즈니스 로직으로, View에서 받은 이벤트를 처리하고 D..
데이터 바인딩을 하지 않는 경우와 바인딩을 하는 경우를 나누어서 간단한 예제를 만들어보았다. // Model struct Babys { let name: String let sex: String let age: Int let memo: String let image: String init(name: String, sex: String, age: Int, memo: String, image: String) { self.name = name self.sex = sex self.age = age self.memo = memo self.image = image } } ✅ 아이 정보를 정의한 간단한 모델이다. // Data struct DummyData { static let baby: [Babys] = [ Ba..
MVVM 패턴 Model - View - ViewModel로 이루어진 디자인 패턴이다. Model 데이터를 처리 View 사용자에게 보여지는 UI ViewModel View를 표현하기 위해 만들어진 View를 위한 모델이다. 비즈니스 로직 등을 포함하고 있다. ✅ MVVM 패턴에 대해서는 나중에 자세하게 다른 글에서 다루겠다. 예제 1 - MVVM 패턴을 이용한 시계 // Model class Clock { static var currentTime: (() -> String) = { let today = Date() let hours = Calendar.current.component(.hour, from: today) let minutes = Calendar.current.component(.minut..