Contents

안드로이드에서의 MVC, MVP, MVVM

MVVM 에 맞춰서 앱 구조를 잡도록 하자.



안드로이드에서 권장되는 앱 아키텍처는 아래의 모습입니다.

권장 앱 아키텍처

MVVM (Model - View - ViewModel) 패턴을 기본으로 하고 있습니다.

요 MVVM 패턴을 권장하기 전에는 특별한 가이드가 없었고, MVC, MVP 패턴이 많이 쓰였다고 합니다.

안드로이드에서 MVC, MVP, MVVM 패턴을 각각 적요하면 어떻게 구현이 되는지 정리해 준 블로그가 있어서, 다이어그램을 그리면서 따라가 보았습니다.

android-app-architecture



  • ActivityController 역할
  • Controller 쪽 TC 만들기가 애매함
  • Controller가 비대해지기 쉬움
  • 간단한 프로그램에 적합


  • ActivityView 역할
  • Presenter 에는 안드로이드 API 사용이 없는 것이 좋음
  • Presenter 테스트가 용이해 짐
    • TicTackToeView 만 mocking 혹은 fake 객체 만들면 됨
  • Presenter가 비대해지기 쉬움


  • 의존 관계가 한 방향으로만 있음
  • 모듈화와 테스트가 용이함
  • Data Binding을 사용하면 View 코드가 간결해짐
  • ViewModel, LiveData 사용함으로써 Lifecycle 관련 처리도 같이




Related Content