Repository 패턴

jeunguri·2022년 11월 28일
0

android

목록 보기
10/13


Repository 패턴이란?

데이터 출처(로컬 DB인지 API응답인지 등)와 관계없이 동일 인터페이스로 데이터에 접속할 수 있도록 만드는 것을 Repository 패턴이라고 한다. Repository는 데이터 소스에 액세스하는 데 필요한 논리를 캡슐화하는 클래스 또는 구성요소이다.

Presentation Layer(View, ViewModel)나 Domain Layer(Repository, Model등)에 접근할 때 데이터 소스의 위치(서버, Local DB)를 몰라도 일관성 있게 원하는 데이터를 취할 수 있도록 돕는 것이 Repository의 역할이다.




Repository 패턴을 사용하는 이유

  • 데이터 로직을 분리시킬 수 있다.
  • 언제나 일관된 인터페이스로 데이터를 요청할 수 있다.
  • 클라이언트가 어떤 데이터를 사용할지 선택할 필요 없이 Repository에서 결정해 적절한 데이터를 제공한다.
  • 단위 테스트를 통해 검증이 가능하다.
  • 새로운 데이터 로직 코드를 쉽게 추가할 수 있다.
  • 유지 보수성이 쉬워진다.

보통 Repository를 언급할 때, 캡슐화라는 용어가 등장한다. 이는 객체의 속성과 행위(함수)를 하나로 묶고 구현 내용의 일부 혹은 전체를 외부로부터 감추는 것을 얘기한다. 이 경우에는 데이터 레이어의 소스들이 캡슐화 대상이다.

Repository라는 인터페이스만 ViewModel에 접근한다. 그렇게 함으로서 Repository 너머의 데이터 소스가 추가 혹은 제거되는 변경이 있더라도 Domain Layer나 Presentation Layer는 알 수가 없다. 캡슐화가 되었기 때문이다. 동시에 알 필요도 없다. 변경에 따른 작업은 Repository와 Repository 구현체에만 있기 때문이다.
Repository가 없다면 Model 따로, Remote Data Source 따로 처리를 해줘야 했을 것이다. 이 두 가지(서버, 로컬) 데이터 소스를 동시에 사용하는 경우라면 더욱 작업량이 늘었을 것이다. 그래서 개발자는 Repository가 없을 때보다 있을 때 데이터 소스가 변경되는 부담을 적게 느끼게 된다.



참고

0개의 댓글