본문 바로가기

안드로이드 기술 공유

Repository Pattern 이해하기

Repository Pattern?

Repository(리포지토리) 패턴은 디자인 패턴 중 하나로, 데이터가 있는 여러 저장소(Local, Remote)를 추상화하여 중앙 집중처리 방식을 구성하고, 데이터를 사용하는 로직을 분리시키기 위한 디자인 패턴입니다.

 

 

 

ViewModel은 필요한 데이터를 Repository에 요청하고 Repository는 적절한 저장소에서 요청받은 데이터를 가져옵니다.

Repository가 추상화되어 있기 때문에 ViewModel은 언제나 같은 인터페이스로 데이터를 요청할 수 있으며, 실제로 어떤 데이터를 사용하는지 전혀 알 필요가 없기 때문에 앱 환경에 맞는 적절한 데이터를 사용하기에 편리합니다.

왜 쓰는가?

- 데이터 로직을 분리시킬 수 있습니다.

- 중앙 집중처리 방식으로, 언제나 일관된 인터페이스로 데이터를 요청할 수 있습니다.

- 그렇기 때문에, 클라이언트가 어떤 데이터를 사용할지 선택할 필요 없이 어떤 데이터를 가져올지는 Repository에서

  결정하여 적절한 데이터를 제공합니다.

- 단위 테스트를 통해 검증이 가능합니다.

- 새로운 데이터 로직 코드를 쉽게 추가할 수 있습니다.

이해하기

- Repository가 추상화되어 있기 때문에 ViewModel에서의 코드 수정 없이도 언제나 같은 인터페이스로 요청할 수

  있으며 다양한 환경에 맞는 데이터를 사용할 수 있습니다.

- Repository는 데이터 저장소에 있는 데이터 객체를 캡슐화하고 더 객체지향적인 구조를 제공합니다.

- 모델과 비즈니스 로직을 깔끔하게 분리하며 ViewModel -> Model 간의 단방향 의존성 구조를 구현합니다.

- 수많은 ViewModel에서의 호출 또는 복잡한 쿼리를 사용하는 경우 더욱 효과적입니다.

- 특히 위와 같은 경우, 같은 로직의 중복을 최소화하는데 큰 이점이 됩니다.