이벤트(3)
-
이벤트
## 시스템 간 강결합 문제 쇼핑몰에서 구매를 취소하면 환불처리를 해야한다. 보통 결제 시스템은 외부에 있으므로 Order 도메인에서 구매 취소에 관련된 서비스를 다음과 같이 파라미터로 주입할 것이다 위처럼 외부 시스템을 도메인에서 호출 시 3가지 문제가 발생할 수 있다. 1. 외부 서비스가 비정상일 경우 트랜젝션 처리를 어떻게 할까? - 롤백을 해야할까? 일단 커밋을 해야할까?, 아니면 상태만 변경한 후에 나중에 다시 시도를 해야할까? 2. 외부 시스템의 응답 시간이 길어지면 어떻게 할까? - 대기 시간만큼 응답시간이 길어져서 성능에 악영향을 주지 않을까? 3. 도메인 객체에 서비스를 전달하면 설계상 문제가 발생하지 않을까? - 도메인 로직과 외부 로직이 뒤섞이지 않을까? 위 문제가 발생하는 이유는 바..
2023.09.09 -
5장 : 마이크로서비스 설계
MSA에서 가장 중요한 관심사 : 기능적 응집성을 높이는 것, 타 서비스 간 의존도 낮추는 것 # 마이크로 서비스를 도출하는 방법 ## 비즈니스 능력에 근거한 도출 업무 기능 분해 : 업무 흐름에 따라 업무를 최상위에서 하위까지 대,중,소의 크기로 분리하고 수행하는 일을 체계적으로 정렬 전체적인 비즈니스를 이해할 때는 유용하나, 서비스 간 관계 파악 및 구체기능과 연관된 서비스 관리할 독립적인 데이터 식별을 어려움 ## DDD의 바운디드 컨텍스트 기반 도출 DDD에서는 하나의 큰 도메인을 중요도에 따라 도메인을 나누고 각 도메일을 하나씩 해결 ### 서브 도메인 비즈니스 도메인을 논리적으로 구분/분리되는 여러 하위 도메인 - 핵심 서브도메인 : 높은 우선순위 영역, 전략적으로 가장 큰 투자가 필요한 영역..
2023.05.22 -
[도메인 주도 개발 시작하기 - 최범균 저] 한 장 요약
도메일 모델 시작하기 도메인에 따라 용어의 의미가 결정 여러 하위 도메인을 하나의 다이어그램에 모델링 하면 안 됨 각 하위 도메인마다 별도 모델을 만들어야 아키텍처 구성 표현 영역 : 사용자 요청 처리/사용자에게 정보 제공 HTTP 요청을 응용영역이 필요로 하는 형식으로 변환헤서 전달 응용 영역 : 사용자가 요청한 기능 실행 : 업무 로직을 직접 구현하지 않음 응용 서비스를 로직을 직접 수행하지 않고, 도메인 모델에 로직 수행을 위임 도메인 영역 : 시스템이 제공할 도메인 규칙 구현 도메인 핵심 로직 구현 인프라스트럭처 영역 : DB나 메시징 시스템 같은 외부 시스템 연동 처리 상위 계층에서 하위 계층으로의 의존만 존재 DIP 적용시 하위 기능을 추상화한 인터페이스는 고수준 모듈 관점에서 도출 도메인 영..
2023.01.13