로직을 Entity에 넣어서 관리해야 하는가 Service에 넣어서 관리해야 하는가
jungmini0601 opened this issue · comments
데이터가 엔티티에 있어서 자연스럽게 엔티티 메소드에 로직을 몰아 넣었더니 엔티티가 너무 커지고 있다.
관련된 코드
https://github.com/jungmini0601/pay/blob/main/src/main/java/com/jungmini/pay/service/AccountService.java
https://github.com/jungmini0601/pay/blob/main/src/main/java/com/jungmini/pay/domain/Account.java
상황정리
- 업무 로직상 어차피 필요한 코드이다.
- 고민해야 하는 포인트는 로직을 Service에서 가져가느냐 Entity에서 가져가느냐이다.
결론
1.객체지향 사실과 오해에서 배운 개념을 적용하다보니 자연스럽게 Entity에 로직이 몰리게 된 것
2. 차이점은 Entity가 비대해지거나 Service가 비대해지거나
3. Service에 로직을 몰아넣게 되면 DB관련 코드가 섞이기 때문에 비즈니스 로직에 대한 데이터 흐름 파악이 어려움
4. 추가적으로 Web 계층 Repository 계층 교체에도 Domain 코드는 전혀 영향을 받지 않기 때문에 유연하게 관련 모듈 교체 가능
추가로 해야 할 것
DDD랑 information expret pattern 알아보기
이슈에 작업한 브랜치 링크가 있으면 좋을 것 같네요
이슈에 작업한 브랜치 링크가 있으면 좋을 것 같네요
앗 알려주셔서 감사합니다!😊 수정했습니다
이슈 내용 최종 정리 완료