VO, Entity 궁금한 부분이 있습니다.
436
1 asked
안녕하세요. 좋은 강의 감사합니다.
섹션 8. 실습 - 마이크로서비스 별 도메인 모델 정의 장에서 궁금점이 생겼는데요.
우선 제가 DDD 를 공부하며 이해한 VO 는 특별한 identity 가 존재하지 않는 immutable 한 값을 표현하는 객체로 이해했습니다. 실제로 강의에서도 동일한 내용을 이해할 수 있었어요.
하지만 실습 장에서 설계된 RentalItem, LateFee 가 VO 즉, 불변 값 객체와는 거리가 있다고 느껴져서요.
RentalItem 에서 "is_overdued: boolean", LateFee 에서 "point: Point" 는 각 addLateFee, removeLateFee, overdueItem operation 에 의해서 값이 변경될 것으로 모델이 확인됩니다.
제가 그동안 DDD 를 공부하며 이해했더 내용 중 하나는 Aggregate Pattern 에서 Aggregate 가 되는 것은 Root Entity 로 명명되며 Root Entity 내부에 표현되는 것은 Entity 와 VO 로 학습을 했었는데요. 이러한 RentalItem, LateFee 는 Entity 가 되어야 하는 객체 아닌가 의문이 들어서 질문드려요!
좋은 강의 감사합니다 :)
Answer 1
2
안녕하세요. 좋은 지적 정말 감사합니다. ^ ^
RentalItem와 LateFee에 대해 말씀드리면 대여된아이템 , 연체료라는 특유의 값을 설명하기 위해 vo 오브젝트로 선언했습니다. 다만 지적하신바와 같이, RentalItem에 overdued, overDueStartDate라는 연체된아이템이라는 개념을 넣으므로써 상태변화를 야기 시켰네요. 말씀하신 바처럼 엔티티로 규정하고 변경하던지 아니면 아무래도 RentalItem과 OverDueItem개념을 각각의 VO로 분리하여 해결해야 할 것 같습니다. 연체가 발생되면, RentalItem이 제거되고 OverDueItem이 생성되는 방식으로요.
그런데 추가로 말씀하신 LateFee 는 자체 행위를 가지는 vo로 addLateFee 시 증가된 point로 새로운 객체를 반환하기 때문에 불변의 범주에 있다고 생각됩니다.
요즘 구현 강의도 준비중인데 참고하여 강의 보완 진행 하겠습니다.
이렇게 심도 깊은 의견 주셔서 정말 도움이 되네요. ^ ^ 감사합니다.
애그리거트 질문있습니다!
0
31
2
도메인 질문있습니다
0
47
2
MSA 질문이 있습니다
0
67
1
현재에도 강의와 동일한 방식을 사용하고 계실지 궁금합니다.
0
65
2
다른 BC 또는 마이크로서비스 담당 정보를 어떻게 이용하나요?
0
133
3
VO 관련 궁금한점
0
406
1
VO에 대해서 질문있습니다.
0
402
1
도메인, 바운디드 컨텍스트 관련해서 궁금합니다.
0
790
1
앱에서 DDD를 적용하는 것이 맞는걸까요?
1
747
1
도메인 영역에 대한 질문
0
313
1
클린 아키텍처와 헥사고날 아키텍처 질문
0
488
2
전략적 설계와 전술적 설계
0
314
1
DDD 현실적 적용
1
655
3
애그리거트의 크기
0
584
2
엔티티와 값객체와의 차이
0
560
1
확장성 관점에서 Value Object, Entity, Aggregate
0
402
1
도메인 서비스와 응용서비스의 구분
0
1512
1
Aggreagte 에 두개 이상의 Entity로 구성할 수 있나요?
0
632
1
안녕하세요. PPT 자료 공유 부탁 드려요.
0
509
1
usecase 작성 단계가 궁금합니다.
0
599
1
대여 도메인 장 관련 문의드립니다.
1
434
1
애그리거트 추출 질문드립니다.
0
596
1
도메인 이벤트 추출관련해서 여쭤보고 싶습니다!
0
467
1
컨트롤러 관련해서 질문이 있습니다!!
0
402
1

