프로그램을 실행할 때 메모리에 로드된 데이터는 종료시 그대로 사라져버린다.
객체를 다시 이용하려면 데이터스토어에 객체 데이터를 저장 및 복원할 수 있어야 한다.
리포지토리는 데이터를 저장하고 복원하는 처리를 추상화하는 객체다.
리포지토리의 책임은 도메인 객체를 저장하고 복원하는 퍼시스턴시다.
데이터 스토어의 기술을 어떤 것으로 채용하든 이에 대한 명령을 추상화 함으로써 데이터 스토어를 직접 다루는 까다로운 코드에서 해방시키고 순수한 비즈니스 로직만을 유지할 수 있게 하는 객체이다.
리포지토리의 책임은 객체의 퍼시스턴시까지다. 만약 리포지토리에 특정 비즈니스 로직에 대한 인터페이스가 추가된다면, 그 구현에 따라 동작 내용이 바뀔 가능성이 있다.