DDD, 이벤트 스토밍

hsso_o·2024년 7월 30일
0

스터디

목록 보기
34/44

[Full] 전자정부 표준 프레임워크 기반의 클라우드 네이티브 애플리케이션 설계 Part 1. DDD와 이벤트스토밍
밑에 사진들은 전부 저 영상에서 캡쳐한 것,,,

DDD(Domain-Driven Design, 도메인 주도 설계)

  • 복잡한 소프트웨어 시스템을 설계하는 접근 방식

    • 도메인(비즈니스 로직)에 집중하여 시스템을 모델링
    • 도메인의 개념을 소프트웨어에 반영
  • 소프트웨어의 복잡성을 관리하는 전략적 도구

  • 복잡하고 큰 모델을 바운디드 컨텍스트(한정된 맥락)로 쪼개기

    • 맥락에서 분명하게 이해될 수 있는 명확한 모델로

💡 모놀리식 vs MSA

특성모놀리식 아키텍처마이크로서비스 아키텍처
구성 방식하나의 큰 코드베이스로 구성여러 개의 독립적인 서비스로 구성
배포 단위단일 배포 단위개별 서비스별로 독립 배포
데이터베이스일반적으로 하나의 공유 데이터베이스 사용각 서비스별로 독립적인 데이터베이스 사용
통신 방식프로세스 내 호출 (함수 호출)네트워크 통신 (HTTP/REST, gRPC 등)
개발 및 배포단순, 초기 개발과 배포가 쉬움복잡, 독립적인 배포 및 다양한 기술 스택 가능
유지보수애플리케이션이 커질수록 유지보수가 어려워짐서비스별로 독립 유지보수가 가능
확장성특정 기능만 확장하는 것이 어려움개별 서비스별로 독립 확장이 가능
의존성 관리모든 기능이 강하게 결합됨서비스 간의 느슨한 결합
장애 영향 범위하나의 기능 장애가 전체 시스템에 영향을 줄 수 있음개별 서비스 장애가 전체 시스템에 미치는 영향이 적음
기술 스택단일 기술 스택 사용서비스별로 서로 다른 기술 스택 사용 가능
성능네트워크 오버헤드가 없고 빠름네트워크 통신으로 인한 오버헤드 존재
테스트통합 테스트가 쉽지만, 전체 테스트 시간 증가서비스별로 독립적인 테스트 가능, 통합 테스트가 복잡

  • 도메인끼리 커뮤니케이션을 위해선 안티 코럽션 필요 -> 컨텍스트 매핑
  • 안티 코럽션을 구현하는 레이어는 크게 두가지
    • Request/Response 기반 연동(RPC)
    • pub/sub 기반 통신 -> Eventual Consistency

  • 불변식의 범위 만을 어그리거트로 잡기

이벤트 스토밍

  • 시스템에서 발생하는 이벤트를 중심으로 분석하는 기법

주문 발생(이벤트) -> 배송 시작됨(이벤트)
=> Pub : 주문(command) -> Sub : 배송 시작(자동화된 시스템 -> 주문에 대한 반응)

profile
아뇨 소혠데요-

0개의 댓글