smRt-Egg / book-ddd-start

📔 도메인 주도 개발 시작하기 스터디 저장소
5 stars 0 forks source link

8장. 애그리거트 트랜잭션 관리 #7

Closed tidavid1 closed 7 months ago

tidavid1 commented 7 months ago

8장. 애그리거트 트랜잭션 관리를 읽고 코멘트를 남겨주세요

tidavid1 commented 7 months ago

Q. 선점 방식에서 문제점을 보완한 방식이 비선점 방식이라는 식으로 책에서는 표현이 이루어졌는데, 그렇다면 비선점 방식이 항상 옳다고 봐야 할까요?


용상

선점 방식은 데드락처럼 무한 대기와 같은 문제가 일어날 수 있다. 이에 맞선 비선점 방식은 value값을 이용해 락을 얻는 방식이다. 하지만 비선점방식에서 락을 얻지 못하면 예외가 터져 트랜잭션 롤백을 실행해야하는데 이러한 트랜잭션을 많이 재반복해야하는 경우에는 비선점 방식이 무조건 좋다고 말하긴 어려울것 같다. 상황에 따라 선점/비선점을 적용해보며 비교해봐야할 것같다.

승수

일관성 관점에서 선점 방식이 데이터 일관성을 더 쉽게 보장할 수 있기에 여러 트랜잭션이 동시에 데이터를 갱신하려는 경우 선점 방식을 고려해볼 수 있을 것 같고, 성능 최적화가 중요하다면 비선점 방식을 고려해볼 수 있을 것 같아요

지인

선점 방식을 이용해서 트랜잭션 충돌 처리를 할 수 있는데, 이를 통해서 해결할 수 없는 경우 비선점 방식과 오프라인 선점 방식을 선택해서 사용하면 된다! 로 책을 읽으면서 받아들였다. 각 방식을 사용했을 때의 성능에 대해서 딥하게 접근해보고 기준을 세울 수 있으면 좋을 것 같다.

주환

성능면에서 어떤게 더 좋은 상황인지 다른것 같습니다! 하지만 대부분의 경우 비선점락이 더 효율이 좋겟지요..

수진

책만 읽었을 때는 선점 잠금이 비선점 잠금을 보완한 방법이라는 생각이 들어서 비선점 방식을 더 선호한다는 느낌이 들었습니다. 팀원들의 의견을 들어보니 상황에 따라 쓰는 경우가 다른 것 같아서 한 번 다시 찾아봐야할 것 같습니다.

voidmelody commented 7 months ago

선점 방식과 비선점 방식의 장단점과 차이점에 대해 이야기해볼 수 있어 좋았습니다. 해당 개념을 사용해보는 걸 고려해보겠습니다

YongNyeo commented 7 months ago

트랜잭션으로 잠금(락)을 사용할때 어떤상황에 어떤것을 고려해서 사용해야할 지 고민할 수 있던 챕터였습니다. 앞으로 jpa에서 락을 사용할 기회가 생긴다면 적용해보고자 합니다.

suzzingV commented 7 months ago

잠금 방식의 종류에 대해 알게되었고, 어떤 방식이 효율적일지 팀원들과 얘기하며 생각해볼 수 있었습니다. 어던 경우에 어떤 방식을 사용하는지 좀 더 찾아보고 고민해봐야겠다고 생각했습니다.

happyjamy commented 7 months ago

용상오빠가 락을 거는게 좋을 상황을 각각 정리 해줘서 볼 수 잇어서 좋았습니다