카테고리 없음
리포지토리(repository) 패턴
안모
2023. 7. 22. 18:50
리포지토리 패턴은 저장소를 정의해 데이터 레이어와 서비스 레이어를 분리시켜 준다. 데이터 출처와 관계 없이 동일 인터페이스로 데이터에 접근할 수 있게 해주고 비즈니스 로직과 DB접근 로직의 결합도를 감소시키는 것이다.
일반적으로 컨트롤러 레이어, 서비스 레이어, 데이터 레이어의 구조 중 서비스 레이어와 데이터 레이어를 직접 연결하는 것이 아니라 리포지토리를 두는 것으로 서비스 레이어는 리포지토리가 제공하는 인터페이스를 통해 데이터를 제공 받는다.
데이터가 있는 저장소를 추상화 하여 데이터 소스와 비즈니스 레이어 사이를 중재한다. 데이터베이스가 MySQL이든 PostgreSQL이든 심지어 MongoDB이든 간에 정의된 데이터를 전해 줄 수 있다.
비즈니스 로직에선 항상 같은 인터페이스로 데이터를 요청 할 수 있고 여러 리포지토리를 공유하더라고 데이터의 일관성을 유지할 수 있다. 데이터가 DB에서 반환되기 전에 데이터에 대한 정보를 알 수 있다는 장점도 있다.