도메인 주도 설계, 혹은 도메인 주도 개발이라고 한다. 소프트웨어와 도메인이 멀어지지 않도록, 도메인을 중심으로 설계하고 프로젝트를 진행해나가는 방법론이다. 애자일 방법론과 연관이 있는 개념이다.
소프트웨어의 목적은, 결국 현실 세계의 문제를 해결하는 것이다. 즉, 사용자가 필요로 하는 것(도메인)을 구현하는 것이 소프트웨어의 목적이라는 것이다.
하지만 소프트웨어와 도메인 사이에는 모델이 존재한다. 종종 모델을 세분화하면서 결과적으로 도메인과 소프트웨어가 멀어지게 되는 경우가 있다. 도메인 주도 설계는, 도메인과 소프트웨어의 관계를 강하게 유지하자는 방향성이다.
도메인 주도 설계를 위한 기본적인 요소들
- 도메인 전문가, 설계, 개발 등 모든 사람이 모델 생성에 참여하고
- 모든 사람이 모델을 이해할 수 있으며
- 같은 언어(유비쿼터스 언어)를 사용해야 한다.