2023년 1월 23일
출처: 블라드 코노노프 - 도메인 주도설계 첫 걸음
목차
비즈니스 문제란?
- 기업이 서비스를 제공하는데 발생하는 모든 문제.
- 비즈니스 도메인과 하위 도메인의 모든 수준에서 발생할 수 있음.
- 하위 도메인의 목적은 세분화된 문제 도메인으로 특정 비스니스 문제에 대한 솔루션을
제공하는 것에 있다.
도메인 지식 찾아 내기
- 도메인 전문가가 문제를 생각하는 방식 (멘탈 모델) 을 이해하고 있어야 효과적인
소프트웨어 솔루션의 설계가 가능하다.
- 만약 도메인 전문가가 제시한 요구사항에서 ‘극단적인 경우’를 놓친다거나,
비즈니스 개념을 설명하지 못해서 요구사항을 충족할 모델을 구현할 능력이 없다면,
소프트웨어 솔루션에서 심각한 비즈니스 문제가 발생하게 된다.
- 이러한 문제를 예방하기 위해서, 도메인 전문가와 소프트웨어 엔지니어간의
효과적인 커뮤니케이션 방식이 요구된다.
커뮤니케이션
도메인 지식이란, 프로젝트의 비즈니스 문제를 해결하고
프로젝트의 성공과 직결되는 핵심 정보이다.
프로젝트 구성원 중 누구나 이 도메인 지식을 인지하고 있을 수 있고,
이 도메인 지식을 손실 없이 협업자들에게 전달하기 위해 효과적인 커뮤니케이션이 필요하다.
이 때, 도메인 주도 설계에서는 더 나은 방법으로 유비쿼터스 언어를 제안한다.
유비 쿼터스 언어란?
💡 정보가 전달되는 과정에서, 각 전문가가 이해하기 편한 방식으로 ‘변환’ 시키게 되면,
필연적으로 정보의 손실이 발생한다. 이 ‘변환’을 최소화하기 위하여 도메인에서 모두가
같은 언어를 사용하자는 것이고, 이것이 유비 쿼터스 언어이다.
- 도메인 주도 설계의 초석
- 프로젝트 참가자들 모두가 동일한 이해를 얻을 수 있다.
- 모든 프로젝트 참가 협업자들은, 유비쿼터스 언어를 이용해 비즈니스 도메인을 설명해야 한다.
- 유비 쿼터스 언어는 모든 프로젝트 참가자들에 의해 지속적으로 발전해야 한다.
비즈니스 언어
- 유비쿼터스 언어는, 비즈니스를 위한 언어임
- 기술적인 개념의 이해는 멀리해야 한다.
- 비즈니스 도메인의 멘탈 모델을 쉽게 이해시키고,
도메인 지식을 손실없이 전달하는 것을 목표로 한다.
비즈니스 도메인 모델
- 문제를 해결하는데 목적이 있으며, 그 목적에 필요한 정보만 제공하는 데이터.
- 실세계의 복제가 아님.
- 프로그래밍적 개념으로는, 추상화와 목적이 일치한다.
💡 유비쿼터스 언어의 발전은, 사실상 비즈니스 도메인 모델의 구축이다.