세상을 바꾸는 개발자

[Android] 안드로이드 디자인패턴 3 - 2 MVP패턴 본문

안드로이드/Design Pattern

[Android] 안드로이드 디자인패턴 3 - 2 MVP패턴

헬창코딩 2021. 7. 12. 20:16

안녕하세요! 헬창코딩입니다. 지난 시간에는 MVC패턴에 대해서 알아봤는데요

이번 시간에는 MVP패턴에 대해서 한번 알아보도록 하겠습니다.

 

 

MVC 패턴은 Model, View, Controller로 이루어져 있다면

MVP 패턴은 Presenter라는 새로운 녀석이 등장합니다. 

 

 

그 이유는 MVC 모델의 단점인 뷰와 모델에 의존적이 의존적이라는 것을 해결하기 위해서 추가되었습니다. 

 

 

Presenter란 무엇일까요??

 

Presenter는 이전 시간에 나왔던 Controller와 비슷하다고 생각하실 수 있지만 뷰에 직접 연결되는 것이 아니라 

인터페이스로 연결이 됩니다. 그렇기 때문에 MVC 패턴에서 문제가 되었던 결합도가 높고 유닛 테스트를 하기 힘든 단점을

보완할 수 있습니다.  또한  Presenter는 View와 Model의 인스턴스를 가지며 이 둘을 연결해 주는 역할을 하므로

Presenter와 view는 1:1 관계를 갖습니다.

 

 

나머지 Model과 View에 대해서는 이전 게시물을 참고해주세요~

https://healthcoding.tistory.com/12

 

[Android] 안드로이드 디자인패턴 3 - 1 MVC패턴

안녕하세요! 헬창코딩입니다. 오늘은 디자인 패턴에 대해서 알아보도록 하겠습니다.!! 먼저 mvc패턴은 안드로이드 아키텍처에서 가장 많이 쓰여왔으며 기본이 되는 디자인 패턴입니다. MVC 패턴

healthcoding.tistory.com

 

MVP 패턴의 장점 

위에서 말씀드렸던 것과 같이 MVP패턴은 View와 Model 간의 의존성이 없고 , UI와 비즈니스 로직을 분리해

유닛 테스트가 수월합니다. 

 

 

MVP 패턴의 단점

View와 Presenter 간의 의존성이 높고 1:1 관계를 유지해야 하고 Presenter를 재사용할 수 없어, View가 늘어날 때마다

Presenter도 같이 늘어나 클래스가 많아집니다. 또한 애플리케이션의 기능이 추가될 수 록 Presenter가 거대해지는 단점이 있습니다.

 

 

MVP 기본적인 구조

 

 

 

오늘은 MVP 모델에 대해서 알아봤습니다.~ 다음에는 안드로이드 앱 개발 시 가장 많이 사용하는 MVVM 패턴에 대해 알아보겠습니다.

Comments