DDD 간단 개요

DEV NAHYUN·2025년 2월 3일
0

Architecture

목록 보기
1/1

참고 영상
https://youtu.be/4QHvTeeTsj0?si=1M6OgXB0b5MHC-ib

Domain Driven Design
1. 도메인 모델과 로직에 집중
2. 유비쿼터스 언어(보편적 언어) 사용
3. Software Entity와 Domain간 개념의 일치
: 분석 모델 - 설계 - 코드 개념의 일치

주요 용어

DDD 핵심 개념

1. Bounded Context

  • 정의:
    도메인 모델이 일정한 경계 내에서 일관된 언어와 개념으로 정의되는 영역을 의미.
    하나의 Bounded Context 내에서는 특정 용어와 모델이 통일되어 사용되지만, 다른 컨텍스트에서는 동일한 용어가 다른 의미로 사용될 수 있다.

  • 주요 특징:

    • 도메인의 복잡성을 분리하고 관리할 수 있는 논리적 경계를 제공.
    • 각 컨텍스트는 독립적으로 발전하거나 변경될 수 있다.
    • 팀 간의 협업이나 시스템 통합 시 명확한 경계를 통해 혼동을 줄여야 .

2. Context Map

  • 정의:
    조직 내 또는 시스템 내 여러 Bounded Context 간의 관계와 상호작용을 시각적으로 표현한 지도 또는 다이어그램을 의미.

  • 주요 특징:

    • 각 Bounded Context의 역할, 책임, 그리고 경계를 파악하는 데 도움을 준다.
    • 컨텍스트 간의 데이터 흐름, 통합 방식, 의존 관계(예: upstream/downstream, 공유 커널 등)를 명시.
    • 시스템 전체의 전반적인 아키텍처와 협업 관계를 이해하는 데 유용.

3. Aggregate

  • 정의:
    도메인 모델 내에서 관련된 여러 객체(Entity, Value Object 등)를 하나의 일관성 있는 단위로 묶은 집합을 의미.
    Aggregate는 항상 하나의 Aggregate Root를 가지며, 외부에서는 이 루트를 통해서만 Aggregate 내부의 객체에 접근할 수 있다.

  • 주요 특징:

    • 일관성 경계:
      Aggregate 내부의 상태 변경은 Aggregate Root를 통해 관리되어, 비즈니스 규칙과 불변성을 보장한다.
    • 단일 진입점:
      외부 시스템이나 다른 Aggregate는 항상 Aggregate Root를 통해 상호작용.
    • 트랜잭션 경계:
      보통 하나의 Aggregate 내에서 트랜잭션이 완료되어야 일관성이 유지.
profile
나만 알아보면 된다는 마음으로 작더라도 조금씩

0개의 댓글

관련 채용 정보