Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

문제-인지

우리가 가진 소프트웨어가 왜 복잡해지고, 통제가 안되는지? 문제에대한 인지로 DDD(도메인 주도 설계)의 이야기는 시작합니다.

나쁜 설계

우리는 어떤 설계를 하고 있을까? 우리는 설계대신 "작업 보드 셔플" 이라는것을 진행하게되며

할일과 작업중 그리고 완료로 이어지는 작업의 아이템 변화과정을 지식 집약적인 일의 전부로 여기고

나머지는 프로그래머가 소스를 쏟아내기만 하면 된다라고 생각한다. 

이는 잘 드러나지도 않고, 존재하지도 않는 설계에 엄청난 비지니스 비용을 쏟아붓는일이다.

좋은 설계의 다음 대안은 나쁜설계이다.  이 문구의 요점은 설계를 절대하지 않는것에대한 이야기이다.

설계가 없는것은 지식획득이라는 중요한 것을 놓치고 ,큰 진흙 덩어리를 계속 만들어 내게되며 

소프트웨어 개발을 이익중심이 아닌 원가 중심으로 생각하며 비지니스 문화가 확고한 경우 설계문화가

생길수 없다란것을 강하게 경고하고 있다.  

큰 진흙 덩어리

여기서 큰 진흙 덩어리는 , 여러 서비스가 하나의 Was에 묶여 작동되는 솔리드 시스템 자체에 대해 문제를 말하는것이 아니다.

비지니스 로직이 생길때마다, 프로젝트 예측을 매우강하게 요구하여 설계에 들이는 노력이 소프트웨어가 지연되는

결과로 이어질수 있기때문에 개발자는 심사숙고한 설계보다. 위에서 언급한 "작업셔플"만을 사용을하여

적절한 분리된 모델이 아닌 큰 진흙덩어리를  빨리 만들어 내고 있다란 것이다. 

이렇게 거대해진 덩어리는, 문제가 되는 두더지 한마리를 겨우 잡으면, 다른곳에서 또 두더지가 나타나는

두더지 게임이 되는 상황을 예고하고 있다.

그리고 이렇게 되는 원인은 기술의 복잡성이 아닌 비지니스 모델자체가 복잡하기때문이다라고 이야기를 하며

복잡성을 다루기위해, 도메인을 중심에 놓고 시작해야된다라고 이야기가 이어집니다.  

도메인의 복잡성

소프트웨어가 일반적으로 복잡해지는 이유는, 우리가 사용하는 기술자체의 복잡성이 아니라

우리가 가진 도메인 자체의 복잡성에 기인하며, 이렇게 큰 진흙덩어리가 된 이유는 비지니스 전문가의

이야기를 귀를 기울이지 않은채 소프트웨어 팀이 제멋대로 노력한 결과라고 경고를 합니다.

그리고 도메인 전문가를 참가시켜 경계를 구분하고,언어를 통합하고 전략적으로 모델을 만드는

도전과제에 대해 이야기가 이어집니다.


도전-전략적 설계

모델


이벤트 스토밍



덩어리를 나누기


보편언어개발