왜이리 MVVM에 집착하는가?다른 디자인 패턴도 많은데 왜 MVVM 패턴에만 집착하는가?MVC 패턴은 간단하고 이해하기 쉬운 구조를 가지고 있지만 Controller의 부담이 커지기 쉽다는 단점이 있고, MVP 패턴은 View와 Presenter의 의존성이 높아진다는 단점이 있다. 물론 MVVM 패턴이 단점이 없는 것은 아니지만 MVC, MVP와 비교했을 때 MVVM이 제공하는 장점이 있기 때문에 많은 개발자들이 MVVM 패턴에 집착하는 것 같다. 내가 생각하는 MVVM의 장점은 아래와 같다.1. 데이터 바인딩 : MVVM은 View와 ViewModel 간의 데이터 바인딩을 통해 자동으로 UI를 업데이트 한다. 데이터 바인딩을 통해 코드를 간결하게 유지하고, UI와 데이터의 동기화를 자동으로 처리한다. ..
Migration ?마이그레이션(Migration)은 앱 개발 과정에서 Data Model을 변경할 때 기존의 Data와의 호환성을 유지하면서 새로운 Data Model로 이전하기 위한 과정이다. 앱을 개발하는 동안 새로운 속성이나 엔티티를 추가하거나 기존의 속성과 엔티티를 제거하거나 변경하는 경우가 있다. 이때 기존 사용자 데이터가 새로운 Data Model과 호환될 수 있도록 이전해주어야한다. CoreData의 마이그레이션에는 두 가지 종류가 있다. 1. 경량 마이그레이션(Lightweight Migration)✅ 자동으로 실행되며 비교적 간단한 데이터 모델 변경 시 사용된다.✅ 새 모델과 기존 모델의 차이를 비교하여 자동으로 데이터 마이그레이션을 수행한다. 2. 수동 마이그레이션(Manual Mig..
Subject Subject는 Observable이자, Observer이다. 따라서, 하나 이상의 Observable을 Subscribe 할 수 있고, 동시에 Observable이기 때문에 item을 Emit할 수 있다. 🔥 Hot Observable : 구독 여부와 상관없이 이벤트를 Emit -> 구독하는 시점에 따라 방출되는 결과가 다르다. ❄️ Cold Observable : 구독 되어야만 이벤트를 Emit -> 어느 시점에 구독하든 같은 결과를 얻는다. ✅ Multicast Hot Observable = Subject = Multicast 하나의 Observable 실행이 여러 subscribe를 공유한다. 위의 출력 결과처럼, Subject는 Multicast이기 때문에 모두 동일한 출력 결과를..
바꿔조 프로젝트를 마무리하고, 스텝업을 위해 RxSwift를 공부했다. 옵저버 패턴을 알고 있었기에 Rx의 개념은 이해하기 쉬웠다. 내가 개발 공부를 하면서 항상 느끼는 건, 개발은 추상적인 개념이 너무 많고 주관적이기 때문에 실제 코드에 어떻게 적용해야하는지 모르겠다는 것이다. (예를 들면, 디자인 패턴을 어떻게 구현하고 어떻게 적용할지?, Relay와 Subject 중 어떤 것을 사용할지?) 이러한 딜레마를 해결하기 위해서는 프로젝트 경험을 쌓는 것이 중요하다고 생각하는 입장이기 때문에, 간단한 토이프로젝트를 진행하기로 했다. Rx를 이용해서 프로젝트를 진행해보니 아직 많이 부족하다고 생각이 들었다. 1. map, filter를 제외한 다른 오퍼레이터를 활용하지 못한 점. 2. Observer와 Ob..