컨텐츠

이벤트 기반 아키텍처에서 여러 도메인의 이벤트를 수신하는 도메인

2025-02-14 17:30 언젠가 읽기

서비스 간 통신의 기본 개념

  • 서비스 간 통신은 명령, 쿼리, 이벤트로 구분됨.
  • 각 통신 방식은 상호작용 방식과 응답 기대 정도에 따라 다름.

이벤트와 쿼리의 차이점

  • 이벤트

    • 과거 사실을 나타냄.
    • 응답을 기대하지 않음.
    • 발신자가 이벤트 발생 후 수신자가 처리함.
  • 쿼리

    • 현재 상태 정보를 요청함.
    • 응답을 기대함.
    • 요청-응답 방식 운영됨.

명령(Command)의 이해

  • 특정 작업 수행이나 상태 변경 의도 표현함.
  • 명령 성공 여부에 대한 응답을 받을 수 있음.

Ask 명령

  • 실행 결과 확인이나 오류 메시지 기대함.
  • 요청-응답 방식 운영됨.

Tell 명령

  • 명령 결과에 대한 응답 기대하지 않음.
  • Fire-and-Forget 방식 운영됨.

Tell 명령의 활용 예시

  • 알림 서비스에서 이벤트 발생 시 메시지 전송 필요함.
  • 응답 없이 "알림을 처리해달라"는 방식 사용함.

명령과 쿼리의 간접성

2025-01-31 12:40 언젠가 읽기

명령과 쿼리에서의 간접화 요약

개요

  • 간접화는 문제 해결을 위한 추가 단계로, 명령과 쿼리의 분리를 통해 시스템의 유연성과 유지보수성 향상.

주요 내용

  • 간접화의 정의 및 중요성
    • 구성 요소 간의 의존성 감소, 모듈성 향상.
  • 명령과 쿼리의 분리
    • 명령: 상태 변경, 쿼리: 데이터 요청. 책임 분명화로 복잡성 감소.
  • 간접화의 적용 사례
    • 서비스 레이어 도입으로 독립적 처리, 대규모 분산 시스템 효과적.
  • 장점과 단점
    • 장점: 유지보수 용이, 독립적 개발 가능. 단점: 초기 설계 복잡, 성능 저하 우려.

결론

  • 간접화를 통해 유연하고 유지보수 가능한 아키텍처 설계 가능, 단 과도한 적용은 복잡성 증가 가능성 존재.

참고 자료

  • CQRS 패턴, 소프트웨어 아키텍처 원칙, 디자인 패턴을 통한 시스템 설계.
푸딩캠프 뉴스레터를 구독하면 학습과 성장, 기술에 관해 요약된 컨텐츠를 매주 편하게 받아보실 수 있습니다.