안드로이드 프로젝트

4. 안드로이드 MVP 패턴

최데브 2020. 12. 8. 19:15

 

MVP 패턴은 앞에서 설명했던 MVC 패턴과 유사하다.

MVC 패턴을 경험했다면 대략적이 감을 잡는데 크게 어렵지 않을것이다.

 

 

MVP는 Model + View + Presenter를 말합니다.
출처: https://beomy.tistory.com/43 [beomy]

 

가장 큰 차이점이라고 하면 presenter 라는게 중간에서 view와 model 사이에서 데이터를 받고 넘겨주고하는

우편배달부 같은 역할을 한다.

 

그로인해 MVC 패턴에서 있었던 view와 model 사이의 의존성이 해결된다. 

물론  좋은점이 있으면 나쁜점이 있는것처럼 view 와 presenter 의 의존성은 어플리케이션이 복잡해질수록 늘어난다는 단점이 있다.

 

그래서 추가로 등장한 mvvm 패턴 등이 생겨났지만 이들도 각자 장단점이 있으므로 잘 선택해서 사용하면 될 것같다.

 


처음 만들때 어려웠던 점.

 

초기에는 패턴을 지키면서 만든다고 만들었는데 반쪽뿐인 패턴이 되었었다.

 

문제는 Model 에서 서버로부터 받은 응답을 view로 보내주고 싶은데

안드로이드 UI 와 retrofit에서 반응이 오는 속도가 달라서 값이 view 에 보여지는

시점에 관한 문제를 엄청 많이 겪었다.

 

update , delete , insert 같은 문제는 크게 문제 되는 부분이 많지 않았지만

select 같은 경우에는 문제가 많이 발생했다. 

 

그 뒤에 프로젝트를 진행하면서 뭐가 문제였고 어떻게 만들어야했는지 알게되어서 

이제서야 mvp 패턴의 장점을 알게 됐다.. callback 함수를 만들어서 서버에서 응답이 왔을때 

callback 함수를 실행해서 응답을 view 로 알려주면 되는데 이것 때문에 그렇게 고생했다는게 지금 생각하면

웃기다 ㅋㅋ

 

문제 해결에 참고했던 사이트가 두개가 있었는데 한군데는 기억이 나지 않아 일단 한군데만 출처를 남긴다.

forliver.tistory.com/7

 

부끄럽지만 이게 왜 좋은거야? 하면서 의문을 품었던게 부끄럽다

 

다음 포스팅에서 좀 더 자세히 MVP 패턴에 대해서 다뤄보도록 하겠다.

 

 

 

 

 

반응형