Repository, DAO의 차이와 패키지 구조 #123
Replies: 2 comments
-
하나의 객체가 테이블 하나를 담당하는 것을 테이블 데이터 게이트웨이 패턴이라고 합니다. Repository는 DDD에서 소개되었습니다. (Repository 패턴) Repository 인터페이스는 실제 저장소가 무엇인지와 관계없이, 도메인 객체에 대한 저장소를 위한 계약을 정의합니다. 이렇게 구현과 계약을 분리하는 것을 분리-인터페이스 패턴이라고 합니다. Repository에서 관리하는 애그리거트 단위는 하나의 테이블 이상일 수 있으며, 테이블이 아닐 수도 있습니다. https://www.youtube.com/watch?v=26S4VFUWlJM&ab_channel=WorkerKSUG |
Beta Was this translation helpful? Give feedback.
-
DAO(Data Access Object)는 데이터에 접근하기 위한 객체입니다. Repository는 객체 Collection의 관리를 추상화한 매커니즘으로, Collection과 유사한 인터페이스를 제공해 도메인과 Data Access Layer 사이를 중재합니다. DAO는 데이터베이스의 CRUD 쿼리와 1:1 매칭되는 세밀한 단위의 작업을 제공합니다. public class UserRepositoryImpl implements UserRepository {
private UserDao userDao; // user 테이블과 상호작용하는 DAO
private ReservationDao reservationDao; // reservation 테이블과 상호작용하는 DAO
@Override
public User get(Long id) {
User user = (User) userDao.read(id); // UserDao를 사용해 user 정보 조회
List<Reservation> reservations = reservationDao.findReservationsByEmail(user.getEmail()); // ReservationDao를 사용해 user의 예약 목록 조회
user.setReservations(reservations);
return user;
}
} https://isaac56.github.io/etc/2021/08/29/difference_DAO_Repository/ |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
.
Beta Was this translation helpful? Give feedback.
All reactions