개요
Repository는 MVVM, MVP와 같은 아키텍쳐 패턴을 사용할 때 주로 등장하는 개념이다. 그리고 이 Repository의 사용 이유 역시 관심사의 분리이다. Repository는 데이터, 데이터 소스와 ViewModel(혹은 Presenter) 사이의 종속성을 줄여준다. 이는 유지보수 및 테스트가 쉬워진다는 의미이다. 마치 네트워크의 TCP/IP 5계층과 비슷하다고도 볼 수있다.
Repository는 데이터를 캡슐화한다.
그리고 안드로이드에서는 보통 다음과 같은 아키텍쳐를 사용한다.
위처럼 구현하게되면 오직 Repository만 복수의 요소들과 종속되어 있고, activity, ViewModel은 오직 하위 계층 요소 단 한개에만 종속되었음을 볼 수 있다.
ViewModel에서는 UI를 업데이트 하는데 필요한 데이터를 소유하고 있다. 이때 이 데이터들을 Repository에게 요청한다. 여기서 ViewModel을 요청한 데이터가 Room에서 온건지 API 작업으로 온건지 전혀 알 필요가 없다. 이러한 작업은 모두 Repositoy에서 관장하기 때문이다.
결국 ViewModel은 UI를 업데이트하기 위한 데이터를 제공하는 일에만 집중할 수 있게 된다.
'안드로이드' 카테고리의 다른 글
[리팩토링] 1. HEALTH-ER 프로젝트 개선 (0) | 2020.11.03 |
---|---|
[안드로이드] RecyclerView 여러 개의 ViewType 활용하기 (0) | 2020.10.05 |
[안드로이드] 백그라운드 처리 (1) | 2020.09.12 |
[안드로이드] 서비스(Service) (1) | 2020.09.10 |
[안드로이드] 브로드캐스트 리시버 (0) | 2020.09.09 |