Page History
| Table of Contents |
|---|
...
소프트웨어의 복잡성은 왜 생겨나는가?
우리가 가진 만들어가는 소프트웨어가 왜 복잡해지고, 통제가 안되는지? 문제에 대한 인지로 도메인 주도 설계(이하 DDD)의 이야기는 시작합니다.
나쁜 설계
우리는 어떤 설계를 하고 있을까? 우리는 설계대신 "작업 보드 셔플" 이라는것을 진행하게되며
...
모델을 만드는 단계에 참석을 시키는, 개발문화의 변화와 성숙에 대한 도전 과제로이야기로 시작이 됩니다과제로이야기가 이어집니다.
DDD의 적용은 우리에게 상처를 줄까?
DDD의 접근 방식은 소프트웨어의 복장성을 이기기 복잡성을 극복하기 위해 무엇이 필요하고 어떻게해야하는가?
라는 물음이자 그것을 해결하기 위한 노력에서 시작이된다.
그리고 그러한 연구가 무척이나 구체화되어 있고, 여러진영의 프레임워크에 적용되어 성숙단계로 진입하고 있다.
...
라는 단순한 물음에서 시작을하며
복장성을 풀기위해 수준높은 패턴들과 방법들을 소개하고 있으며, 도입 전략과,전술을 구분하여 설명하고 있습니다. - 전략과 전술의 차이
도입에 따른 높은 학습곡선이 요구되지만, 분명한것은
DDD의 기본 전략
모델
모델을 만들거나 이용하는것은 우리 생활속의 일부이다. 레고를 만드는것, 보드게임을 하는것등이 포함된다.
...
| 진흙공(mud ball) | 덩어리 나누기 : 바운디드 컨텍스트 |
|---|---|
다른 사업부의 정책을 모두 하나의 정책으로 통합하려고 한다면 문제가 발생하게된다.
DDD에서는 DDD에서는 서로다른 개념들을 , 다른 바운디드 컨텍스트 안으로 분리해 놓음으로 개념간 차이를 중시하고 각
기 각기 다른 언어와 그에 따른 기능이 존재하는것을 인정하는것이다. 도메인의 특성을 먼저이해하고이해하고(도메인 전문가와 충분한 이야기후) 그다음 해야할것이 ,
바운디드 컨텍스트를 올바르게
나누는것이고 이것을 올바르게 나누는것이 사실 가장 어렵다.
나누는 과정에대해 설명이 진행된다.
사실상 가장중 요한 단계이자 어려운 단계이다. 이 과정이 잘 수행되고 나면 그리고 올바르게 나뉘었다고 하면 다음 해야할것은 이것을 누가 할것인가?
팀을 구분하고 바운디드 컨텍스트를 팀의 바구니에 담는것이다.마이크로 서비스를 어떻게 책임단위로 잘 구분할것인가? 사실상 MSA 를 잘 수행하는 전략적 패턴에도 DDD는 많은 영향을 끼치고 있다.
바켓에담기
- 바운디드 컨텍스트는 단일팀에 할당이되고, 독립적인 소스코드 리파지토리가 있어야한다.
- 한팀은 다수의 바운디드 컨텍스트에 대해 일을 할수 있다.
- 다수의 팀이 하나의 바운디드 컨텍스트를 함께 수행할수는 없다.
- 공식 인터페이스를 통해, 다른팀의 바운디드 컨텍스트를 이용할수 있다.
...
팀에서 해야할 바운디드 컨텍스트가 정해졌으면, 여기서 사용되는 언어를 바운디드 컨텍스트 내에서
발견을 가속화하는것이다.
- 바운디드 컨텍스트내에서 , 유용한 보편언어를 개발한다.
- 보편언어는 개발자와 도메인전문가와 번역이 필요없는 합의된 용어이다.
발견을 발견과 학습을 가속화 하는 방법으로는 이벤트 스토밍이 사용될수가 있다소개된다.
이벤트 스토밍
도메인 전문가와 개발자가 같이 참여를 하여,어떻게 전략적 설계를 효율적으로 할것인가에 대한 방법중 하나로
...
여기서는 다른팀에서 혹은 분리되어 각각 개발된 바운디드 컨텍스트가 서로 통합하여 상호운영할수 있는가?에 대한
전략적인 내용과 준수해야할 사항및 관계 표현방법을 포함하고 있다.
- 파트너쉽 : 매우밀접한 관계가 있어서, 함께 성공하거나 함께망한다. 서로의 의존성이 줄어들어 이점이 사라진다고하면 다른관계로 매핑을 설정해야함
- 고객-공급자 : 고객이 언제 무엇을 받게될지 공급자가 결정을 하지만 고객의 요구를 받아들이기도함
- 준수자 : 상류팀이 하류팀의 요구사항에 지원할 동기가 없는 경우, 하류팀이 상류팀의 모델을 그대로 따라야할때
- 반부패계층 : 가장 방어적이며 , 상류모델로부터 독립을 시키고 번역계층을 만들어 통합에 용이한 모델 개념을 독립적으로 만들수 있음
- 공개 호스트 서비스 : 이 프로토콜은 공개가 되어있고 API화가 잘되어 있다. 반부패계층을 만들시간이 없다고하면 이 모델의 준수자가 되는것을 선택할수도 있다.
- 각자의길 : 바운디드안에서만 의미가 있고 다른 컨텍스트와 통합이 될필요없는경우




