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을 만들 필요가 없음.
- MVC
문제점/고민한점
- RxSwift와 RxCocoa의 차이점은?
해결방법
- RxSwift는 RxSwift의 핵심이며, 다른 의존성이 없다. Binding을 쉽게 할 수 있게 구현되어있는 라이브러리.
- RxCocoa는 UIKit을 Reactive하게 사용할수 있도록하는 라이브러리. RxSwift와 RxRelay를 의존한다.
참고
- 야곰 MVVM : https://youtu.be/hkRvC0_LnZk
- 곰튀김님 MVC vs MVP vs MVVM: https://www.youtube.com/watch?v=bjVAVm3t5cQ
- RxSwift: https://github.com/ReactiveX/RxSwift