일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 개발자
- android
- 안드로이드 다이얼로그
- 일상
- RxKotiln
- Flutter
- swift map
- Kotiln
- RxJava
- react
- 안드로이드
- Go언어
- 이펙티브코틀린
- 알고리즘
- 잡담
- android compose
- 코딩테스트
- Swift 문법
- 반응형 프로그래밍
- Dev6
- 코루틴
- Rxjava 안드로이드
- Firebase
- 안드로이드 컴포즈
- 안드로이드 개발자
- 프로그래머스
- Java
- 코틀린
- MVVM
- 이펙티브 코틀린
- Today
- Total
최데브는 오늘도 프로그래밍을 한다.
4. 안드로이드 MVP 패턴 본문
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 로 알려주면 되는데 이것 때문에 그렇게 고생했다는게 지금 생각하면
웃기다 ㅋㅋ
문제 해결에 참고했던 사이트가 두개가 있었는데 한군데는 기억이 나지 않아 일단 한군데만 출처를 남긴다.
부끄럽지만 이게 왜 좋은거야? 하면서 의문을 품었던게 부끄럽다
다음 포스팅에서 좀 더 자세히 MVP 패턴에 대해서 다뤄보도록 하겠다.
'안드로이드 프로젝트' 카테고리의 다른 글
3. Java Spring 과 안드로이드 통신 , DB로 데이터 전달까지 (0) | 2020.12.08 |
---|---|
2. Java Spring 서버(1) (0) | 2020.12.08 |
1. 전체적인 프로젝트 개요 (0) | 2020.12.08 |