inflearn logo
강의

講義

知識共有

シニア面接官が教える 開発者の就職と転職を一気に解決する [実践編]

非同期アーキテクチャの理解 -1

비동기 메시지 처리 아키텍처 이미지 질문

解決済みの質問

278

woong choi

投稿した質問数 2

0

image.png

해당 다이어그램을 소개시켜주시는 부분에서 궁금한 부분이 있습니다

결제만 정상적으로 하고 유저에게 성공응답을 주며, 주문완료 이벤트를 발행하게 됩니다. 이때 재고가 없을 경어에 문제가 발생할 것 같은데요.

궁금한점은 재고차감에서 실제 재고가 없어서 차감을 하지 못할 경우에, 유저에게 주문 실패 또는 배송 및 이메일 발송을 모두 최소해야 할 것 같습니다.
따라서 이벤트를 2개로 나누어서, 결제완료 이벤트와 주문완료 이벤트를 분리하거나, 재고 차감까지 동일 트랜잭션으로 묶어야 적절한 그림이 될 것 같은데 어떻게 생각하시는지 궁금합니다.

면접 기술면접

回答 1

0

codevillain

위 시퀀스는 비동기 아키텍처를 설명하기 위한 지극히 일반적인 프로세스의 케이스를 설명한것이라서, 예외 케이스등을 설계한 시퀀스 다이어그램이랑은 다소 차이가 있습니다.

재고의 경우 처리 방식이 상품의 성격이나(안전재고가 있다거나, 0원 상품이 있다거나, 매일 입고가 된다거나), 회사의 프로세스(재고 처리는 주문보다 후처리이므로 주문을 받고, 재고가 없으면 취소 환불 프로세스를 태운다거나)에 디펜던시가 있습니다. 그런 관점을 설명한것은 아니고, 주문과 나머지 프로세스들을 분리할 때 비동기적 입장에서 처리하면 나머지 영역들도 분리할 수 있다는 설명을 위한 이미지라고 이해하시면 될거 같습니다.

 

일반적으로는 주문서를 랜딩할 때 재고를 체크하고, 다시 결제 페이지 진입 전에 재고를 한번 더 체크할 것입니다. 그래서 결제 페이지까지 진입했다면 재고 체크 로직을 통과한 것이기 때문에 뒤에 차감만 태우는것이 맞고, 상품의 재고는 주문 도메인의 영역이 아니라 상품 도메인의 영역이기 때문에 트랜잭션을 분리하고, 비동기적으로 상품에 재고 차감을 요청한다가 비동기 아키텍처의 관점에서는 더 나은 선택이 될걸로 보입니다.

그런데 뒤에 중복된 차감으로 마이너스 재고일 때, 즉, 재고가 없을 경우의 업무는 정책마다 다소 차이가 있을거라, 주문 성공까진 다 처리하고 후에 환불/취소 배치를 돌릴지, 트랜잭션을 재고까지 묶을지는 업무 설계의 방식에 따라서 취사선택할 문제라서 비동기의 관점과는 성격이 다른 영역이라고 이해하시면 되겠습니다.

답변이 도움이 되었으면 좋겠습니다.

좋은 질문 감사합니다.

포트폴리오에 대한 질문이 있습니다!

1

17

2

회사마다의 JD 자격 요건에 대해서는 어떻게 접근해야 좋나요?

0

33

2

스킬에 대해

1

59

2

강의 일정 및 수업 자료 공유 관련 문의드립니다!

0

36

1

건강문제, 공백과 개인서비스에 대한 질문입니다.

1

69

2

카카오 친구 확인 방법

0

25

0

비전공자 전공 필기 준비 문의

0

55

2

금공 준비하려고 하는데 코테 어떻게 준비할까요?

0

53

2

Mockup 이미지 만들기에 대해 질문이 있습니다.

1

54

2

프로젝트 상황설명, 레거시 개선 관련 질문드립니다!

1

72

2

Github 권한요청 부탁드립니다

0

44

2

이력서 내용 구성 관련 질문 있습니다.

1

74

2

라이브 녹화 제공 여부

0

35

1

SP를 아직도 사용하나요?

0

60

2

캐시전략 - Write-behind

0

52

2

실무에서 진행한 쿼리 개선 사례 공유 관련 질문드립니다

1

81

2

주니어 이력서 작성방법

0

88

3

회사의 시스템 아키텍처를 포트폴리오에 써도 되나요?

1

116

2

RabbitMQ 익스체인지 질문

1

104

3

기술분석 - 배포시스템을 구축해야한다면? 부분은 강의가 제공되지 않는건가요?

0

97

2

Nginx와 로드밸런서의 관계

0

110

1

수업자료 제공 ?

0

84

2

질문이 있습니다 선생님.

0

199

1

질문이있습니다!

0

186

1