jungmini0601 / pay

객체지향설계와 동시성이슈를 연습해보기 위한 프로젝트

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

로직을 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

상황정리

  1. 업무 로직상 어차피 필요한 코드이다.
  2. 고민해야 하는 포인트는 로직을 Service에서 가져가느냐 Entity에서 가져가느냐이다.

조사 내용
image

결론

1.객체지향 사실과 오해에서 배운 개념을 적용하다보니 자연스럽게 Entity에 로직이 몰리게 된 것
2. 차이점은 Entity가 비대해지거나 Service가 비대해지거나
3. Service에 로직을 몰아넣게 되면 DB관련 코드가 섞이기 때문에 비즈니스 로직에 대한 데이터 흐름 파악이 어려움
4. 추가적으로 Web 계층 Repository 계층 교체에도 Domain 코드는 전혀 영향을 받지 않기 때문에 유연하게 관련 모듈 교체 가능

추가로 해야 할 것
DDD랑 information expret pattern 알아보기

commented

이슈에 작업한 브랜치 링크가 있으면 좋을 것 같네요

이슈에 작업한 브랜치 링크가 있으면 좋을 것 같네요

앗 알려주셔서 감사합니다!😊 수정했습니다

이슈 내용 최종 정리 완료