개발관련/other

DAO와 리포지토리 패턴의 차이점

Rateye 2021. 10. 12. 10:43
728x90
반응형
질문 : DAO와 리포지토리 패턴의 차이점은 무엇입니까?

데이터 액세스 개체 (DAO)와 리포지토리 패턴의 차이점은 무엇입니까? 저는 EJB3 (Enterprise Java Beans), Hibernate ORM을 인프라로, DDD (Domain-Driven Design) 및 TDD (Test-Driven Development)를 설계 기술로 사용하여 애플리케이션을 개발하고 있습니다.

답변

DAO 는 데이터 지속성 의 추상화입니다.
Repository 는 개체 모음의 추상화입니다.

DAO 는 데이터베이스에 더 가깝고 종종 테이블 중심으로 간주됩니다.
Repository 는 도메인에 더 가까운 것으로 간주되어 집계 루트 만 처리합니다.

Repository DAO 사용하여 구현할 수 있지만 그 반대는 할 수 없습니다.

또한 Repository 는 일반적으로 더 좁은 인터페이스입니다. Get(id) , Find(ISpecification) , Add(Entity) 가진 단순히 개체의 컬렉션이어야합니다.

같은 방법 Update A의 적절한 DAO 아니지만 Repository - 사용하는 경우 Repository , 일반적으로 별도의 UnitOfWork에 의해 추적 될 엔티티로 변경됩니다.

실제로 DAO Repository 라는 구현을 보는 것은 일반적으로 보이므로 차이점에 대해 약간의 혼란이 있다고 생각합니다.

출처 : https://stackoverflow.com/questions/8550124/what-is-the-difference-between-dao-and-repository-patterns
728x90
반응형