동작하는 도메인 모델 만들기

모든 소프트웨어는 사용자의 활동이나 관심사와 관련되어 있다. 이런 대상 영역을 해당 소프트위에어의 도메인 이라 한다.

어떤 도메인은 유형의 승객이나 티켓일수 있고, 어떤 도메인은 무형의 광고나 주문일 수있다.

이러한 도메인은 굉장히 방대하며 복잡해 질 수 있는데, 적절한 모델을 토대로 정보를 이해하고 문제 자체에 집중할 수 있다.

도메인 주도 설계에서의 모델의 유용성

모델과 핵심 설계는 서로 영향을 주며 구체화 된다 모델을 의미있게 만들고 모델이 동작하는 프로그램에 녹아들게 되는것은 모델과 구현간의 긴밀한 연결이다.

모델은 모든 팀 구성원이 사용하는 언어의 중추이다 모델과 구현은 연결되어 있으므로 개발자는 이 언어를 토대로 프로그램을 이해하며 논의한다.

모델은 지식의 정수를 뽑아낸 것이다. 팀에서 합의된 지식을 구분하는 방식이다.

소프트웨어의 본질

소프트웨어의 본질은 사용자에게 해당 도메인에 관련된 문제를 해결하는 능력이다.

하지만 대부분의 소프트웨어 프로젝트에서는 이러한 도메인에 관한 연구는 우선되지 않으며, 유능한 대부분의 개발자는 도메인을 학습하는데 관심이 없고 기술력을 훈련하는것을 좋아한다.

개발자는 도메인 연구에 몰두하여, 도메인 설계에 통달하고, 소프트웨어의 복잡성을 도메인으로 풀어야한다.

Last updated