TIL(Today I Learned)

9월 16일(목)

학습내용

  • MVC vs MVP vs MVVM
    • MVC
      • Controller가 사용자 입력을 담당한다.
      • Model의 값이 바뀌면 View에게 바뀌라고 명령한다. (View와 Model에 의존성 문제)
      • Controller가 비대해진다는 단점이 있다.
    • MVP
      • MVC를 보완하고자 나온 것이 MVP.
      • MVC와 달리 ViewController도 View에 포함된다.
      • Presenter가 View단의 입력, 출력을 담당.
      • View Controller의 로직이 사라짐.
      • Presenter와 화면은 1:1 대응 관계이다. 그래서 화면 수만큼 Presenter가 많아진다는 단점이 있음. (View와 Presenter의 의존성 문제)
    • MVVM
      • MVC, MVP에 대한 문제점을 보완하고자 나온것이 MVVM.
      • Command 패턴 / Data Binding을 이용하여 View와 View Model 사이의 의존성 제거.
      • View단이 입력을 담당.
      • View가 ViewModel을 구독한다. ViewModel의 값이 바뀌면 알아서 View가 화면을 바꾼다.
      • MVP는 View와 Presenter가 1:1이지만, MVVM은 ViewModel와 View가 1:다라서 화면의 개수만큼 ViewModel을 만들 필요가 없음.

문제점/고민한점

  • RxSwift와 RxCocoa의 차이점은?

해결방법

  • RxSwift는 RxSwift의 핵심이며, 다른 의존성이 없다. Binding을 쉽게 할 수 있게 구현되어있는 라이브러리.
  • RxCocoa는 UIKit을 Reactive하게 사용할수 있도록하는 라이브러리. RxSwift와 RxRelay를 의존한다.

참고