Android MVVM 아키텍처 패턴에 관하여 1

2022. 6. 14. 16:07Android

반응형

이번에 아키텍처 패턴 MVVM 을 정리 해보고자 한다.

 

일단 왜 아키텍처 패턴에 관하여 글을쓰는가?

 

필자가 Android 를 개발하면서 작은 프로젝트를 할때는 상관이 없었지만

 

프로젝트가 거대해질수록 유지보수 및 코드들이 굉장히 난잡해진다.

 

이걸 해결하기 위해 처음에는 폴더별 정리와 코드 정리 등등 굉장히 혼자서 많이 생각하고 이것저것 시도를 해보았지만

 

한계라는걸 느끼게 되었다

 

그리고 이걸 해결하고자 생각한게 예전 웹을 할때 MVC 아키텍처 패턴이 생각이 나

 

Android 에서도 권장하는 아키텍처 패턴이 있을까 하고 찾아보았다

 

그래서 찾은게 MVVM 이다

 

일단 아키텍처 패턴이라는게 무엇인지 먼저 보자

 

"아키텍쳐 패턴이란? 위키피디아에 따르면, 아키텍쳐 패턴이란 주어진 상황에서의 소프트웨어 아키텍쳐에서 일반적으로 발생하는 문제점들에 대한 일반화되고 재사용 가능한 솔루션이다. 아키텍쳐 패턴은 소프트웨어 디자인 패턴과 유사하지만 더 큰 범주에 속한다"

-출처-
https://mingrammer.com/translation-10-common-software-architectural-patterns-in-a-nutshell/

 

[번역] 10가지 소프트웨어 아키텍처 패턴 요약

10 Common Software Architectural Patterns in a nutshell을 번역한 글입니다. 대형 엔터프라이즈 규모의 시스템들은 어떻게 설계되었는지에 대해 궁금해 한 적이 있나요? 우리는 주요 소프트

mingrammer.com

 

음... 굉장히 어렵다

 

구글에 아키텍처 패턴 이라고만 검색해도 굉장히 많은 정보들이 있다.

 

사실 아키텍처 패턴 하나만 두고 공부하라고 해도

 

1년은 넘게 공부할수 있을것이다 그만큼 내용이 광범위 하다

 

하지만 이 글에서는 필자가 이해한 내용을 바탕으로 정리 하자면

 

"아키텍처 패턴은 소프트웨어 설계 와 좋은 코드를 설계하기 위한 방법론이다."

 

Android 기준 많이 사용되는 아키텍처 패턴은 크게 3가지다

 

1.MVC 패턴

 

안드로이드에 기본적인 패턴이다.

 

구성은  Model , View , Controller 으로 되어있다.

 

https://velog.io/@jojo_devstory/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90-%ED%8C%A8%ED%84%B4-MVC%EA%B0%80-%EB%AD%98%EA%B9%8C

 

안드로이드 아키텍처 패턴 - MVC가 뭘까?

이번엔 아키텍쳐 디자인 패턴을 말할때 가장 많이 쓰이면서 기본이 되는 MVC에 대해 간략하게 설명 해보려 합니다. 경험상 제가 막 개발자 커리어를 시작한때에도 스타트업에 안드로이드 개발자

velog.io

 

 

 

2.MVP

MVP 는 MVC 에서 파생된 패턴이다

 

MVC 패턴의 문제점을 보안하기 위해 나온것이 MVP 패턴이다.

 

구성은 Model , View , Presenter 되어있다.

 

https://salix97.tistory.com/205

 

[MVP] 안드로이드에 mvp 패턴 적용하기(1) - mvp 패턴이란?

<안드로이드에 mvp 패턴 적용하기 시리즈> 안드로이드에 mvp 패턴 적용하기(1) mvp 패턴이란? 안드로이드에 mvp 패턴 적용하기(2) Contract 작성 안드로이드에 mvp 패턴 적용하기(3) Model 정의 안드

salix97.tistory.com

 

3.MVVM

 

대망의 MVVM 이다 이글의 주제기도 하고

 

MVVM 도 MVP 에서의 문제점들을 보완해서 나왔다.

 

구성은 Model , View , ViewModel 이다.

 

 

구글에서 권장 하고있는 아키텍처 패턴의 구조는 MVVM 을 기반으로 하고있다.

 

 

https://developer.android.google.cn/stories/apps/duolingo-excellence?hl=en 

 

Duolingo refactors on Android with MVVM and Jetpack libraries  |  Android Developers

Learn how Duolingo made the business decision to focus on Android performance and how they improved developer productivity and scaled their business.

developer.android.google.cn

 

 

 

글이 길어지는 관계로 2부에서 마무리를 하겠습니다.

https://guguhome.tistory.com/24

 

Android MVVM 아키텍처 패턴에 관하여 2

https://guguhome.tistory.com/23 Android MVVM 아키텍처 패턴에 관하여 1 이번에 아키텍처 패턴 MVVM 을 정리 해보고자 한다. 일단 왜 아키텍처 패턴에 관하여 글을쓰는가? 필자가 Android 를 개발하면서 작은 프

guguhome.tistory.com

 

반응형