본 게시글은 저의 학습을 위한 용도라 부족한 점이 많을 수 있어요.
만약 틀린 부분이 있다면 따뜻한 조언과 피드백 부탁드립니다:) 🧚
공식문서에서는 앱 아키텍쳐를 가져갈 때 Repository pattern을 사용하라고 말하고 있다.
모든 앱은 작던, 크던 어느정도의 데이터를 갖고 있기 마련이다. 이 데이터는 어딘가에 저장이 되어있는데, 디바이스 자체 로컬 DB일수도, 또는 리모트 저장소일수도 있다. 하지만 그 데이터를 처리하는 과정인 비지니스 로직에서는 이런 저런 문제가 많이 발생한다.
이 데이터들은 각자의 데이터 구조를 가지고 있고, 또 어느순간엔 데이터에 접근하기 위한 메소드가 무조건 필요하다.
그럼 어떤 문제가 있을까.
앱을 유지하기가 어려워진다. 작은 앱이라면 데이터도 적을 것이고, 변화가 있더라도 작은 변화만을 유지하면 되겠지만, 규모가 큰 앱이라면? 코어 데이터가 문제가 생긴다면? realm을 옮겨야하는 상황이 생긴다면? 모든 데이터 오브젝트를 수정할 순 없는 일이다. 언제나 '직접'무언가에 접근하는 일은 조심해야한다.
레포지토리 패턴이란 데이터 출처(logal DB or API Response) 와 관계 없이 동일 인터페이스로 데이터에 접속할 수 있도록 만드는 패턴이다.
이번 프로젝트(안끝났지만)를 복기하면서 repository 패턴을 공부해보았다. 짜야하는 코드 량은 많아지지만, 결국 항상 현재의 번거로움은 나중의 나를 위한 것임을 생각한다.