Repository와 Service

Repository 정의 Repository는 보편 언어로 표현된 Aggregate에 대한 조회 접근이다. Evans가 이 패턴을 도입한 문제는 두 가지다. 첫째, 단지 무언가를 찾기 위한 탐색 가능한 연관관계가 늘어나면 모델이 흐려진다. 성숙한 모델에서 쿼리는 종종 도메인 개념을 표현한다. 둘째, 그러나 쿼리 자체가 문제를 일으킨다. 대부분의 DB 접근 인프라를 적용하는 순전한 기술적 복잡도가 클라이언트 코드를 빠르게 압도하고, 그것이 개발자로 하여금 도메인 계층을 멍청하게 만들도록 이끌어 모델을 무의미하게 만든다. 제약 없는 쿼리는 객체에서 특정 필드만 빼내 캡슐화를 위반하거나, Aggregate 내부에서 몇 개의 특정 객체만 인스턴스화하여 Aggregate Root를 무방비 상태로 만들고 이 객체들이 도메인 모델의 규칙을 강제하는 것을 불가능하게 만든다. 도메인 로직이 쿼리와 애플리케이션 계층 코드로 옮겨가고, Entity와 Value Object는 단순한 데이터 컨테이너가 된다. ...

🛠 업데이트: 2026년 7월 30일 PM09:30 · PolarBear