DDD
유비쿼터스지만 보편적이지는 않다
kooangelo
2024. 8. 6. 15:13
* 유비쿼터스는 ‘만연하다’ 혹은 ‘어디서나 발견된다’는 의미, 즉 팀원 간에 사용되고 팀이 개발하는 하나의 도메인 모델로 발현된다는 의미다.
* 유비쿼터스라는 단어의 사용은 엔터프라이즈 전체의 전사적인, 혹은 세계적 이고 보편적인 도메인 언어를 설명하려는 의도는 아니다.
* 바운디드 컨텍스트당 하나의 유비쿼터스 언어가 있다.
* 바운디드 컨텍스트는 우리가 처음 상상했던 것보다 상대적으로 더 작다.
바운디드 컨텍스트는 격리된 비즈니스 도메인의 완전한 유비쿼터스 언어를 포착 할 만큼만 크다.
* 유비쿼터스 언어는 바운디드 컨텍스트를 격리시키고 그 안에서 프로젝트의 개발 업무를 수행하는 팀 내부에서만 유비쿼터스하다.
* 하나의 바운디드 컨텍스트를 개발하는 하나의 프로젝트에는 항상 하나 이상의 격리된 바운디드 컨텍스트가 있으며, 이는 컨텍스트 맵(3)을 사용해 통합 된다. 일부 용어가 겹칠지라도, 통합되는 바운디드 컨텍스트 각각은 자신만의 유비쿼터스 언어를 갖고 있다.
* 당신이 전체 엔터프라이즈에 혹은 그보다 넓은 단위에 단일 유비쿼터스 언어를 적용하려 한다면 실패할 것이다.
명시적으로 바운디드 컨텍스트 내의 격리된 도메인 모델에서
유비쿼터스 언어를 토론하고, 연구하고, 개념화하고, 개발하고, 사용하라.
여러분의 격리된 컨텍스트상에서 합의된 유비쿼터스 언어가 아닌 모든 개념을 거부하라.
- Implementing Domain-Driven Design 도메인 주도 설계 구현, 반 버논 p77~78