책 378p에서 서비스 하나가 여러 개의 DAO를 사용해야 하는 경우가 나쁜 사례로 나옵니다.
그럴 경우 해결할 수 있는 방법이 두 가지 생각이 났는데, 다른분들 생각은 어떤지 궁금합니다 👀
1) DAO별로 서비스를 쪼갠다.
=> 서비스 하나에 하나의 DAO에 접근할 수 있도록 합니다.
=> N개의 DAO에 접근하는 기능이 있을 경우 N개의 서비스를 사용해야 합니다.
장점: 서비스 하나에 하나의 책임을 가짐.
단점: 서비스 수가 많아짐. 서비스끼리의 의존 관계가 복잡해짐.
2) DAO에 접근하는 서비스와 접근하지 않아도 되는 서비스를 명확하게 분리
=> DAO에 접근할 때는 어차피 CRUD만 수행하니까 DAO별 CRUD 를 수행하는 서비스를 만들어 필요할 때마다 갖다 쓴다.
=> DAO에 변경 사항이 있을 때 DAO에 접근하는 서비스 하나만 변경하면 된다.
장점: 비즈니스 로직과 데이터가 분리된다.
단점: 1)보다 서비스 수가 더 늘어난다. DAO의 변경이 DAO 직접 접근하지 않는 서비스에 영향을 주지 않는지 보장하기 어렵다.
책 378p에서 서비스 하나가 여러 개의 DAO를 사용해야 하는 경우가 나쁜 사례로 나옵니다.
그럴 경우 해결할 수 있는 방법이 두 가지 생각이 났는데, 다른분들 생각은 어떤지 궁금합니다 👀
1) DAO별로 서비스를 쪼갠다.
=> 서비스 하나에 하나의 DAO에 접근할 수 있도록 합니다.
=> N개의 DAO에 접근하는 기능이 있을 경우 N개의 서비스를 사용해야 합니다.
장점: 서비스 하나에 하나의 책임을 가짐.
단점: 서비스 수가 많아짐. 서비스끼리의 의존 관계가 복잡해짐.
2) DAO에 접근하는 서비스와 접근하지 않아도 되는 서비스를 명확하게 분리
=> DAO에 접근할 때는 어차피 CRUD만 수행하니까 DAO별 CRUD 를 수행하는 서비스를 만들어 필요할 때마다 갖다 쓴다.
=> DAO에 변경 사항이 있을 때 DAO에 접근하는 서비스 하나만 변경하면 된다.
장점: 비즈니스 로직과 데이터가 분리된다.
단점: 1)보다 서비스 수가 더 늘어난다. DAO의 변경이 DAO 직접 접근하지 않는 서비스에 영향을 주지 않는지 보장하기 어렵다.