Replies: 1 comment 1 reply
-
현재 멤버와 팔로우는 팔로우 -> 멤버의 단방향 관계인데 도메인 모델 패턴을 사용하면 양방향으로 사용하실건지 궁금합니다 ㅎㅎ 저도 팔로우를 지우는데 모든 팔로우는 불러오는 것은 불필요한 비용이 발생한다고 생각해서 쿼리 한번에 삭제시키는 것이 좋아보입니다. 객체지향적으로 보았을 때는 멤버가 자신의 팔로우 목록을 알고있고, 해당 목록에서 원하는 타겟을 삭제시키는 것이 자연스러워 보이긴 해요 ! 결론적으로 저희가 디비 정규화를 했고, 이 관점에서 볼 때는 트랜잭션 스크립트 패턴이 서비스 아키텍쳐와 어울린다고 생각합니다 ! |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
팔로우한 회원을 언팔로우하는 로직을 작성할 때 위와 같이 2개의 로직을 작성할 수 있습니다.
unfollow
메서드는 트랜잭션 스크립트 패턴을 사용하였고,unfollow
메서드는 도메인 모델 패턴을 사용하였습니다.트랜잭션 스크립트 패턴을 사용하면 필요한 쿼리만 나가기 때문에 비즈니스 로직을 효율적으로 처리할 수 있지만, 도메인 모델이 빈약해진다는 단점이 존재합니다.
도메인 모델 패턴은 풍분한 도메인 모델을 가져갈 수 있지만, 회원의 모든 팔로우 목록을 가져와서 처리해야 하기에 성능적으로 부하가 발생할 수 있다는 단점이 존재합니다.
제가 생각했을 때는 팔로우를 지우는데 모든 팔로우는 불러오는 것은 불필요한 비용이 발생하기에 트랜잭션 스크립트 패턴을 사용하는 것이 좋아 보이는데, 이런 상황일 때는 어떤 기준으로 패턴을 선택해야 할지 잘 모르겠습니다 🤔 혹시 그레이의 선택 기준이 있을까요?!
Beta Was this translation helpful? Give feedback.
All reactions