1. MVC
MVC 패턴은 Model + View + Controller를 합친 용어입니다.
장점
Model과 View의 분리됨.
구현하기 가장 쉽고 단순함.
개발기간이 짧아짐. (안드로이드에서의 장점)
단점
MVC 패턴의 단점은 View와 Model 사이의 의존성이 높다는 것입니다. View와 Model의 높은 의존성은 어플리케이션이 커질 수록 복잡하지고 유지보수가 어렵게 만들 수 있습니다.
2. MVP
MVP 패턴은 Model + View + Presenter를 합친 용어입니다. Model과 View는 MVC 패턴과 동일하고, Controller 대신 Presenter가 존재합니다.
장점
MVP 패턴의 장점은 View와 Model의 의존성이 없다는 것입니다.
Model과 View 간의 결합도를 낮추면, 새로운 기능 추가 및 변경을 해야 할 때 관련된 해당 부분만 코드 수정하면 됩니다.
때문에 확장성이 좋아짐과 동시에 유닛 테스트 시 테스트 코드를 작성하기 편리해져서 더 쉽게 안전한 코딩이 가능해집니다.
단점
MVC 패턴의 단점인 View와 Model 사이의 의존성은 해결되었지만, View와 Presenter 사이의 의존성이 높은 가지게 되는 단점이 있습니다. 어플리케이션이 복잡해 질 수록 View와 Presenter 사이의 의존성이 강해지는 단점이 있습니다.
MVVM
MVVM 패턴은 Model + View + View Model를 합친 용어입니다. Model과 View은 다른 패턴과 동일합니다.
장점
Model과 View 사이, ViewModel과 View 사이의 의존성이 없으므로 유닛 테스트가 더 쉬워지며,
MVP패턴에서처럼 테스트를 위한 가상 뷰를 만들 필요 없이, 테스트할 때 모델이 변경되는 시점에 옵저버블(관찰) 변수가 제대로 설정됐는지 확인하면 됩니다.
각각의 부분(중복되는 코드)은 독립적이기 때문에 모듈화 하여 개발할 수 있습니다.
단점
MVVM 패턴의 단점은 View Model의 설계가 쉽지 않다는 점입니다.
출처 :
'안드로이드' 카테고리의 다른 글
Wildcard(*) import 방지 (0) | 2021.05.03 |
---|---|
Gradle Dependency 관리하기 (buildSrc) (0) | 2021.04.02 |
Android Dalvik & ART 차이 (0) | 2021.03.29 |
Android Context란? (0) | 2021.03.29 |
RxKotlin, RxAndroid란? (0) | 2021.03.26 |