도메인
영토, 영역, 소유지 → 지식, 영향, 활동 영역
사용자가 프로그램, 또는 소프트웨어 서비스를 적용하는 주제를 도메인이라고 함
도메인 설계
스프트웨어는 도메인의 핵심 개념과 요소들을 통합하고, 그 관계를 정확하게 구현해야한다
소프트웨어는 도메인을 모델링해야한다
도메인의 추상화인 도메인 모델을 만들어야함
도메인에 존재하는 중요한 개념과 이들 사이의 관계, 그리고 규칙을 표현
도메인 주도 설계 (DDD)
전략설계
바운디드 컨텍스트, 컨텍스트 맵, 코어 도메인
- 도메인의 복잡성이 주는 문제를 해결하기 위한 접근 방법
- 도메인 모델을 개발 과정의 중심에 두는 방법
- 개발자 뿐만 아니라 도메인을 가장 잘 아는 협업 전문가, 이해 관계자가 모두 참여해서 함께 도메인 모델을 만들고 계속 발전시켜나가야함
- 도메인 모델이 설계와 코드(구현)까지 이어져야함 → 모델 주도 설계
- 팀 내에서 도메인 모델에 기반한 단일 어휘 체계를 만들고, 이를 문서, 회의, 대화, 그리고 코드까지 일관되게 사용해야함
- 도메인에 집중하고 코드와 모델을 일치시키고 명확한 언어를 사용한다
- 도메인 모델과 보편 언어를 프로젝트에 기록
- 용어사전.md
- 도메인 모델.md
- 코드 뿐만 아니라 텍스트로도 기록 → 다이어그램으로 그리면 좋음
- 도메인 모델.drawio