
175
8
장
이벤트와 메시지 버스
지금까지는 장고를 사용하면 쉽게 해결할 수 있는 문제도 상당한 시간과 에너지가 필요했다.
이런 시간과 에너지를 투자할 정도로 테스트 가능성과 표현성을 높이는 것이
정말
가치가 있는
일인지에 대해 궁금할 것이다.
하지만 실세계에서는 코드베이스를 더럽히는 것은 해결책이 아니다. 실제 코드베이스를 오염
시키는 것은 시스템 주변에 거친 때가 여러 겹으로 엉겨 붙는 더께와 같다 리포팅, 사용 권한,
수없이 많은 객체를 건드리는 작업 흐름 등이 바로 이런 더께라고 할 수 있다.
여기서 다룰 예제는 전형적인 통지 관련 요구 사항이다. 재고 부족으로 주문에 대한 할당이 불
가능한 경우 구매팀에게 이 사실을 전달해야 한다. 구매팀은 상품을 많이 구매해서 이 문제를
해결할 것이다. 그 후에는 정상 주문이 가능하다.
상품 담당자가 이메일로 통지해도 충분하다고 가정한다.
시스템의 대부분을 구성하는 평범한 요소에 무언가를 끼워 넣어야 할 때 아키텍처가 어떻게 유
지되는지 살펴보자.
먼저 가장 단순하고 빨리 처리할 수 있는 것부터 살펴본 다음 이런 결정이 어떻게 큰 진흙 공을
만드는지 설명한다.
그다음
도메인 이벤트
domain
event
패턴을 사용해 앞에서 말한 용례에서 발생한 부작용을 분리할
수 있는지 살펴본다. 이런 이벤트가 발생하면 적합한 동작을 ...