저장소 패턴이란
•
모든 데이터가 메모리상에 존재하는 것처럼 가정하고 이를 추상화하여 데이터 접근과 관련된 구현사항을 추상화하는 패턴.
•
저장소를 제외한 다른 레이어는 더 이상 저장소의 구현에 대해 신경 쓸 필요 없이 인터페이스로만 소통.
•
즉 비즈니스 로직과 데이터 레이어를 분리하고, 중앙 집중 처리 방식을 통해 일관된 데이터와 로직을 제공.
•
데이터 소스 레이어와 비즈니스 레이어 사이를 중재하는 역할을 한다.
구현
•
저장, 조회, 질의 매커니즘을 캡슐화 하는 것으로 애플리케이션 레이어로부터 내부 기능을 감춰서 데이터가 어디에 저장되는지와 관계없이 애플리케이션 레이어 코드를 동일하게 유지하는 것.
// 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