DDD & Hexagonal
in Work on Work
도메인 주도 설계(DDD, Domain-Driven Design)
- 도메인 모델링 (Domain Modeling)
- 비즈니스 도메인을 소프트웨어 모델로 표현한다.
- 도메인 전문가와 개발자가 함께 협업하여 도메인의 개념과 규칙을 명확하게 정의한다.
- 유비쿼터스 언어 (Ubiquitous Language)
- 도메인 전문가, 개발자, 기획자 등 모든 이해관계자가 같은 언어를 사용해야 한다.
- 코딩, 문서, 토론 등에서 일관된 용어를 사용하여 오해를 방지한다.
- 바운디드 컨텍스트 (Bounded Context)
- 도메인의 개념과 용어는 특정 컨텍스트(문맥) 내에서만 일관성을 유지해야 한다.
- 여러 개의 바운디드 컨텍스트가 존재할 수 있으며, 서로 독립적으로 유지되는 것이 중요하다.
- 애그리게이트 (Aggregate)
- 관련된 도메인 객체들을 하나의 그룹으로 묶어 일관성을 보장한다.
- 애그리게이트 루트(대표 객체)를 통해서만 데이터를 변경하도록 설계한다.