소개
Settings

Chats

DDD 용어 정리

2
DDD용어

개요

이 문서는 DDD의 주요 용어들을 간결하게 정리한 것이다.

A

  • Aggregate(애그리게이트): 연관된 엔티티와 VO를 묶어 도메인의 단순성을 유지하는 객체.
  • Aggregate Root(애그리게이트 루트): 애그리게이트의 대표 엔티티로, 상태 변경은 루트를 통해서만 가능하며 일관성을 보장한다.
  • Anti-Corruption Layer (ACL): 도메인 계층과 외부 시스템 간의 일관성과 독립성을 보호하는 계층.

B

  • Bounded Context(바운디드 컨텍스트): 도메인 영역을 명확히 구분하는 범위로, 주로 유비쿼터스 언어에 따라 구분된다.

C

  • CQRS: 명령과 조회의 책임을 분리하는 설계 패턴.
  • Context Map(컨텍스트 맵): 바운디드 컨텍스트 간 상호작용과 관계를 표현한 다이어그램.
  • Core Domain(코어 도메인): 비즈니스의 경쟁 우위와 본질적 가치를 담은 핵심 영역 (예: 구글 검색 엔진, 넷플릭스 추천 알고리즘).

D

  • DDD: Domain-Driven Design의 약자, 비즈니스 도메인 중심의 소프트웨어 개발 방법론.
  • DIP: 의존성 역전 원칙 — 고수준과 저수준 모듈이 모두 추상화에 의존하게 하는 원칙.
  • Domain(도메인): 소프트웨어가 해결하고자 하는 문제 영역.
  • Domain Event(도메인 이벤트): 도메인 모델에서 발생한 특정 과거 사건을 나타내는 객체.
  • Domain Model(도메인 모델): 비즈니스 도메인의 핵심 개념, 관계, 동작을 표현한 추상화.
  • Domain Service(도메인 서비스): 여러 엔티티에 걸친 비즈니스 로직을 수행하는 서비스.

E

  • Entity(엔티티): 고유 식별자를 가지며 동일성을 유지하는 객체.
  • Event Storming(이벤트 스토밍): 이벤트를 중심으로 비즈니스 도메인을 이해하는 설계 기법.

F

  • Factory(팩토리): 객체 생성을 캡슐화하고 추상화하는 디자인 패턴.

G

  • Generic Subdomain(제너릭 서브도메인): 여러 비즈니스에서 공통적으로 사용하는 일반적인 도메인 영역 (예: 비밀번호 암호화, 사용자 관리).

R

  • Repository(리포지토리): 애그리게이트의 영속성을 관리하는 추상 계층.

S

  • Service(서비스): 특정 엔티티나 VO에 속하지 않는 비즈니스 로직을 캡슐화한 객체.
  • Strategic Design(전략적 설계): 대규모 시스템의 구조를 이해하고 복잡성을 관리하며 코어 도메인에 집중하는 고수준 접근법.
  • Supporting Subdomain(서포팅 서브도메인): 코어 도메인을 지원하지만 그 자체로는 경쟁 우위를 제공하지 않는 영역.

T

  • Tactical Design(전술적 설계): 개별 바운디드 컨텍스트 내에서 도메인 모델을 구체적으로 구현하는 설계 접근법.

U

  • Ubiquitous Language(유비쿼터스 언어): 도메인 전문가, 개발자, 팀 구성원 모두가 공유하는 공통 용어.

V

  • Value Object(값 객체): 값 자체로 정의되며 식별자가 없는 객체로, 값이 같으면 동일한 객체로 본다.