Profile

Repository Pattern

CATEGORY
Methodology
TOPIC
STATUS
CREATED TIME
2022/12/21 02:34
ORIGINAL SOURCE
ORDER
0
SERIES

저장소 패턴이란

모든 데이터가 메모리상에 존재하는 것처럼 가정하고 이를 추상화하여 데이터 접근과 관련된 구현사항을 추상화하는 패턴.
저장소를 제외한 다른 레이어는 더 이상 저장소의 구현에 대해 신경 쓸 필요 없이 인터페이스로만 소통.
즉 비즈니스 로직과 데이터 레이어를 분리하고, 중앙 집중 처리 방식을 통해 일관된 데이터와 로직을 제공.
데이터 소스 레이어와 비즈니스 레이어 사이를 중재하는 역할을 한다.

구현

저장, 조회, 질의 매커니즘을 캡슐화 하는 것으로 애플리케이션 레이어로부터 내부 기능을 감춰서 데이터가 어디에 저장되는지와 관계없이 애플리케이션 레이어 코드를 동일하게 유지하는 것.
// SomeData 도메인 모델의 Repository class SomeDataRepository { // SomeData 객체 얻기 async get(id: string) { // 데이터 소스 접근 const response = await SomeAPI.getSomeData(id); // 데이터를 도메인 객체로 재구성 const someData = mapToData(response); // 재구성된 객체 반환 return someData; } } // SomeData 조회 const getSomeData = async (id: string) => { // SomeData 객체 얻기 const someData = await new SomeDataRepository().get(id); // 얻은 객체 반환 return someData }
JavaScript