Android Architectures

도현욱·2023년 5월 20일
1

Android Architectures

안드로이드 아키텍처 패턴으로는 MVC, MVP, MVVM 이 있다.

MVC (Model-View-Controller)

MVC는 모델(Model), 뷰(View), 컨트롤러(Controller)로 구성된 가장 오래된 패턴. Model은 데이터를 처리하고, View는 UI를 표시하며, Controller은 데이터 처리 및 뷰 간의 연결을 담당한다. MVC는 코드를 구성하기 쉽고 구조가 직관적이지만 컨트롤러는 특정 뷰와 프래그먼트에 의존적이며 뷰도 특정 모델에 의족적이라 결합도가 높아 테스트가 힘듬.

MVP (Model-View-Presenter)

MVP는 모델(Model), 뷰(View), 프리젠터(Presenter)로 구성된 패턴이다. 모델은 데이터를 처리하고, 뷰는 사용자 인터페이스를 표시하며, 프리젠터는 모델과 뷰 간의 연결을 담당한다. 이 패턴은 MVC 패턴의 결합도가 높은 문제를 뷰와 모델 사이 Presenter을 두어 해결함. 그러나 View에서 Presenter를 직접 생성하기에 의존성이 높고 1:1 관계를 유지해야 해서 View가 많아질수록 Presenter도 자연스럽게 많아질 수밖에 없습니다.

MVVM (Model-View-ViewModel)

MVVM은 모델(Model), 뷰(View), 뷰모델(ViewModel)로 구성된 패턴이다. 모델은 데이터를 처리하고, 뷰는 사용자 인터페이스를 표시하며, 뷰모델은 뷰와 모델 간의 연결을 담당한다. ViewModel에서 Presenter와 동일하게 View 객체를 사용해서 화면을 갱신하게 된다면 MVP와 동일하게 ViewModel과 View는 강하게 결합될 것입니다. 이를 Databinding 라이브러리를 사용하여 ViewModel이 View에 대한 의존성을 갖지 않고 느슨하게 연결되도록 할 수 있습니다. 따라서 ViewModel은 특정 View에 의존적이지 않다 보니 다른 View와도 연결할 수 있으므로 1:N 의 관계에 있을 수 있습니다.

profile
android 개발자를 꿈꾸며

0개의 댓글