Nuke Olaf - Log Store
Repository Pattern - 안드로이드 레포지토리 패턴이란? 본문
mvp 의 Model 을 만들기 위해 구글의 architecture-sample 코드를 참고하는데, 구글 예제에서는 model 을 구현할 때 repository 라는 클래스를 만들어 사용하는 것을 볼 수 있었다. 쌩뚱맞게 model 에 왠 repositroy 가 있는거지? 하고 repository 가 무엇인지 찾아보니, 이게 레포지토리 디자인 패턴이라고 한다. mvp 패턴에서 Model 부분을 구현할때 데이터와 데이터에 액새스하는 로직을 분리하기 위해 레포지토리 패턴을 사용할 수 있다고 한다.
레포지토리 패턴이란 무엇이며, 왜 사용하고 어떻게 사용하는 것일까?
1. Repository Pattern 이란?
1.1 repository 이라는 단어의 의미
repository 는 "어떤것의 대량 저장소" 라는 의미를 갖고 있다.
repositroy 라는 단어는 소프트웨어 개발에서도 비슷한 의미로 사용된다.
소프트웨어 공학 분야에서의 repository 는 데이터의 요소, 프로세스, 입력, 출력 및 상호관계를 포함한 소프트웨어의 정보 데이터베이스라고 한다.
참고 : https://www.webopedia.com/TERM/R/repository.html
즉, 데이터 뿐만 아니라 데이터에 관련된 로직또한 포함하고 있는 것을 repositroy 라고 부르는 듯 하다.
1.2 안드로이드에서의 Repository Pattern 이란?
레포지토리는 데이터 소스에 액세스하는 데 필요한 논리를 캡슐화하는 클래스 또는 구성 요소이다
즉, 데이터 그 자체인 data source 와 데이터관련 로직을 완전히 분리하는 기법이라고 할 수 있다.
2. Repository Pattern 을 사용하는 이유
Why the Repository Pattern ?
- decouples the application from the data sources
- provides data from multiple sources (DB, API) without clients being concerned about this
- isolates the data layer
- single place, centralized, consistent access to data
- testable business logic via Unit Tests
- easily add new sources
여러개의 데이터 소스에서 데이터를 가져올 수 있는 상황에서, 클라이언트가 어떤 데이터 소스를 사용해야할지 결정하지 않고, 레포지토리가 이를 결정하도록 할 수 있기 떄문이다.
참고 사이트>>>
https://medium.com/corebuild-software/android-repository-pattern-using-rx-room-bac6c65d7385
https://proandroiddev.com/the-real-repository-pattern-in-android-efba8662b754
https://dev-jinwoo.tistory.com/4
https://developer88.tistory.com/210
'ComputerScience > [디자인 패턴]' 카테고리의 다른 글
[MVVM] 안드로이드 MVVM 패턴이란? (0) | 2020.06.29 |
---|---|
[MVP] 안드로이드에 mvp 패턴 적용하기(5) - Activity 에 View 구현 (0) | 2020.03.10 |
[MVP] 안드로이드에 mvp 패턴 적용하기(4) - Presenter 만들기 (0) | 2020.03.10 |
[MVP] 안드로이드에 mvp 패턴 적용하기(3) - Model 정의 (0) | 2020.03.10 |
[MVP] 안드로이드에 mvp 패턴 적용하기(2) - Contract 작성 (0) | 2020.03.10 |