Skip to content

[토비의 스프링] 5.3_서비스 하나가 여러 개의 DAO를 사용해야 하는 경우 해결 방법 #104

@kjsu0209

Description

@kjsu0209

책 378p에서 서비스 하나가 여러 개의 DAO를 사용해야 하는 경우가 나쁜 사례로 나옵니다.
그럴 경우 해결할 수 있는 방법이 두 가지 생각이 났는데, 다른분들 생각은 어떤지 궁금합니다 👀

1) DAO별로 서비스를 쪼갠다.

=> 서비스 하나에 하나의 DAO에 접근할 수 있도록 합니다.
=> N개의 DAO에 접근하는 기능이 있을 경우 N개의 서비스를 사용해야 합니다.

장점: 서비스 하나에 하나의 책임을 가짐.
단점: 서비스 수가 많아짐. 서비스끼리의 의존 관계가 복잡해짐.

2) DAO에 접근하는 서비스와 접근하지 않아도 되는 서비스를 명확하게 분리

=> DAO에 접근할 때는 어차피 CRUD만 수행하니까 DAO별 CRUD 를 수행하는 서비스를 만들어 필요할 때마다 갖다 쓴다.
=> DAO에 변경 사항이 있을 때 DAO에 접근하는 서비스 하나만 변경하면 된다.

장점: 비즈니스 로직과 데이터가 분리된다.
단점: 1)보다 서비스 수가 더 늘어난다. DAO의 변경이 DAO 직접 접근하지 않는 서비스에 영향을 주지 않는지 보장하기 어렵다.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions