[Part 1] 전략적 설계 ▣ 01장: 비즈니스 도메인 분석하기 비즈니스 도메인이란? 하위 도메인이란? __하위 도메인의 유형 __하위 도메인 비교 __하위 도메인 경계 식별 도메인 분석 예제 __Gigmaster __BusVNext 도메인 전문가는 어떤 사람인가? 결론 연습문제 ▣ 02장: 도메인 지식 찾아내기 비즈니스 문제 도메인 지식 찾아내기 커뮤니케이션 유비쿼터스 언어란 무엇인가? 비즈니스 언어 __시나리오 __일관성 비즈니스 도메인 모델 __모델이란 무엇인가? __효과적인 모델링 __비즈니스 도메인 모델링 __지속적인 노력 __도구 __도전과제 결론 연습문제 ▣ 03장: 도메인 복잡성 관리 일관성 없는 모델 바운디드 컨텍스트란 무엇인가? __모델 경계 __정제된 유비쿼터스 언어 __바운디드 컨텍스트의 범위 바운디드 컨텍스트 대 하위 도메인 __하위 도메인 __바운디드 컨텍스트 __하위 도메인과 바운디드 컨텍스트 사이의 상호작용 경계 __물리적 경계 __소유권 경계 실생활의 바운디드 컨텍스트 __시맨틱 도메인 __과학 __냉장고 구입 결론 연습문제 ▣ 04장: 바운디드 컨텍스트 연동 협력형 패턴 그룹 __파트너십 패턴 __공유 커널 패턴 사용자-제공자 패턴 그룹 __순응주의자 패턴 __충돌 방지 계층 패턴 __오픈 호스트 서비스 패턴 분리형 노선 __커뮤니케이션 이슈 __일반 하위 도메인 __모델의 차이 컨텍스트 맵 __유지보수 __한계 결론 연습문제 [Part 2] 전술적 설계 ▣ 05장: 간단한 비즈니스 로직 구현 트랜잭션 스크립트 __구현 __그렇게 쉽진 않다! __트랜잭션 스크립트를 사용하는 경우 액티브 레코드 __구현 __액티브 레코드를 사용하는 경우 실용적인 접근 방식 결론 연습문제 ▣ 06장: 복잡한 비즈니스 로직 다루기 배경 도메인 모델 __구현 __구성요소 __복잡성 관리 결론 연습문제 ▣ 07장: 시간 차원의 모델링 이벤트 소싱 __검색 __분석 __원천 데이터 __이벤트 스토어 이벤트 소싱 도메인 모델 __장점 __단점 자주 묻는 질문 __성능 __데이터 삭제 __이렇게 하면 안될까요…? 결론 연습문제 ▣ 08장: 아키텍처 패턴 비즈니스 로직과 아키텍처 패턴 계층형 아키텍처 __프레젠테이션 계층 __비즈니스 로직 계층 __데이터 접근 계층 __계층 간 커뮤니케이션 __변종(variation) __계층형 아키텍처를 사용하는 경우 포트와 어댑터 __용어 __의존성 역전 원칙 __인프라 구성요소의 연동 __변형 __포트와 어댑터를 사용하는 경우 CQRS __폴리글랏 모델링 __읽기 모델의 프로젝션 __도전과제 __모델 분리 __CQRS를 사용해야 하는 경우 범위 결론 연습문제 ▣ 09장: 커뮤니케이션 패턴 모델 변환 __스테이트리스 모델 변환 __스테이트풀 모델 변환 애그리게이트 연동 __아웃박스 __사가 __프로세스 관리자 결론 연습문제 [Part 3] 도메인 주도 설계 적용 실무 ▣ 10장: 휴리스틱 설계 휴리스틱 바운디드 컨텍스트 비즈니스 로직 구현 패턴 아키텍처 패턴 테스트 전략 __피라미드형 테스트 __다이아몬드형 테스트 __역전된 피라미드형 테스트 전술적 설계 의사결정 트리 결론 연습문제 ▣ 11장: 진화하는 설계 의사결정 도메인 변경 __핵심에서 일반으로 __일반에서 핵심으로 __지원에서 일반으로 __지원에서 핵심으로 __핵심에서 지원으로 __일반에서 지원으로 전략적 설계 문제 전술적 설계 문제 __트랜잭션 스크립트에서 액티브 레코드로 __액티브 레코드에서 도메인 모델로 __도메인 모델에서 이벤트 소싱 도메인 모델로 __전환에 필요한 과거 이력 생성 __마이그레이션 이벤트 모델링 조직 변화 __파트너십에서 사용자-제공자로 __사용자-제공자에서 분리형 노선으로 도메인 지식 성장 __하위 도메인 __바운디드 컨텍스트 __애그리게이트 결론 연습문제 ▣ 12장: 이벤트스토밍 이벤트스토밍이란? 누가 이벤트스토밍에 참석하나? 이벤트스토밍에 무엇이 필요한가? 이벤트스토밍 과정 __1단계: 자유로운 탐색 __2단계: 타임라인 __3단계: 고충점 __4단계: 중요 이벤트 __5단계: 커맨드 __6단계: 정책 __7단계: 읽기 모델 __8단계: 외부 시스템 __9단계: 애그리게이트 __10단계: 바운디드 컨텍스트 변형 이벤트스토밍을 사용하는 경우 진행 팁 __활력도 살피기 __원격 이벤트스토밍 결론 연습문제 ▣ 13장: 실무에서의 도메인 주도 설계 전략적 분석 __비즈니스 도메인 이해하기 __현재 설계 탐색 현대화 전략 __전략적 현대화 __전술적 현대화 __유비쿼터스 언어 육성 실용적인 도메인 주도 설계 도메인 주도 설계 확산 __실무에 활용하는 도메인 주도 설계 결론 연습문제 [Part 4] 다른 방법론 및 패턴과의 관계 ▣ 14장: 마이크로서비스 서비스란 무엇인가? 마이크로서비스란 무엇인가? __서비스형 메서드: 완벽한 마이크로서비스? __설계 목표 __시스템의 복잡성 __깊은 서비스로서의 마이크로서비스 __깊은 모듈로서의 마이크로서비스 도메인 주도 설계와 마이크로서비스의 경계 __바운디드 컨텍스트 __애그리게이트 __하위 도메인 마이크로서비스의 퍼블릭 인터페이스 압축하기 __오픈 호스트 서비스 __충돌 방지 계층 결론 연습문제 ▣ 15장: 이벤트 주도 아키텍처 이벤트 주도 아키텍처 이벤트 __이벤트, 커맨드, 메시지 __구조 __이벤트 유형 이벤트 주도 연동 설계 __분산된 커다란 진흙 덩어리 __시간 결합 __기능 결합 __구현 결합 __이벤트 주도 연동의 리팩터링 __이벤트 주도 설계 휴리스틱 결론 연습문제 ▣ 16장: 데이터 메시 분석 데이터 모델과 트랜잭션 데이터 모델의 비교 __팩트 테이블 __디멘전 테이블 __분석 모델 분석 데이터 관리 플랫폼 __데이터 웨어하우스 __데이터 레이크 __데이터 웨어하우스와 데이터 레이크 아키텍처의 도전과제 데이터 메시 __도메인 기준의 데이터 분리 __제품 관점에서 데이터 다루기 __자율성 활성화 __에코시스템 구축 데이터 메시와 도메인 주도 설계를 엮기 결론 연습문제 ▣ 맺음말 문제 솔루션 구현 추가 자료 __고급 도메인 주도 설계 __아키텍처 및 통합 패턴 __레거시 시스템 현대화 __이벤트스토밍 결론 ▣ 부록A: DDD 적용: 사례 연구 다섯 가지 바운디드 컨텍스트 __비즈니스 도메인 __바운디드 컨텍스트 #1: 마케팅 __바운디드 컨텍스트 #2: CRM __바운디드 컨텍스트 #3: 이벤트 크런처 __바운디드 컨텍스트 #4: 보너스 __바운디드 컨텍스트 #5: 마케팅 허브 논의 __유비쿼터스 언어 __하위 도메인 __바운디드 컨텍스트의 경계 결론 ▣ 부록B: 연습문제 정답