inflearn logo
강의

Course

Instructor

Things Clone Coding Doesn't Tell You (Security, DDD, Microservices) Part 2

Implementing Aggregate and Review Entity

review write관련

Resolved

285

uuuuuup

38 asked

1

안녕하세요. 질문이 많네요.

 

review를 저장하는 코드를 보았습니다..
product를 db에서 읽고,
해당 product관련된 모든 review를 읽고,
새로운 review를 추가하고,
transaction을 걸고,
product 저장하고,
review들을 다시 저장하도록 하는 구조로 보입니다.
어떤 의도인지는 이해는 갑니다.

 

궁금한점은
review만 추가하는데도 기존 product를 저장하려고 시도하는건가요?

만약 기존리뷰들의 저장은 conflict되면 무시하는건가요?
리뷰가 보통 수백 수천건 되는 경우가 많을 텐데 그런건 고려가 안된것일까요?

 

확인 부탁드립니다.

감사합니다.

node.js ddd

Answer 1

0

aftercamp

이전 질문에 이어서 굉장히 좋은 질문이네요!

말씀하신 부분은 DDD 관련 책(소위 빨간책이라고 불리는...)을 읽어보신 것 같아서 질문을 주신 것 같은데

서비스 초기에는 크게 문제가 없다가 아마 리뷰가 많이 쌓이는 순간 우려하신 대로 성능상 문제가 발생할 것입니다.

review만 추가하는데도 기존 product를 저장하려고 시도하는건가요?

분명히 퍼포먼스 관점에선 리뷰만 따로 저장하는 것이 훨씬 효율적으로 보이는데 강의를 수강하시는 분들이 이제 DDD를 입문하거나 이전에 이론으로만 배우시는 분들일 것 같아서 Aggregate 내부에 있는 Entity는 consistency 유지를 위해서 Aggregate root를 통해서만 저장한다라는 내용을 강조하기 위해서 그렇게 구현을 했습니다.

만약 기존리뷰들의 저장은 conflict되면 무시하는건가요?

강의에선 이런 디테일한 상황까지 고려하진 않았습니다.

그리고 가장 중요한 질문이

리뷰가 보통 수백 수천건 되는 경우가 많을 텐데 그런건 고려가 안된것일까요?

이 부분일 것 같은데요. 만약에 이걸 성능 개선을 한다면 어떻게 하면 좋을까요? 엔지니어로서 어쩔 수 없이 엄밀한 이론을 적용하기 보다는 trade-off를 따져서 어느 정도는 예외를 두어야 할 것 같습니다. 제가 지금 생각할 수 있는 아이디어는 (이 아이디어는 깊게 생각한게 아니라 이렇게도 할 수 있다 정도만 생각해주세요 🙏)
1. ProductRepository를 통해서 저장하는 것이 아니라 리뷰를 바로 저장할 수 있도록 해주고

  1. 저장이 완료되면 isTopRated 를 업데이트할 것인지 판단하는 로직 실행

     


    정도가 될 것 같습니다.



1

uuuuuup

친절하고 빠른 답변 감사드립니다.

서비스를 제대로 만들어본 적이 없어서 모르는게 너무 많네요. ㅎㅎ

강의가 많은 도움이 되고 있습니다.

3강 질문

0

18

1

2강 nodejs 3단계 설명 질문

0

33

1

useEffect와 lifecycle문의

0

26

2

프론트엔드 학습 수준 문의

0

37

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

48

2

도메인 모델에서 관계와 규칙을 구분하는 방법

0

37

2

애그리거트 질문있습니다!

0

31

2

fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다

0

36

1

데이터 로딩중 화면만 계속 나와요!!

0

55

2

퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요

0

79

2

깃 이메일이랑 비번이 필요하다고 하네요

0

35

1

이후의 커리큘럼 문의

0

102

2

https://my-company.site/ 접속

0

61

3

map API

0

36

1

로그인 기능 구현 (Application Layer 실습) 에서의 질문

1

165

2

바로 실무에 적용할 수 있는 내용일까요?

1

367

1

몇가지 질문

2

387

3

다음 강의는 언제 나오나요?

1

360

1

brand와 product

1

264

1

Bounded Context 와 Aggregate 질문있습니다

1

421

1

성능상의 불이익

1

306

1

소스코드

0

413

2

value object 관련

1

308

1

phone.create함수 파라메터 관련

1

258

1