컨텐츠
이벤트 기반 아키텍처에서 여러 도메인의 이벤트를 수신하는 도메인
2025-02-14 17:30
언젠가 읽기
서비스 간 통신의 기본 개념
- 서비스 간 통신은 명령, 쿼리, 이벤트로 구분됨.
- 각 통신 방식은 상호작용 방식과 응답 기대 정도에 따라 다름.
이벤트와 쿼리의 차이점
이벤트
- 과거 사실을 나타냄.
- 응답을 기대하지 않음.
- 발신자가 이벤트 발생 후 수신자가 처리함.
쿼리
- 현재 상태 정보를 요청함.
- 응답을 기대함.
- 요청-응답 방식 운영됨.
명령(Command)의 이해
- 특정 작업 수행이나 상태 변경 의도 표현함.
- 명령 성공 여부에 대한 응답을 받을 수 있음.
Ask 명령
- 실행 결과 확인이나 오류 메시지 기대함.
- 요청-응답 방식 운영됨.
Tell 명령
- 명령 결과에 대한 응답 기대하지 않음.
- Fire-and-Forget 방식 운영됨.
Tell 명령의 활용 예시
- 알림 서비스에서 이벤트 발생 시 메시지 전송 필요함.
- 응답 없이 "알림을 처리해달라"는 방식 사용함.
명령과 쿼리의 간접성
2025-01-31 12:40
언젠가 읽기
명령과 쿼리에서의 간접화 요약
개요
- 간접화는 문제 해결을 위한 추가 단계로, 명령과 쿼리의 분리를 통해 시스템의 유연성과 유지보수성 향상.
주요 내용
- 간접화의 정의 및 중요성
- 구성 요소 간의 의존성 감소, 모듈성 향상.
- 명령과 쿼리의 분리
- 명령: 상태 변경, 쿼리: 데이터 요청. 책임 분명화로 복잡성 감소.
- 간접화의 적용 사례
- 서비스 레이어 도입으로 독립적 처리, 대규모 분산 시스템 효과적.
- 장점과 단점
- 장점: 유지보수 용이, 독립적 개발 가능. 단점: 초기 설계 복잡, 성능 저하 우려.
결론
- 간접화를 통해 유연하고 유지보수 가능한 아키텍처 설계 가능, 단 과도한 적용은 복잡성 증가 가능성 존재.
참고 자료
- CQRS 패턴, 소프트웨어 아키텍처 원칙, 디자인 패턴을 통한 시스템 설계.