규칙 문서와 설계 검증은 이 문서의 용어와 의미를 기준으로 한다. 같은 개념은 항상 같은 용어로 쓴다.
| 용어 |
영문 |
정의 |
| 도메인 |
Domain |
소프트웨어가 해결하려는 업무 영역 전체. |
| 서브도메인 |
Subdomain |
도메인을 업무 관심사에 따라 나눈 하위 영역. 핵심·지원·일반 서브도메인으로 구분한다. |
| 핵심 서브도메인 |
Core Subdomain |
비즈니스 경쟁력의 원천이 되는 서브도메인. 설계 역량을 가장 많이 투입한다. |
| 지원 서브도메인 |
Supporting Subdomain |
핵심 서브도메인을 돕지만 차별화 요소는 아닌, 업무에 특화된 서브도메인. |
| 일반 서브도메인 |
Generic Subdomain |
여러 업무에 공통으로 필요한 서브도메인(인증, 결제 등). 기성 솔루션을 우선 검토한다. |
| 유비쿼터스 언어 |
Ubiquitous Language |
도메인 전문가와 개발자가 하나의 바운디드 컨텍스트 안에서 대화·문서·코드에 공통으로 쓰는 언어. |
| 맥락 |
Context |
단어나 문장이 놓여 그 의미를 결정하는 환경. 같은 단어도 맥락에 따라 의미가 달라진다(예: “상품”은 판매에서는 가격·재고를, 배송에서는 무게·크기를 뜻한다). “컨텍스트”와 같은 말이다. |
| 바운디드 컨텍스트 |
Bounded Context |
하나의 모델과 유비쿼터스 언어가 일관된 의미를 갖는 명시적인 경계. |
| 경계 진 맥락 |
Bounded Context |
바운디드 컨텍스트의 다른 번역어로, 같은 개념이다. 규칙 문서에서는 “바운디드 컨텍스트”로 쓴다. |
| 컨텍스트 맵 |
Context Map |
바운디드 컨텍스트들과 그 사이의 관계를 나타낸 그림 또는 문서. |
| 용어 |
영문 |
정의 |
| 공유 커널 |
Shared Kernel |
두 컨텍스트가 모델의 일부를 공유하고 함께 관리하는 관계. |
| 고객-공급자 |
Customer-Supplier |
하류(고객)의 요구를 상류(공급자)가 계획에 반영해 주는 관계. |
| 순응자 |
Conformist |
하류가 상류의 모델을 변환 없이 그대로 따르는 관계. |
| 부패 방지 계층 |
Anticorruption Layer (ACL) |
하류가 상류의 모델을 자기 모델로 변환해, 상류 모델이 자기 모델을 오염시키지 않게 하는 계층. |
| 오픈 호스트 서비스 |
Open Host Service (OHS) |
상류가 여러 하류를 위해 공개한 표준화된 프로토콜이나 API. |
| 공표된 언어 |
Published Language (PL) |
컨텍스트 간 통신에 쓰는, 문서화된 공용 데이터 형식. |
| 분리된 길 |
Separate Ways |
통합하지 않고 각 컨텍스트가 독립적으로 해결하는 관계. |
| 용어 |
영문 |
정의 |
| 엔티티 |
Entity |
속성이 바뀌어도 고유한 식별자로 동일성이 유지되는 도메인 객체. |
| 값 객체 |
Value Object |
식별자 없이 속성 값으로만 동등성을 판단하는 불변 도메인 객체. |
| 애그리거트 |
Aggregate |
하나의 일관성 단위로 함께 변경되는 엔티티와 값 객체의 묶음. |
| 애그리거트 루트 |
Aggregate Root |
애그리거트의 유일한 진입점인 엔티티. 외부는 루트를 통해서만 애그리거트를 참조·변경한다. |
| 불변식 |
Invariant |
애그리거트가 어떤 변경 후에도 항상 만족해야 하는 업무 규칙. |
| 도메인 서비스 |
Domain Service |
특정 엔티티나 값 객체에 자연스럽게 속하지 않는 도메인 로직을 담는 상태 없는 객체. |
| 애플리케이션 서비스 |
Application Service |
유스케이스 흐름을 조율하는 계층. 트랜잭션·권한 등을 다루고 도메인 로직은 도메인 객체에 위임한다. |
| 리포지토리 |
Repository |
애그리거트 단위로 저장·조회를 제공하는 컬렉션 형태의 추상화. |
| 팩토리 |
Factory |
생성 과정이 복잡한 애그리거트나 객체를 불변식을 만족하는 상태로 만들어 내는 책임을 가진 객체·메서드. |
| 도메인 이벤트 |
Domain Event |
도메인에서 일어난, 업무적으로 의미 있는 사건을 과거형으로 표현한 객체(예: OrderPlaced). |
| 모듈 |
Module |
관련된 도메인 개념을 응집도 있게 묶은 단위(패키지·네임스페이스). |
| 용어 |
영문 |
정의 |
| 도메인 계층 |
Domain Layer |
엔티티·값 객체·도메인 서비스 등 업무 규칙을 담는 계층. 다른 계층에 의존하지 않는다. |
| 애플리케이션 계층 |
Application Layer |
애플리케이션 서비스가 위치하며 유스케이스를 조율하는 계층. |
| 인프라스트럭처 계층 |
Infrastructure Layer |
데이터베이스·메시징·외부 API 등 기술 구현을 담는 계층. |
| 표현 계층 |
Presentation Layer |
사용자 인터페이스나 외부 요청(API)을 받아 애플리케이션 계층에 전달하는 계층. |