소프트웨어 개발에서 도메인
- 소프트웨어는 이를 사용하는 사용자들의 활동이나 관심사와 관련이 있다
- 사용자가 프로그램, 또는 소프트웨어 서비스를 적용하는 주제 영역을 도메인입니다.
- 소프트웨어가 도메인을 반영하도록 만들어야 한다.
도메인 모델
- 소프트웨어는 도메인의 핵심 개념과 요소들을 통합하고, 그 관계를 정확하게 구현해야 한다
- 소프트웨어는 도메인을 모델링해야 한다
- 도메인은 현실 세계의 일부이고, 단순히 코드로 직접 옮길 수 없다 따라서, 도메인의 추상화인 도메인 모델을 만들어야 한다
- 도메인 모델은 소프트웨어가 해결하려는 특정 문제 영역(도메인)의 핵심지도
- 도메인에 존재하는 중요한 개념과 이들 사이의 관계, 그리고 규칙을 표현
도메인 주도 설계 (DDD)
도메인에 집중하고 코드와 모델을 일치시키고 명확한 언어를 사용한다.
도메인의 복잡성이 주는 문제를 해결하기 위한 접근 방법
- 도메인 모델을 개발 과정의 중심에 두는 방법이다
- 개발자 뿐 아니라 도메인을 가장 잘 아는 현업 전문가, 이해 관계자가 모두 참여해서 함께 도메인 모델을 만들고 계속 발전시켜야 한다
- 도메인 모델이 설계와 코드까지 이어져야 한다 (모델 주도 설계)
- 팀 안에서 도메인 모델에 기반한 단일 어휘체계를 만들고, 이를 문서, 회의, 대화, 그리고 코드까지 일관되게 사용한다 (보편 언어)
도메인 모델과 보편 언어를 프로젝트에 기록