책 소개
DDD 핵심과 도구를 배우는 것에 관심을 갖고 이를 빠르게 학습하고자 하는 사람들을 위한 책이다. 대부분의 독자들은 프로젝트 실행 방안에 DDD를 포함시키려는 소프트웨어 아키텍트나 소프트웨어 개발자일 것이다. 소프트웨어 개발자들은 때때로 DDD의 아름다움을 빨리 발견하고 DDD의 강력함에 매료된다. 하지만 그들뿐만 아니라 임원, 도메인 전문가, 관리자, 비즈니스 분석가, 인포메이션 아키텍트 그리고 테스터 모두가 이해할 수 있는 주제를 다뤘으므로 정보기술(IT) 산업이나 연구 개발(R&D) 환경에 상관없이 누구나 이 책을 읽고 도움을 받을 수 있다
이 책에서 다루는 내용
* DDD가 개인 및 조직을 위해 할 수 있는 일과 중요성
* DDD 전략적 설계의 기초: 바운디드 컨텍스트와 보편 언어
* 서브도메인을 활용한 전략적 설계
* 팀이 함께 일하고 좀 더 전략적으로 소프트웨어를 통합하도록 돕는 컨텍스트 매핑
* 애그리게잇과 도메인이벤트를 통한 전술적 설계
* 팀의 리듬을 만들고 관리하기 위한 프로젝트 가속화와 관리 도구 사용
이 책의 구성
1장, ‘나에게 도메인 주도 설계는’에서는 DDD가 여러분들과 여러분들의 조직을 위해 할 수 있는 것에 대해 설명하고, 앞으로 배울 것과 그것이 왜 중요한지에 대해 좀 더 상세한 개요를 제공한다.
2장, ’바운디드 컨텍스트 및 보편언어와 전략적 설계’에서는 DDD 의 전략적 설계를 소개하면서 DDD 토대가 되는 바운디드 컨텍스트와 보편언어를 설명한다.
3장, ’서브도메인과 전략적 디자인’에서는 서브도메인을 설명하고, 새로운 애플리케이션을 모델링하는 동안 기존 레거시 시스템과의 통합에 따르는 복잡성을 다루는 데 서브도메인을 사용하는 방법을 제공한다.
4장, ’컨텍스트 매핑과 전략적 설계’에서는 팀이 전략적으로 함께 일하는 방법과 그들의 소프트웨어를 통합할 수 있는 다양한 방법을 설명한다. 이를 컨텍스트 매핑이라고 한다.
5장, ’애그리게잇과 전술적 설계’에서는 애그리게잇을 통한 전술적 모델링으로 관심을 돌린다. 애그리게잇과 함께 사용되는 중요하고 강력한 전술적 모델링 도구는 6장, ‘도메인 이벤트와 전술적 설계’의 주제인 도메인 이벤트다.
7장, ’가속화와 관리 도구’는 팀이 그들의 리듬을 만들고 유지하는 데 도움을 주는 프로젝트 가속화와 프로젝트 관리 도구를 조명한다. 이 두 가지 주제는 좀처럼 다른 DDD 자료에서는 보기 힘든 것들이고, DDD를 실천 방안에 포함하는 결정을 하려는 이들에게 꼭 필요한 내용이다.
지은이의 말
여러분들이 DDD 사용을 권장했던 고객과 함께 일하고 있는 컨설턴트라면, 주요 이해관계자를 신속하게 이해시킬 수단으로 이 책을 사용하기 바란다. 프로젝트에서 DDD와 친숙하지 않은 주니어, 중급 또는 시니어 개발자와 함께 작업하면서 DDD를 조만간 사용해야 한다면, 이 책을 읽도록 권유하기 바란다. 이 책을 읽어보면 모든 프로젝트 이해관계자와 개발자들은 최소한 그들이 사용할 용어와 기본적인 DDD 도구를 이해할 수 있을 것이다. 프로젝트를 진행하다 보면 DDD에 대한 공통된 이해가 점차 가치를 발휘할 것이다.
경력과 역할에 관계없이 이 책을 읽고 프로젝트에 DDD를 적용해본 후, 책을 다시 읽으면서 경험으로부터 배울 수 있는 것과 향후 개선할 수 있는 것에는 어떤 것들이 있을지 확인해보기 바란다.
작가 소개
저 : 반 버논
Vaughn Vernon
베테랑 소프트웨어 장인이자 소프트웨어 설계와 구현을 단순하게 만드는 분야의 선구자다. 『도메인 주도 설계 구현』(에이콘, 2016)과 『Reactive Messaging Patterns with Actor Model』(Addison-Wesley, 2015)의 저자고, 전 세계 수백 명의 소프트웨어 개발자들에게 IDDD Workshop을 가르쳤다. 업계 컨퍼런스에 자주 등장하는 연사로 분산 컴퓨팅, 메시징, 특히 액터 모델에 관심이 많고, 도메인 주도 설계와 스칼라(Scala), 아카(Akka)와 함께 액터 모델을 사용하는 DDD 컨설팅 전문가다. 그의 최근 작업들은 블로그(www.VaughnVernon.co)를 방문하거나 트위터 계정(@VaughnVernon)을 팔로잉하면 확인할 수 있다.
역 : 박현철
한때는 춤을 사랑했지만, 지금은 좋은 소프트웨어를 만들기 위해 글을 쓰는 것을 즐긴다. 다양한 분야에 걸쳐 많은 프로젝트를 경험했으며, 프로그래머로 시작해서 설계자, 프로젝트 관리자, 아키텍트, 멘토까지 다양한 역할을 수행하고 있다. 건국대학교 정보통신대학원 겸임 교수로 재직 중이며, IT 분야에서 보람과 행복을 찾기 위해 많은 사람들과 함께 노력하고 있다.
CSM(Certified Scrum Master), CSPO(Certified Scrum Product Owner), CSD(Certified Scrum Developer)이며, 저서로는 『객체지향 분석 설계 Visual C++ 프로그래밍』(비앤씨, 1999), 『프로그래머 그들만의 이야기』(영진닷컴, 2010), 『실전CBD Project』(영진닷컴, 2004), 『UML 이해와 활용』(한국소프트웨어연구원, 2005)이 있고, 번역서로는 『EXtreme Programming Installed: XP도입을 위한 실전 입문』(인사이트, 2002), 『엔터프라이즈 애자일 프로젝트 관리』(에이콘, 2010), 『Agile Project Management with Scrum 한국어판』(에이콘, 2012), 『UML을 활용한 객체지향 분석 설계』(에이콘 2013), 『스크럼으로 소프트웨어 제품 관리하기』(에이콘, 2013), 『애자일 소프트웨어 개발』(에이콘, 2016)이 있다.
역 : 전장호
소프트웨어 개발자와 설계자로 시작해서 프로젝트 매니저, 스크럼 마스터, 강사 등 IT 분야에서 16년 가까이 다양한 역할을 통해 여러 프로젝트를 경험했고, 현재는 기술 기반 광고(AD Tech) 비즈니스/플랫폼 전략 및 설계 분야에서 활동하고 있다. 애자일 등 개발/프로젝트 방법론에 관심이 많아 프로젝트를 진행하며 다양한 실험을 적용해보는 것을 좋아하고, 항상 어떻게 하면 좀 더 효율적이고 즐겁게 일할 수 있을지 고민한다. 비즈니스의 복잡한 문제들을 기술적으로 해결하기 위해 연구와 실행에 빠져 있는 것을 좋아하는데, 이런 시간을 외에는 요리를 하거나 여행하는 것을 좋아하고 사랑하는 아내 남영과 시간을 보내는 것을 즐긴다.
목 차
1장. 나에게 도메인 주도 설계는
__DDD가 우리에게 상처를 줄까?
__좋은 나쁜 그리고 효과적인 설계
__전략적 설계
__전술적 설계
__학습 과정과 지식의 정제
__이제 시작해보자!
2장. 바운디드 컨텍스트 및 보편언어와 전략적 설계
__도메인 전문가와 비즈니스 동인
__사례 연구
__기본적인 전략적 설계를 하려면
__도전과 통합
__보편언어 개발하기
____작업에 시나리오 넣기
____많은 시간과 노력이 드는 일은?
__아키텍처
__요약
3장. 서브도메인과 전략적 디자인
__서브도메인은 무엇인가?
__서브도메인의 유형
__복잡성 다루기
__요약
4장. 컨텍스트 매핑과 전략적 설계
__매핑의 종류
____파트너십
____공유 커널
____고객-공급자
____준수자
____반부패 계층
____공개 호스트 서비스
____공표된 언어
____각자의 길
____큰 진흙 덩어리
__컨텍스트 매핑 활용하기
____SOAP을 이용한 RPC
____레스트풀 HTTP
____메시징
__컨텍스트 매핑 사례
__요약
5장. 애그리게잇과 전술적 설계
__왜 필요할까
__애그리게잇 경험 법칙
____규칙 1: 애그리게잇 경계 내의 비즈니스 불변사항을 보호하라
____규칙 2: 작은 애그리게잇을 설계하라
____규칙 3: 오직 식별자로만 다른 애그리게잇을 참고하라
____규칙 4: 결과적 일관성을 사용해 다른 애그리게잇을 갱신하라
__애그리게잇 모델링
____추상화를 조심스럽게 선택하라
____올바른 크기의 애그리게잇
____테스트 가능한 단위
__요약
6장. 도메인 이벤트와 전술적 설계
__도메인 이벤트를 설계, 구현, 사용하기
__이벤트 소싱
__요약
7장. 가속화와 관리 도구
__이벤트 스토밍
____다른 도구들
__애자일 프로젝트에서의 DDD 관리
중요한 일부터 먼저
____SWOT 분석 사용
____모델링 스파이크와 모델링 부채
____작업 확인 및 노력 추정
__기간이 정해진 모델링
____어떻게 구현해야 하는가?
____도메인 전문가와 상호 작용하기
__요약
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |