구글이 추천하는 Android Architecture
프로그래밍/Android 2022. 6. 10. 21:13인기 있는 안드로이드 앱 아키텍처
1. MVC (Model-View-Controller)
소프트웨어 아키텍처에서 가장 오래되고 가장 널리 사용되는 디자인 패턴 중 하나입니다. View, Model, Controller 사이가 분리되는 구조로 되어 있으나 View와 Model간 dependency가 존재하게 되었습니다.
안드로이드는 Activity(Fragment)가 Controller와 View를 모두 처리 하는 문제가 있습니다.
2. MVP (Model-View-Presenter)
Presenters라는 클래스 내부에 buisiness logic 을 넣으면서 Android 커뮤니티에서는 점점 더 많이 활용하기 시작하였습니다. buisiness logic이 잘 분리되어 있고 View가 Presenter와 독립적으로 교체될 수 있기 때문에 매우 효과적인 것으로 판명되었습니다.
MVC가 View - Model간 의존성 문제가 잇는 것을 개선하여 의존성을 없앴습니다. 그런데 View-Model간 의존성 제거로 인해 Presenter가 View와의 의존성이 더 커지게 되었습니다.
3. MVI (Model-View-Intent)
이건 일단 판단을 보류해 둡니다. MVI에 대해 많은 사람들의 글을 보니 MVVM의 문제 때문에 MVI를 사용한다는 얘기들을 하는군요. 과연 그런지는 저 스스로 아직 판단이 서지 않네요. 저는 오히려 MVVM + MVI 즉, 보완 관계가 아닌가 생각하는데 확실히 알 때 까지 의견을 적지 않겠습니다.
4. MVVM (Model-View-ViewModel)
Google은 실제 MVVM을 권장하고 있고 Jetpack이라는 개발 도구 셋을 제공하고 있습니다.
Jetpack은 개발자의 개발 부담을 덜어주는 유용한 library들을 제공합니다.
가장 많이 사용되는 구성 요소는 LiveData, ViewModel, Data binding, Navigation, Room 등입니다.
Google이 제안하는 그림이죠. 개인적으로 써 본 결과는 확실히 코드도 깔끔하고 유지 보수도 편합니다.
'프로그래밍 > Android' 카테고리의 다른 글
Java - AsyncTask와 Thread (0) | 2022.06.10 |
---|