본문 바로가기

추천 검색어

실시간 인기 검색어

도메인 주도 설계 구현(Implementing Domain-Driven Design)

에이콘 소프트웨어 아키텍처 시리즈
반 버논 저자(글) · 윤창석 , 황예진 번역
에이콘출판 · 2016년 04월 07일
8.5 (3개의 리뷰)
쉬웠어요 (50%의 구매자)
  • 도메인 주도 설계 구현(Implementing Domain-Driven Design) 대표 이미지
    도메인 주도 설계 구현(Implementing Domain-Driven Design) 대표 이미지
  • A4
    사이즈 비교
    210x297
    188x250
    단위 : mm
무료배송 이벤트 소득공제
10% 40,500 45,000
적립/혜택
2,250P

기본적립

5% 적립 2,250P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 2,250P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서 / 외국도서
도서만 1만 원 이상 구매 시 무료배송
도서 + 잡지 / 만화 / :K컬렉션을 함께 1만 원 이상 구매 시 무료배송

1만원 미만 시 2,000원 배송비 부과

잡지 / 만화 / :K컬렉션 (교보배송)
각각 구매하거나 함께 2만 원 이상 구매 시 무료배송

2만원 미만 시 2,000원 배송비 부과

해외주문 서양도서 / 해외주문 일본도서 (교보배송)
각각 구매하거나 함께 1만 원 이상 구매 시 무료배송

1만원 미만 시 2,000원 배송비 부과

업체배송 상품 (전집, GIFT, 음반 / DVD 등)
중고장터 상품
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
주문정보를 불러오는 중입니다.
서울시 종로구 종로 1

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

패키지

북카드

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

[도메인 주도 설계 구현]은 도메인 주도 설계를 통해 엔터프라이즈 애플리케이션을 구축하는 방법을 풍부한 구현 예제를 통해 구체적으로 설명한다. 스프링, REST, NoSQL 등을 활용해 도메인 모델을 중심으로 올바른 소프트웨어 구조를 만들어가는 과정을 보여주며, CQRS와 이벤트 소싱 등을 활용해 도메인 주도 설계를 구현하는 실용적 방법을 다룬다. 그동안 도메인 주도 설계를 프로젝트에 적용하는 과정에서 어려움을 겪었던 개발자에게 도움이 될 것이다.

작가정보

저자(글) 반 버논

저자 반 버논(Vaughn Vernon)은 소프트웨어 디자인과 개발, 아키텍처에서 25년 이상의 경력을 쌓아온 숙련된 소프트웨어 장인이다. 혁신적인 방법을 사용해 소프트웨어의 디자인과 구현을 단순화할 수 있는 리더다. 1980년대부터 객체지향 언어를 사용한 프로그래밍을 시작했고, 1990년대 초기 스몰톡 도메인 모델링부터 도메인 주도 설계의 개념을 적용하기 시작했다. 넓은 비즈니스 도메인에 걸쳐 경험을 쌓았고, 이런 도메인에는 우주항공, 환경, 지리정보, 보험, 의료, 통신 등이 포함된다. 또한 재사용 가능한 프래임워크나 라이브러리를 만들고 개발을 가속시키는 도구를 구현하는 등의 기술적 노력을 계속해왔다. 국제적인 컨설팅이나 강연을 진행해왔고, 여러 대륙에서 도메인 주도 설계의 구현에 관한 수업을 개설했다. www.VaughnVernon.co에서 근황을 확인할 수 있다.

역자 윤창석은 포스텍 컴퓨터공학과에서 학사 과정을 마쳤다. 삼성테크윈 선행기술연구소를 거쳐 현재는 카카오에 재직 중이다.

역자 황예진은 미국 미시건 대학교(University of Michigan, Ann Arbor)에서 커뮤니케이션(Communications)과 심리학(Psychology)을 전공했다. 삼성물산 내부 통역자(In-House Interpreter), 한국마이크로소프트를 거쳐 현재 주한미국상공회의소(AMCHAM Korea) 홍보 팀에 재직 중이다.

목차

  • 1장 DDD를 시작하며
    나도 DDD 할 수 있을까?
    내가 왜 DDD를 해야 하지?
    __비즈니스 가치를 제공하는 것은 어려울 수 있다
    __DDD가 해줄 수 있는 일
    __도메인의 복잡성과 씨름하기
    무기력증과 기억 상실
    __왜 무기력증이 일어나는가
    __무기력증이 당신의 모델에 한 일을 보라.
    DDD는 어떻게 하는가?
    __유비쿼터스지만 보편적이지는 않다.
    DDD를 사용하는 데서 오는 비즈니스 가치
    __1. 조직이 그 도메인에 유용한 모델을 얻는다.
    __2. 정교하고 정확하게 비즈니스를 정의하고 이해한다.
    __3. 도메인 전문가가 소프트웨어 설계에 기여한다.
    __4. 사용자 경험이 개선된다.
    __5. 순수한 모델 주변에 명확한 경계가 생긴다.
    __6. 엔터프라이즈 아키텍처의 구성이 좋아진다.
    __7. 애자일하고, 반복적이고, 지속적인 모델링이 사용된다.
    __8. 전략적인 동시에 전술적인 새로운 도구가 적용된다.
    DDD 적용의 난관
    __도메인 모델링의 합리화
    __DDD는 무겁지 않다
    소설과 한 바구니의 현실
    마무리

    2장 도메인, 서브도메인, 바운디드 컨텍스트
    큰 그림
    __서브도메인과 바운디드 컨텍스트의 활용
    __핵심 도메인에 집중하기
    왜 전략적 설계가 엄청나게 필수적인가
    현실의 도메인과 서브도메인
    바운디드 컨텍스트 이해하기
    __모델 그 이상을 위해
    __바운디드 컨텍스트의 크기
    __기술적 컴포넌트로 정렬하기
    샘플 컨텍스트
    __협업 컨텍스트
    __식별자와 액세스 컨텍스트
    __애자일 프로젝트 관리 컨텍스트
    마무리

    3장 컨텍스트 맵
    컨텍스트 맵이 필수적인 이유
    __컨텍스트 맵 그리기
    __프로젝트와 조직 관계
    __세 가지 컨텍스트를 매핑하기
    __협업 컨텍스트
    __애자일 프로젝트 관리 컨텍스트
    __식별자와 액세스 컨텍스트의 통합
    __협업 컨텍스트와 통합
    마무리

    4장 아키텍처
    성공한 CIO와의 인터뷰
    계층
    __의존성 역행 원리
    헥사고날 또는 포트와 어댑터
    서비스 지향
    REST: 표현 상태 전송(Representational State Transfer)
    __스테판 틸코프의 참여
    __아키텍처 스타일으로서의 REST
    __레스트풀 HTTP 서버의 주요 특징
    __레스트풀 HTTP 클라이언트의 주요 특징
    __REST와 DDD
    __왜 REST인가?
    커맨드-쿼리 책임 분리
    __CQRS의 영역 살펴보기
    __결국은 일관성이 유지되는 쿼리 모델 다루기
    이벤트 주도 아키텍처
    __파이프와 필터
    __장기 실행 프로세스(사가라 불리는)
    __이벤트 소싱
    데이터 패브릭과 그리드 기반 분산 컴퓨팅
    __웨스 윌리암스 기고
    __데이터 복제
    __이벤트 주도 패브릭과 도메인 이벤트
    __지속적 쿼리
    __분산 처리
    마무리

    5장 엔터티
    엔터티를 사용하는 이유
    고유 식별자
    __사용자가 식별자를 제공한다
    __애플리케이션이 식별자를 생성한다
    __영속성 메커니즘이 식별자를 생성한다.
    __또 하나의 바운디드 컨텍스트가 식별자를 할당한다
    __식별자 생성의 시점이 문제가 될 때
    __대리 식별자
    __식별자 안정성
    엔터티의 발견과 그들의 내부적인 특성
    __엔터티와 속성을 알아내기
    __Digging for Essential Behavior
    __역할과 책임
    __생성
    __유효성 검사
    마무리

    6 값 객체
    값의 특징
    __측정, 수량화, 설명
    __불변성
    __개념적 전체
    __대체성
    __값 등가성
    __부작용이 없는 행위
    미니멀리즘으로 통합하기
    값으로 표현되는 표준 타입
    값 객체의 테스트
    구현
    값 객체의 저장
    __데이터 모델 누수의 부정적 영향을 거부하라
    __ORM과 단일 값 객체
    __ORM과 한 열로 직렬화되는 여러 값
    __ORM과 데이터베이스 엔터티로 지원되는 여러 값
    __ORM과 조인 테이블로 지원되는 여러 값
    __ORM과 상태로서의 열거형 객체
    마무리

    7 서비스
    도메인 서비스란 무엇인가(하지만 먼저 도메인 서비스가 아닌 것은 무엇인가)
    서비스가 필요한지 확인하자
    도메인에서 서비스를 모델링하기
    __분리된 인터페이스가 꼭 필요할까
    __계산 프로세스
    __변환 서비스
    __도메인 서비스의 미니 계층 사용하기
    서비스의 테스트
    마무리

    8 도메인 이벤트
    언제 그리고 왜 도메인 이벤트를 사용할까?
    이벤트의 모델링
    __애그리게잇의 특성과 함께하기
    __식별자
    도메인 모델에서 이벤트를 발행하기
    __발행자
    __구독자
    뉴스를 원격 바운디드 컨텍스트로 전파하기
    __메시징 인프라의 일관성
    __자치 서비스와 시스템
    __지연시간 허용
    이벤트 저장소
    저장된 이벤트의 전달을 위한 아키텍처 스타일
    __레스트풀 리소스로써 알림을 발행하기
    __메시징 미들웨어를 통한 알림 발행
    구현
    __NotificationLog의 발행
    __메시지에 기반한 알림 발행하기
    마무리

    9 모듈
    모듈로 설계하기
    기본 모듈 명명 규칙
    모델을 위한 모듈 명명 규칙
    애자일 프로젝트 관리 컨텍스트의 모듈
    다른 계층 속의 모듈
    바운디드 컨텍스트보다 모듈
    마무리

    10 애그리게잇
    스크럼 핵심 도메인에서 애그리게잇 사용하기
    __첫 번째 시도: 큰 클러스터의 애그리게잇
    __두 번째 시도: 다수의 애그리게잇
    규칙: 진짜 고정자를 일관성 경계 안에 모델링하라
    규칙: 작은 애그리게잇으로 설계하라
    __유스케이스를 전부 믿지는 말라
    규칙: ID로 다른 애그리게잇을 참조하라
    __애그리게잇이 ID 참조를 통해 서로 함께 동작하도록 해보자
    __모델 탐색
    __확장성과 분산
    규칙: 경계의 밖에선 결과적 일관성을 사용하라
    __누가 해야 하는 일인지 확인하자
    규칙을 어겨야 하는 이유
    __첫 번째 이유: 사용자 인터페이스의 편의
    __두 번째 이유: 기술적 메커니즘의 부족
    __세 번째 이유: 글로벌 트랜잭션
    __네 번째 이유: 쿼리 성능
    __규칙을 지키기
    발견을 통해 통찰 얻기
    __설계를 다시 한 번 생각해보자
    __애그리게잇 비용의 예측
    __일반적인 사용 시나리오
    __메모리 소비
    __또 다른 설계 대안 살펴보기
    __결과적 일관성의 구현
    __이는 팀원이 할 일인가?
    __결정의 시간
    구현
    __고유 ID와 루트 엔터티를 생성하라
    __값 객체 파트를 선호하라
    __‘데메테르의 법칙’과 ‘묻지 말고 시켜라’를 사용하기
    __낙관적 동시성
    __의존성 주입을 피하라
    마무리

    11 팩토리
    도메인 모델 내의 팩토리
    애그리게잇 루트상의 팩토리 메소드
    __CalendarEntry 인스턴스 생성하기
    __Discussion 인스턴스 생성하기
    서비스의 팩토리
    마무리

    12 리파지토리
    컬렉션 지향 리파지토리
    __하이버네이트 구현
    __탑링크 구현에 대한 고려
    영속성 지향의 리파지토리
    __코히어런스 구현
    __몽고DB 구현
    추가적인 행동
    트랜잭션의 관리
    __경고
    타입 계층구조
    리파지토리 대 데이터 액세스 객체
    리파지토리의 테스트
    __인메모리 구현으로 테스트하기
    마무리

    13 바운디드 컨텍스트의 통합
    통합의 기본
    __분산 시스템은 근본적으로 다르다
    __시스템 경계에 걸친 정보의 교환
    레스트풀 리소스를 사용한 통합
    __레스트풀 리소스의 구현
    __부패 방지 계층을 통한 REST 클라이언트의 구현
    메시징을 사용한 통합
    __제품 소유자와 팀 멤버의 정보를 계속해서 제공받는 것
    __당신은 책임을 감당할 수 있는가
    __장기 실행 프로세스와 책임의 회피
    __프로세스 상태 머신과 타임아웃 트래커
    __좀 더 복잡한 프로세스 설계하기
    __메시징이나 시스템을 활용할 수 없을 때
    마무리

    14 애플리케이션
    사용자 인터페이스
    __도메인 객체의 렌더링
    __애그리게잇 인스턴스로부터 데이터 전송 객체를 렌더링하기
    __애그리게잇 내부 상태를 발행하기 위해 중재자를 사용하자
    __도메인 페이로드 객체로부터 애그리게잇 인스턴스를 렌더링하라.
    __애그리게잇 인스턴스의 상태 표현
    __유스케이스 최적 리파지토리 쿼리
    __다수의 개별 클라이언트를 처리하기
    __변환(Rendition) 어댑터와 사용자 편집의 처리
    애플리케이션 서비스
    __애플리케이션 서비스 예제
    __결합이 분리된 서비스 출력
    여러 바운디드 컨텍스트 묶기
    인프라
    엔터프라이즈 컴포넌트 컨테이너
    마무리

    15 애그리게잇과 이벤트 소싱: A+ES
    애플리케이션 서비스의 내부
    커맨드 핸들러
    람다 구문
    동시성 제어
    A+ES의 구조적 자유
    성능
    이벤트 저장소의 구현
    관계형으로 저장하기
    블롭(BLOB)으로 저장하기
    집중된 애그리게잇
    읽기 모델 투영
    애그리게잇 설계와 함께 사용하기
    이벤트 강화
    지원 도구와 패턴
    __이벤트 직렬화기
    __이벤트 불변성
    __값 객체
    계약 생성
    단위 테스트와 명세
    함수형 언어에서의 이벤트 소싱
    참고 문헌

추천사

  • 반 버논(Vaughn Vernon)은 이 책에서 개념에 관한 새로운 설명 및 예제와 고유하게 선정된 주제의 묶음을 통해 도메인 주도 설계의 전반적 모습을 특별한 방법으로 표현했다. 나는 이 새로운 접근법이 DDD의 미묘한 부분(특히 애그리게잇과 바운디드 컨텍스트와 같은 추상적 부분)을 이해하는 데 도움이 될 것이라 믿는다. 사람들이 저마다 좋아하는 스타일은 다를지 모르지만, 미묘한 추상화는 여러 방향의 설명 없이는 흡수하기 어렵다는 사실은 마찬가지다.
    또한 이 책은 지난 9년간 논문이나 발표를 통해 설명됐지만 책으론 만나볼 수 없던 내용을 담고 있다. 도메인 이벤트를 모델의 구성 요소로서 엔터티와 값 객체와 함께 설명하고, 컨텍스트 맵에선 큰 진흙공에 관해 논의하며, 계층 아키텍처보다 우리가 원하는 바를 더 잘 나타낼 수 있는 방안으로 떠오른 헥사고날(hexagonal) 아키텍처를 설명한다.
    이 책에서 다루는 내용을 처음 접한 시점은 2년 전이었다(반은 그 시점보다 조금 후에 이 책의 작업을 시작했다). 첫 번째 DDD 서밋(DDD Summit)에서 우린 새로운 주제나 커뮤니티에 좀 더 구체적인 조언이 필요했던 주제에 관해 다뤘다. 반은 애그리게잇과 관련된 문제에 관한 글을 써 나갔고, 애그리게잇에 관한 훌륭한 시리즈가 완성됐다(그리고 그 내용은 이 책에서 하나의 장을 채우게 됐다).
    또한 그 서밋에선 여러 전문가가 일부 DDD 패턴을 적용할 때 좀 더 규범적인 접근을 취함으로써 얻을 수 있는 장점에 관한 합의에 도달했다. 소프트웨어 개발에서 가질 수 있는 대부분의 질문은 사실 '상황에 따라'가 정직한 답일 것이다. 하지만 이는 기술을 적용하는 방법을 배우고자 하는 사람에겐 그다지 유용하지 않은 결론이다. 새로운 주제를 완전히 이해하고자 하는 사람에겐 좀 더 구체적인 가이드가 필요하다. 경험 법칙은 모든 상황에 전부 들어맞을 필요는 없다. 이는 일반적으로 적용할 수 있거나 우선 취해볼 수 있는 방법이다. 여기서 다다른 결론은 문제 해결을 위한 접근의 철학을 담고 있다. 반의 책은 직접적인 조언과 함께, 이를 너무 단순하게 여기지 않도록 해주는 상충점에 대한 논의를 균형 있게 다루고 있다.
    DDD의 주류가 된 도메인 이벤트와 같은 추가적인 패턴(현업의 사람들이 적용법을 배워나가고 있는)을 다루고 있을 뿐만 아니라, 그 패턴을 새로운 아키텍처와 기술에 적용하는 방법을 언급한다. 나의 책인 『도메인 주도 설계』가 출간된 지 9년이 지난 시점에 이르러 새로운 DDD 관련 주제가 많이 등장했으며, 그 기반에 관해 이야기할 많은 새로운 방향이 떠올랐다. 반의 책은 DDD를 도입할 때 사용되는 새롭게 등장한 생각을 가장 완벽히 설명하고 있다.

출판사 서평

★ 이 책에 쏟아진 찬사 ★

"반(Vaughn)은 이 책을 통해 문헌적 측면에서 도메인 주도 설계 커뮤니티에 기여했을 뿐만 아니라, 더 넓은 엔터프라이즈 애플리케이션 아키텍처 분야에 중요한 기여를 하게 됐다. 예를 들어 반은 아키텍처와 리파지토리에 관한 핵심 장에서 에릭 에반스(Eric Evans)의 기념비적인 책이 처음 발간된 이후의 10년간 떠오른 엔터프라이즈 애플리케이션을 위한 여러 아키텍처 스타일과 영속성 기술(SOA, REST, NoSQL 데이터 그리드 등)이 어떻게 DDD와 함께 사용될 수 있는지 보여준다. 또한 반은 수많은 예제와 수십 년 동안의 실제 경험에서 우러나온 귀중한 통찰력을 바탕으로 DDD의 가로막은 장벽(엔터티(entity), 값 객체(value object), 애그리게잇(aggregate), 서비스(service), 이벤트(event), 팩토리(factory), 리파지토리(repository) 등의 구현)을 뛰어넘는 올바른 방법을 알려준다. 한마디로 나는 이 책을 빈틈없이 완벽하다고 말하고 싶다. 스스로를 발전시키고자 하며 현재 선택할 수 있는 최선의 전문적 사례를 기반으로 도메인 주도 엔터프라이즈 애플리케이션을 설계하고 개발하고자 하는 모든 소프트웨어 개발자에게, 지난 수십 년 사이에 DDD 커뮤니티와 엔터프라이즈 애플리케이션 아키텍처 커뮤니티가 어렵게 얻은 보석같이 귀중한 지식을 전해줄 것이다."
-랜디 스태포드(Randy Stafford) / 오라클 코히런스(Oracle Coherence) 제품 개발 총괄 아키텍트

"도메인 주도 설계에는 팀이 소프트웨어 중심의 시스템을 구축할 때, 효율성을 높이는 데 엄청난 영향을 미친 강력한 생각의 도구가 모여 있다. 사실 많은 개발자가 이런 생각의 도구를 적용하는 데 어려움을 겪었고, 좀 더 구체적인 가이드라인을 필요로 했었다. 반은 이 책에서 이론과 실제 사이의 잃어버린 고리를 찾아준다. 또한 반은 잘못 이해돼 온 여러 DDD의 요소에 빛을 비출 뿐만 아니라, 많은 DDD 전문가가 적용해 엄청난 성공을 거둔 커맨드/쿼리 책임 분리와 이벤트 소싱과 같은 새로운 개념을 연결해주고 있다. 이 책은 DDD를 현업에서 사용해보고자 하는 모든 이가 반드시 읽어야 할 책이다."
-우디 다한(Udi Dahan) / N서비스버스(NServiceBus)의 창업자

"수년 동안 도메인 주도 설계의 실행에 어려움을 겪어온 개발자들은 현업에서 DDD를 구현하기 위한 실용적인 도움이 필요했다. 반은 구현을 위한 빠짐없는 참고서를 통해 이론과 실제 사이의 간격을 메우는 훌륭한 일을 해냈다. 반은 현대의 DDD 프로젝트에서 해야 하는 일이 무엇인지 선명한 그림을 그려나가며, 프로젝트 수명 주기에서 발생하는 대표적인 문제에 접근하고 해결하는 수많은 실용적 조언을 제공해준다."
-알베르토 브랜돌리니(Alberto Brandolini) / 에릭 에반스와 도메인 랭귀지 주식회사(Domain Language Inc.)가 인증한 DDD 강사

"이 책은 DDD의 복잡하고 넓은 분야의 주제를 명쾌하고 재미있고 능숙하게 다루는 굉장한 일을 해냈다. 신뢰할 수 있는 조언자가 여러분에게 가장 중요한 일을 수행하는 방법이 무엇인지에 관해 전문적 상담을 해주는 상황처럼, 몰입을 유도하는 친근한 스타일로 쓰여졌다. 이 책을 마칠 때쯤이면 DDD의 모든 중요 개념을 비롯한 많은 부분을 적용하기 시작할 수 있을 것이다. 나 스스로도 이 책을 읽으며 많은 부분에 밑줄을 긋게 됐다. 이후에도 다시 참고할 것이고, 자주 추천할 것이다."
-폴 레이너(Paul Rayner) / 버츄얼 지니어스 유한책임회사(Virtual Genius LLC.)의 수석 컨설턴트이자 소유주, 에릭 에반스와 도메인 랭귀지 주식회사가 인증한 DDD 강사, DDD 덴버의 설립자이자 공동 리더

"내가 가르치는 DDD 수업에서 중요한 부분 중 하나는 모든 생각과 조각을 함께 모아서 완전히 동작하는 구현으로 만드는 방법을 논의하는 과정이다. 이제 이 책은 이런 과정을 상세히 설명하는 DDD 커뮤니티의 포괄적 참고서가 될 것이다. 작은 세부사항부터 큰 그림을 그려나가는 방법까지, DDD를 통해 시스템을 구현하는 모든 측면을 다룬다. 이 책은 훌륭한 참고서이자 에릭 에반스의 기념비적 DDD 책의 훌륭한 동반자가 돼줄 것이다."
-패트릭 프레드릭손(Patrik Fredriksson) / 에릭 에반스와 도메인 랭귀지 주식회사(Domain Language Inc.)가 인증한 DDD 강사

"여러분이 소프트웨어 장인정신(craftsmanship)을 중요하게 생각한다면(그리고 여러분은 그렇게 생각해야만 한다.) 도메인 주도 설계는 익혀야 할 중요한 기술의 집합이며, 이 책은 성공을 향한 지름길이다. IDDD는 DDD의 전략 및 전술 패턴에 관한 읽기 좋으면서도 철저하게 진행되는 논의를 담고 있으며, 이를 통해 개발자는 이해한 내용을 즉시 실행으로 옮길 수 있게 된다. 내일의 비즈니스 소프트웨어는 이 책의 명쾌한 가이드로부터 도움을 받게 될 것이다."
-데이브 미어히드(Dave Muirhead) / 블루 리버 시스템 그룹(Blue River System Group), 수석 컨설턴트

"DDD와 관련해 모든 개발자가 반드시 알아야 할 이론과 실제가 있는데, 이 책은 이 둘을 함께 묶어주는 퍼즐의 마지막 조각이 될 것이다. 진심으로 추천한다!"
-릭카르드 우베르(Rickard ?berg) / 자바 챔피언이자 네오 테크놀로지(Neo Technology)의 개발자

"반은 IDDD를 통해 바운디드 컨텍스트와 컨텍스트 맵과 같은 전략 패턴을 전면에 내세우고, 엔터티에 관한 구성 요소(building block) 패턴을 다루고, 이어서 서비스를 파고들며 하향식(top-down)으로 DDD에 접근한다. 그의 책 전반에 걸쳐 사례 연구가 사용되는데, 이 책을 최대한 활용하기 위해선 충분한 시간을 투자해 사례 연구를 이해하고 공감해야 한다. 하지만 만약 그렇게 되기만 한다면 복잡한 도메인에서 DDD를 적용할 때 얻을 수 있는 진정한 가치를 확인할 수 있으며, 자주 등장하는 곁풀이와 다이어그램과 표와 코드 모두가 핵심 내용의 이해를 도울 것이다. 따라서 여러분이 오늘날 가장 일반적으로 사용되는 아키텍처 스타일에 따라 견실한 DDD 시스템을 구축하길 바라고 있다면 반의 책을 추천한다."
-댄 헤이우드(Dan Haywood) / 『네이키드 오브젝트를 통한 도메인 주도 디자인(Domain-Driven Design with Naked Objects)』의 저자

"이 책은 하향식 접근을 통해 전략 패턴을 보다 낮은 수준의 전술적 제약사항과 부드럽게 연결하며 DDD를 설명한다. 최신 아키텍처 스타일을 따른 구현을 제공하며 이론을 다루고 있다. 반은 이 책의 전반에 걸쳐 기술적 고려사항의 균형감을 유지하며 비즈니스 도메인에 집중해야 하는 중요성과 그 가치를 강조하고 있다. 이에 따라 DDD의 역할과 의미가 수면 위로 드러난다. 내가 속한 팀에선 DDD를 적용하며 마찰을 겼을 때가 많았지만, '도메인 주도 설계 구현'이라는 한 줄기 빛의 도움을 받아서 문제를 극복하고 우리의 노력을 온전히 비즈니스 가치의 생산에 활용할 수 있었다."
-레브 고로인스키(Lev Gorodinski) / DrillSpot.com, 수석 아키텍트

★ 이 책에서 다루는 내용 ★

■ 빠른 가치 창출을 위한 올바른 DDD 시작 방법
■ 헥사고날(hexagonal)이나 SOA, REST, CQRS, 이벤트 중심, 패브릭/그리드 기반 등 다양한 아키텍처에 맞춘 DDD 사용 방법
■ 엔터티를 올바르게 설계하고 적용하는 방법과 값 객체를 대신 사용해야 하는 시점
■ DDD의 새롭고 강력한 기법인 도메인 이벤트에 관한 완전한 이해
■ ORM이나 NoSQL을 비롯한 다양한 데이터베이스에 맞춰 리파지토리(repository)를 설계하는 방법

★ 이 책의 구성 ★

1장: DDD를 시작하며
1장에선 DDD를 사용할 때 얻을 수 있는 이익과 DDD를 달성하는 방법을 소개한다. 여러분의 프로젝트를 수행하고 여러분의 팀이 복잡도로 고민하고 있을 때 DDD가 수행할 수 있는 역할은 무엇인지 배우게 된다. 여러분의 프로젝트가 DDD에 투자해도 좋을지 평가할 방법을 찾게 된다. 여러분이 흔히 고려할 수 있는 DDD의 대안이 무엇이고, 왜 그런 대안이 흔히 문제를 일으키곤 하는지 고민하게 된다. 1장에선 여러분의 프로젝트가 첫 발을 내딛기 위한 DDD의 기반을 다루며, 이는 여러분의 관리자와 도메인 전문가와 기술 팀 구성원을 설득하는 데 도움이 될지도 모른다. 이는 여러분이 성공에 이르는 방법에 관한 지식으로 무장해 DDD를 사용할 때 겪게 될 도전을 마주할 수 있도록 해줄 것이다.
실제 현실에서 겪게 되는 DDD의 도전을 마주하고 있는 가상의 회사와 팀에 관한 케이스 스터디도 함께 다룬다. 혁신적인 멀티테넌트(multitenant) 환경의 서비스로서의 소프트웨어(SaaS) 기반 제품을 만들고자 하는 이 회사는 DDD를 적용하며 흔히 겪게 되는 많은 실수를 경험하지만, 팀이 문제를 해결하고 프로젝트를 이어갈 수 있도록 해주는 중요한 발견을 하게 된다. 이 프로젝트에선 스크럼 기반 프로젝트 관리 애플리케이션을 개발하며, 대부분의 개발자가 관련돼 있다. 이 케이스 스터디는 이어지는 장에서도 계속해서 활용된다. 각각의 전략적 패턴과 전술적 패턴을 팀의 시각에서 학습하게 되며, 팀의 실수뿐만 아니라 팀이 성공적인 DDD 구현을 위해 성숙해나가는 과정을 함께 다룬다.

2장: 도메인, 서브도메인, 바운디드 컨텍스트
도메인(Domain)이나 서브도메인(Subdomain)이나 핵심 도메인(Core Domain)은 무슨 의미이고, 이를 사용해야 하는 이유와 사용하는 방법은 무엇일까? 우리의 케이스 스터디에서 프로젝트 팀이 저지르는 실수를 통해 이 질문의 답을 찾아본다. 이 팀은 첫 번째 DDD 프로젝트를 시작하며 자신들이 일하고 있는 서브도메인과 바운디드 컨텍스트와 정확한 유비쿼터스 언어를 이해하는 데 실패한다. 사실, 이들은 전략적 설계에 전혀 익숙하지 않으며, 단순히 전술 수준에서의 이익을 위해 전술적 패턴만을 활용하고 있었다. 이 때문에 초기 도메인 모델 설계에 문제가 발생하게 된다. 다행스럽게도 이들은 희망을 찾을 수 없는 늪에 빠지기에 앞서 무엇이 잘못됐었는지 찾게 된다.
여기에는 바운디드 컨텍스트를 적용해 모델을 올바르게 구분하고 분리하는 데 관한 중요한 메시지가 담겨 있다. 흔히 빠지는 잘못된 패턴의 적용에 관해 다루며, 패턴을 효율적으로 구현하는 방법에 관해 충고한다. 이를 통해 이들의 세 번째 바운디드 컨텍스트와 새로운 핵심 도메인과 책에서 사용되는 주요 예제에서 올바르게 모델링 개념을 분리해내게 된다.
기술적인 측면에서만 DDD를 적용하며 고통을 느꼈던 독자라면 2장의 내용에 크게 공감하게 될 것이다. 여러분이 아직 전략적 설계을 제대로 시작하지 않았다면, 성공적인 여정을 시작하는 올바른 방향을 찾게 된다.

3장: 컨텍스트 맵
컨텍스트 맵(Context Map)은 팀이 비즈니스 도메인과 요로 모델 사이의 경계와 통합이 진행되는 형태를 이해할 수 있도록 도와주는 강력한 도구다. 이를 위한 기법은 단순히 시스템 아키텍처의 다이어그램을 그리는 데 국한되지 않는다. 이는 엔터프라이즈 내부의 여러 바운디드 컨텍스트와 하나의 모델에서 다른 모델로 객체를 매핑하는 데 사용되는 패턴 사이의 관계를 이해하는 문제다. 복잡한 비즈니스를 갖고 있는 엔터프라이즈에서 바운디드 컨텍스트를 제대로 구성하기 위해선 이 도구의 사용이 중요하다. 3장에선 프로젝트 팀이 처음으로 생성했던 바운디드 컨텍스트(2장에서 다루는)의 문제를 이해하기 위해 컨텍스트 매핑을 적용하는 과정을 살펴본다. 그리고 새로운 핵심 도메인을 설계하고 구현해야 하는 팀이 그 결과로 만들어진 깔끔한 두 바운디드 컨텍스트를 활용하는 방법을 보여준다.

4장: 아키텍처
우리 모두는 이미 계층 아키텍처(Layers Architecture)에 관해 알고 있다. 하지만 계층이 정말 DDD 애플리케이션을 다루는 유일한 방법일까? 그렇지 않다면 어떤 다른 아키텍처가 있을까? 여기선 헥사고날((Hexagonal),(포트와 어댑터(Ports and Adaptors)), 서비스 지향, REST, CQRS, 이벤트 중심(파이프와 필터(Pipes and Filters), 장기 실행 프로세스(Long-Running Process)나 사가(Saga), 이벤트 소싱(Event Sourcing)), 데이터 패브릭/그리드(Data Fabric/Grid) 기반 등의 여러 아키텍처 안에서 DDD를 사용하는 방법을 고민한다. 프로젝트 팀은 이런 여러 아키텍처 스타일을 적용하게 된다.

5장: 엔터티
첫 번째로 다룰 DDD 전술 패턴은 엔터티(Entity)다. 프로젝트 팀은 엔터티에 너무 크게 의존해서, 값 객체(Value Object)로 설계해야 하는 중요성을 간과하게 된다. 이로 인해 데이터베이스와 영속성 프레임워크의 과도한 간섭으로 엔터티를 남용하는 문제에 관해 논의하게 된다.
엔터티를 사용하는 올바른 방법에 익숙해진 다음에는 엔터티를 설계하는 방법에 관한 다양한 예제를 다루게 된다. 유비쿼터스 언어를 엔터티로 표현하는 방법은 무엇일까? 어떻게 엔터티를 테스트하고 구현하고 저장할까? 5장에선 이런 문제를 하나씩 다뤄가며 가이드를 제시한다.

6장: 값 객체
프로젝트 팀은 초기에 값 객체를 사용한 중요한 모델링 기회를 놓쳤다. 이 팀은 여러 관련 속성을 불변하는 묶음으로 모으는 데 주의를 기울여야 했을 순간에, 엔터티의 개별적 속성에만 너무 집중했었다. 6장에선 엔터티가 아닌 값을 사용해야 하는 시기를 결정하기 위해 모델의 특성을 식별하는 방법을 논의하면서 값 객체의 설계를 여러 방향에서 살펴본다. 6장에선 통합을 진행할 때 값이 수행하게 되는 역할이나 표준 타임의 모델링과 같은 다른 중요한 주제도 함께 다룬다. 이어서 도메인 중심 테스트를 설계하는 방법, 값 타입을 구현하는 방법, 애그리게잇의 일부로 이들을 저장해야 할 때 영속성 메커니즘으로 인한 나쁜 영향을 피하는 방법 등도 이야기한다.

7장: 서비스
7장에선 하나의 개념을 도메인 모델 안의 잘 짜여진 무상태 서비스(Service)로 모델링해야 하는 시점이 언제인지 보여준다. 여러분은 엔터티나 값 객체가 아닌 서비스를 설계해야 하는 시점과, 비즈니스 도메인 로직을 처리하거나 기술적 통합을 위해 도메인 서비스를 구현하는 방법을 확인하게 된다. 서비스를 사용하는 시점과 서비스를 설계 하는 방법에 관한 사례로서 프로젝트 팀이 내린 결정을 살펴본다.

8장: 도메인 이벤트
에릭 에반스가 그의 책을 출판했던 시점에선 도메인 이벤트(Domain Event)가 DDD의 한 부분으로 소개되기 이전이었다. 모델에서 발행하는 도메인 이벤트가 왜 그렇게 강력한지와, 비즈니스 서비스의 통합과 자동화를 지원하는 가운데 도메인 이벤트를 사용하는 여러 방법을 배우게 된다. 애플리케이션은 기본적으로 여러 종류의 기술적 이벤트를 보내고 처리하지만, 도메인 이벤트만의 특징이 무엇인지 구분해 논의한다. 설계와 구현을 위한 가이드를 제공하며, 선택할 수 있는 옵션과 그에 따른 장단점을 알려준다. 이어서 발행-구독(Publish-Subscribe) 메커니즘을 만드는 방법, 엔터프라이즈를 아우르며 구독자를 통합하는 방법, 이벤트 저장소를 생성하고 관리하는 방법, 흔히 겪게 되는 메시징 문제에 대처하는 방법 등을 논의한다. 또한 프로젝트 팀이 이를 올바르게 적용하는 과정과 각 방법만의 장점을 조명한다.

9장: 모듈
모델 객체를 다른 컨테이너에 속한 객체와의 결합도는 제한하는 가운데 올바른 크기의 컨테이너에 담아내는 방법은 무엇일까? 이런 컨테이너가 유비쿼터스 언어를 반영하도록 하려면 어떻게 이름을 붙여야 할까? 패키지나 네임스페이스를 넘어서, 언어와 프레임워크에서 제공하는 좀 더 최신의 모듈화 기능(OSGi, 직소(Jigsaw)와 같은)은 어떻게 활용할 수 있을까? 여기선 프로젝트 팀이 여러 프로젝트에 걸쳐 모듈을 사용하는 방법을 살펴본다.

10장: 애그리게잇
애그리게잇은 아마도 DDD의 전술 도구 가운데 가장 이해도가 낮은 도구일 것이다. 그렇지만 몇 가지의 경험 법칙(rules of thumb)을 적용하면 애그리게잇을 더 간단하고 빠르게 구현할 수 있다. 여러분은 작은 객체 클러스터의 주변으로 일관성 경계를 구축하면서 복잡도의 벽을 부수고 애그리게잇을 사용하는 방법을 학습하게 된다. 프로젝트 팀은 그다지 중요하지 않은 부분에 너무 큰 관심을 둬서 몇 가지 잘못된 방향을 선택하는 실수를 저지르게 된다. 우린 팀의 이터레이션을 따라가면서 모델링 과정에서 겪게 되는 문제와 팀이 저지른 잘못이나 그 밖의 결정사항을 분석한다. 팀은 노력을 기울이면서 핵심 도메인에 대해 더 깊이 이해할 수 있게 됐다. 우린 팀이 트랜잭션과 결과적 일관성(eventual consistency)을 올바르게 적용해 분산 처리 환경에서 확장성과 성능을 더 높인 모델을 설계하면서 자신들이 저지른 실수를 고쳐가는 과정을 살펴본다.

11장: 팩토리
이미 『GoF의 디자인 패턴』에선 팩토리에 관한 충분한 이야기를 했는데도 왜 이 책에서 다시 이를 언급하려고 할까? 11장에선 팩토리에 관한 세로운 이야기를 하려는 게 아니다. 그보다는 팩토리가 어디에 위치해야 하는지 이해하는 데 집중한다. 물론 DDD의 설정에 맞춰 제 역할을 하는 팩토리를 설계하는 몇 가지 팁도 함께 소개한다. 프로젝트 팀이 클라이언트 인터페이스를 단순화하고 모델의 사용자가 멀티테넌트(multitenant) 환경에서 재앙적인 버그를 유발하지 않도록 막으면서 팩토리를 생성하는 방법을 확인하자.

12장: 리파지토리
리파지토리(Repository)는 단지 단순한 데이터 접근 객체(Data Access Object, DAO)가 아닌가? 왜 우린 데이터베이스가 아닌 컬렉션을 흉내기 위해 리파지토리를 설계하는 방안을 고려해야 할까? 그리드 기반의 코히런스(Coherence) 분산 캐시를 지원하거나 NoSQL 키-값 저장소를 사용하는, ORM을 사용한 리파지토리를 설계하는 방법을 학습하자. 이런 부가적인 영속성 메커니즘은 리파지토리라는 구성 요소에서 오는 강력함과 다재다능함으로 인해 프로젝트 팀을 편안하게 해준다.

13장: 바운디드 컨텍스트의 통합
지금까지 여러분은 컨텍스트 매핑의 상위 수준 기법을 이해했고 전술 패턴을 활용할 수 있게 됐지만, 모델의 통합을 실제로 구현할 때는 어떤 일이 일어날까? DDD에선 어떤 통합 옵션이 주어질까? 13장에선 컨텍스트 매핑을 통해 모델의 통합을 구현하는 몇 가지 방법을 소개한다. 프로젝트 팀이 핵심 도메인과 그를 지원하는 바운디드 컨텍스트를 통합하는 방법에 기반해 통합의 지침을 제공한다.

14장: 애플리케이션
여러분은 핵심 도메인의 유비쿼터스 언어에 따라 모델을 설계했다. 또한 그 사용법과 정확성에 따라 충분한 테스트를 만들었고, 실제로 동작함을 확인했다. 하지만 여러분의 팀에 속한 다른 구성원이 해당 모델을 둘러싼 애플리케이션의 다른 영역을 설계할 때는 어떻게 해야 할까? 그들은 모델과 사용자 인터페이스 사이에서 데이터를 전달하기 위해 DTO를 사용해야 할까? 애플리케이션 서비스(Application Service)와 인프라는 어떻게 동작할까? 14장에선 익숙해졌을 프로젝트에서 선택할 수 있는 옵션을 살펴보며 이 문제를 다룬다.

부록 A: 애그리게잇과 이벤트 소싱: A+ES
이벤트 소싱(Event Sourcing)은 애그리게잇을 저장하기 위한 중요한 기술적 접근법이며, 이벤트 중심 아키텍처(Event-Driven Architecture)를 만드는 기반을 제공한다. 애그리게잇이 생성된 후 발생하는 일련의 이벤트를 통해 애그리게잇의 전체 상태를 표현하기 위해 이벤트 소싱을 사용할 수 있다. 이벤트를 발생 순서를 지켜 다시 재생함으로써 애그리게잇의 상태를 재구축할 수 있다. 따라서 이벤트는 영속성을 단순화하고 복잡한 행위 속성에서 개념을 포착하도록 해주는 가운데, 이벤트 자체가 여러분 자신의 시스템과 외부 시스템에 지대한 영향을 미치는 요소가 된다.

★ 지은이의 말 ★

땅에 서 있기, 이륙하기
내가 어렸을 때, 나의 아버지는 작은 비행기를 몰기 위한 공부를 하셨다. 가족 전체가 종종 비행에 함께했다. 때론 점심 식사를 위해 다른 공항에 들렸다가 돌아오곤 했다. 우리가 하늘에 올라가길 바라지만 아버지의 시간이 허락하지 않을 때면, 밖으로 나가 '터치 앤 고(Touch and Go)'를 따라 했다.
때론 장거리 여행을 하기도 했다. 그럴 때면 항상 아버지가 경로를 계획해둔 지도가 있었다. 어렸던 우리는 아래쪽의 랜드마크를 살펴보며 계획대로 경로를 따르고 있는지 확인하는 일을 했었다. 이 일은 상세한 부분을 확인할 수 없이 멀리 떨어진 지점을 살펴서 대상을 찾아야 하는 도전이 필요했기에 굉장히 즐거웠다. 실제로 나는 아버지가 우리가 어디로 가는지 항상 알고 있다고 확신했다. 아버지는 모든 장치가 나열된 계기판을 다루고 있었고, 그는 계기 비행 자격증을 갖고 있었다.
하늘에서의 경치는 실제로 나의 관점을 변화시켰다. 때때로 아버지와 나는 시골에 있던 우리의 집 위를 날았다. 나는 수백 피트 위에서 바라보는 광경을 바탕으로 이전엔 갖지 못했던 컨텍스트(context, 문맥)를 깨닫게 됐다. 아버지가 집 위를 날 때면 어미니와 자매들이 마당으로 뛰쳐나와 손은 흔들었다. 나는 그들의 눈을 바라볼 순 없더라도 그들임을 알 수 있었다. 우린 이야기를 나눌 순 없었다. 내가 비행기의 창문으로 소리를 질렀다 하더라도 그들은 절대 내 목소리를 들을 수 없었을 것이다. 길과 우리 집의 경계에 서 있던 울타리를 확인할 수도 있었다. 상공에서 그 울타리는 마치 작은 가지를 조심스럽게 엮어둔 듯 보였다. 그리고 내가 여름마다 잔디 깎기 기계로 한 줄 한 줄 밀며 돌던 거대한 마당도 있었다. 하늘에선 녹색의 바다만이 펼쳐져 있었고, 잔디의 가닥을 하나하나 들여다볼 수는 없었다.
비행하는 일이 멋지긴 하지만, 그 터치 앤 고의 순간들은 너무 짧아서 내게 안정감을 주지는 못했다. 마치 저녁 무렵 아버지와 내가 착륙 직후 활주로를 달려와 비행기를 고정시키던 때처럼 내 기억 속에 단단히 새겨졌다

도메인 주도 설계로 착륙하기
도메인 주도 설계(DDD, Domain-Driven Design)에 친숙해지는 방법은 어린 아이의 비행과 비슷할지도 모른다. 하늘에서의 풍경은 정말 멋지지만, 때론 너무 어색하고 새로워서 우리가 정확이 어디에 있는지 깨닫지 못할지도 모른다. 한 지점에서 다른 지점으로 이르는 방법은 실제와 거리가 있는 듯이 보인다. DDD의 성인으로 성장한 이들은 항상 자신이 어디에 있는지를 안다. 그들은 오래 전에 경로를 그려뒀고, 항행을 위한 장치도 완벽히 조정해뒀다. 굉장히 많은 수의 다른 사람들은 지상에 내려온 것처럼 느끼지 못한다. 여기서 필요한 능력은 '착륙해서 묶어두기'다. 그리고 우리가 어디에 있고 어디로 가야할지 아는 데 도움이 될 지도도 필요하다.
에릭 에반스는 『도메인 주도 설계』에서 시대를 초월한 성과를 담아냈다. 나는 에릭의 업적이 향후 수십 년간 개발자에게 실용적인 방법을 가이드할 것이라는 분명한 믿음이 있다. 다른 패턴처럼, 이는 지표로부터 한참 위를 날아서 넓은 시야를 갖게 해준다. 하지만 우리가 DDD를 구현하는 데 필요한 기초 작업을 이해할 땐 그보다 더 많은 문제가 발생하며, 우리는 좀 더 많은 수의 상세한 예제를 찾게 된다. 그리고 그럴 수 있다면 지상에 좀 더 머무를 수 있고, 어쩌면 집이나 다른 익숙한 장소로 드라이브를 떠날 수 있게 될지도 모른다.
내 목표 중 일부는 여러분을 부드럽게 착륙시키고 비행기를 잘 묶어두고 익숙한 지상의 경로를 따라 집으로 돌아갈 수 있게 하는 일이다. 그래서 익숙한 도구와 기술을 사용한 예제를 통해 여러분이 DDD의 구현을 이해할 수 있도록 돕고자 한다. 또한 우리 중 누구도 항상 집에만 머물 수는 없기 때문에, 나는 여러분이 밖으로 나가 어쩌면 이제껏 본 적 없는 새로운 공간으로 이어지는 경로를 찾도록 도울 예정이다. 때론 그에 이르는 길이 가파를지도 모르지만, 올바른 전술을 택한다면 안전이 보장된 도전도 가능하다. 이 여행을 통해 여러분은 여러 도메인 모델을 통합할 때 대안으로 고려할 수 있는 아키텍처와 패턴을 배우게 된다. 이는 여러분을 지금까지 겪어본 적 없는 영역으로 끌어들일지도 모른다. 여러분은 여러 통합을 통한 전략적 모델링의 상세한 자료를 찾을 수 있으며, 자율적(autonomous) 서비스를 개발하는 방법까지도 배울 수 있다.
나의 목표는 여러분이 짧고 긴 여행을 모두 떠날 수 있으며 길을 잃거나 부상당하지 않고 복잡한 트래킹을 하며 주변을 자세히 즐길 수 있도록 도울 지도를 제공하는 것이다.

지형을 지도로 옮기고 비행을 계획하기
우린 소프트웨어 개발하며 항상 어떤 대상을 다른 대상으로 매핑(map)하게 된다. 우린 우리의 객체를 데이터베이스로 매핑한다. 우린 우리의 객체를 사용자 인터페이스로 매핑한 뒤 다시 매핑해 가져온다. 우린 우리의 객체를 여러 애플리케이션 표현(다른 시스템과 애플리케이션에서 사용할지도 모르는)으로 매핑해서 전달하고 매핑해 가져온다. 이런 모든 매핑 과정을 생각해보면, 에반스의 상위 수준 패턴을 구현으로 매핑하려는 시도는 자연스런 결과다.
여러분이 이미 여러 번 DDD를 적용해봤다 하더라도, 아마 도움을 받을 수 있는 부분이 남아있을 것이다. DDD는 우선 기술적 도구의 집합으로서 받아들여진다. 일부에선 이런 DDD 접근을 DDD 라이트(DDD-Lite)라고 부른다. 우린 엔터티(Entity)와 서비스(Service)를 도입하게 되며, 어쩌면 용기 있게 애그리게잇(Aggregate)의 설계를 시도할 수도 있고, 리파지토리(Repository)를 활용해 영속성을 다루려는 노력도 기울이게 된다. 이런 패턴은 어느 정도 친숙하기 때문에 실제로 이를 사용하기로 결정하게 된다. 더 나아가, 그 과정에서 값 객체를 함께 사용할 수도 있다. 이 모두는 결국 전술적 디자인 패턴의 범주에 속하며, 이는 기술적인 측면이 강하다. 외과 의사의 메스처럼, 이를 활용해 중요한 소프트웨어 문제를 해결해나갈 수 있다. 하지만 이와 관련해 더 많은 학습이 필요하며, 전술적 디자인의 다른 측면도 함께 살펴봐야 한다. 나는 이를 구현으로 매핑하도록 하겠다.
여러분은 전술적 모델링을 넘어서 나아가 본 적이 있을까? 전술적 디자인 패턴이라 불리는 DDD의 '나머지 반쪽'에 관해 알아보거나 깊이 고민해본 적이 있을까? 만약 바운디드 컨텍스트(Bounded Context)나 컨텍스트 맵(Context Map)을 놓치고 있었다면, 유비쿼터스 언어(Ubiquitous Language)도 마찬가지일 것이다.
에반스가 소프트웨어 개발 커뮤니티에 기여한 단 하나의 '발명'을 꼽아야 한다면, 그건 바로 유비쿼터스 언어다. 적어도 그는 먼지 쌓인 디자인 지혜의 창고에서 유비쿼터스 언어를 끌어내 밝히는 기여를 했다. 이는 특정 핵심 비즈니스 도메인의 개념과 용어를 소프트웨어 개발 모델로 포착해야 하는 팀을 위한 패턴이다. 이 소프트웨어 모델은 명사나 형용사나 동사를 비롯해 한 명 이상의 비즈니스 도메인 전문가가 포함된 개발 팀에서 공식적으로 언급되는 좀 더 풍부한 표현까지 포함해 만들어진다. 하지만 이 모델이 단순히 단어의 나열에 한정된다고 결론 내린다면 이는 잘못된 판단이다. 말하는 이의 마음을 투영하는 다른 모든 사람의 언어와 마찬가지로, 유비쿼터스 언어도 여러분이 함께 일하는 비즈니스 도메인 전문가의 머릿속 모델을 반영한다. 따라서, 모델이 도메인의 원리를 제대로 담고 있는지를 확인할 소프트웨어와 테스트는 이 언어를 포착하고 고수해야 하며, 팀 내부에서도 이 언어를 고수하려는 노력을 함께해야 한다. 이 언어는 여러 전략적/전술적 모델링 패턴들만큼 가치 있으며, 때론 더 오래 지속되는 가치를 보이기도 한다.
간단히 말하자면, DDD 라이트를 따르게 되면 최소한의 도메인 모델만을 구축하는 결과로 이어진다. 이는 유비쿼터스 언어와 바운디드 컨텍스트와 컨텍스트 맵을 그리는 활동이 주는 가치가 매우 크기 때문이다. 여러분은 단순한 팀의 언어 이상의 무언가를 얻게 된다. 명시적인 바운디드 컨텍스트 안에서 도메인 모델로써 표현되는 팀의 언어는 실질적인 비즈니스 가치를 더해 줄 뿐만 아니라, 우리에게 올바른 소프트웨어를 개발하고 있다는 확신을 심어준다. 기술적인 측면에서도, 좀 더 분명하게 행동을 정의함으로써 순수함을 높이고 오류 발생 가능성은 낮추며, 더 나은 모델을 만드는 데 도움을 받게 된다. 따라서 나는 전략적 디자인 패턴을 이해하기 쉬운 구현 예제로 매핑시켜보려 한다.
이 책은 여러분이 전략적 디자인과 전술적 디자인이란 두 측면 모두의 장점을 경험할 수 있는 방향으로 DDD의 영역을 매핑한다. 여러분은 세부사항을 자세히 살펴보며 비즈니스적 가치와 기술적 강점이 무엇인지 만나보게 된다.
우리가 DDD와 관련해 해왔던 모든 일이 단순히 지상에 머무는 수준이라면 굉장히 실망스러울 것이다. 세부사항에만 너무 몰입한다면 하늘에서 바라본 풍경을 통해 배울 점도 많다는 사실을 잊게 된다. 여러분 자신을 울퉁불퉁한 지상에서의 여행에만 묶어두지는 말자. 조종사의 자리에 앉아서 높은 곳에서의 이야기를 듣기 위한 도전으로 용감히 나아가자. 바운디드 컨텍스트와 컨텍스트 맵과 함께하는 전략적 디자인으로의 비행을 연습한다면, 최대한의 이해를 얻게 됐을 때의 웅장한 관점을 갖게 될 준비를 마치게 될 것이다. 여러분 스스로가 DDD로의 비행을 해내게 됐을 때, 비로소 나의 목표도 완성되게 된다.

★ 옮긴이의 말 ★

에릭 에반스가 저술한 『도메인 주도 설계』란 책이 세상에 나온 지도 어느덧 10여 년이 흘렀다. 엔터티, 값 객체, 애그리게잇, 서비스, 이벤트, 팩토리, 리파지토리 등의 요소를 바탕으로, 현실에 드러나는 모습을 도메인 모델로 옮기는 디자인 과정은 소프트웨어 설계에서 가장 널리 사용되는 강력한 도구로 자리잡았다. 전통적인 객체지향 디자인뿐만 아니라 함수형 프로그래밍에 이르기까지, 도메인 주도 설계는 프로젝트에서 어떤 언어나 프레임워크를 선택하든 디자인을 위해 반드시 참고하게 되는 필수적인 도구가 됐다.

하지만 도메인 주도 설계 경험이 부족한 팀이 도메인 주도 설계의 개념을 실제 프로젝트에 적용하기엔 에반스의 『도메인 주도 설계』는 너무 개념에 치중돼 있으며 추상적이었다. 『도메인 주도 설계』에선 도메인 모델을 구성하는 요소를 분류하며 개념적 특징을 잘 정리하고 있지만, 이를 현실에 적용하는 방법을 구체적인 예제로 충분히 보여주진 못했기 때문에 실제 프로젝트에 적용하기가 매우 어려웠다. 『도메인 주도 설계』를 읽고 실제 소프트웨어 설계 과정에서 활용해보려는 개발자들은 구체적 활용법을 떠올리지 못해 큰 혼란에 빠지기 십상이었다. 그 유용함에 비해 도메인 주도 설계가 널리 활용되지 못했던 이유는 『도메인 주도 설계 구현』과 같은 실용적인 지침서가 아직 등장하지 않았기 때문이 아닐까.

반 버논(Vaughn Vernon)은 이 책을 통해 도메인 주도 설계를 엔터프라이즈 애플리케이션 구축 프로젝트에서 활용하는 방법을 현실적이고 실용적인 예제를 바탕으로 설명한다. 그리고 이 책에서 다루는 내용만으로도 도메인 주도 설계의 경험이 없는 독자까지 깊이 있는 이해를 얻을 수 있도록 개념적으로도 충실하다. 에반스의 책에선 다루지 못했던 CQRS나 이벤트 소싱 등의 새로운 주제를 함께 설명하고 있으며 스프링, REST, NoSQL, 데이터 그리드 등과 같은 실용적 기술을 반영해 예제를 구성했다.

이 책을 읽고 나면, 도메인 주도 설계를 현재 진행 중인 프로젝트에 바로 적용할 준비가 되었음을 깨닫게 될 것이다. 도메인 주도 설계의 복잡하고 폭넓은 주제에 대해 이론과 실제를 묶어준 이 책은 독자가 도메인 주도 설계의 모든 중요 개념을 자신의 프로젝트에 적용할 수 있게 만들어줄 것이라고 확신한다.

기본정보

상품정보
ISBN 9788960778429 ( 8960778427 )
발행(출시)일자 2016년 04월 07일
쪽수 748쪽
크기
188 * 250 * 36 mm / 1490 g
총권수 1권
시리즈명
에이콘 소프트웨어 아키텍처 시리즈
원서명/저자명 Implementing Domain-Driven Design/Vaughn Vernon

Klover

Klover 리뷰 안내
교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
리워드 안내
구매 후 90일 이내에 평점과 10자 이상의 리뷰 작성 시 e교환권 200원을 적립해 드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
한달 후 리뷰
구매 후 30일~ 120일 이내에 작성된 두 번째 구매리뷰에 대해 한 달 후 리뷰로 인지하고 e교환권 100원을 추가 제공합니다.
운영 원칙 안내
Klover 리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
신고하기
다른 고객이 작성리뷰에 대해 불쾌함을 느끼는 경우 신고를 할 수 있으며, 신고 자가 일정수준 이상 누적되면 작성하신 리뷰가 노출되지 않을 수 있습니다.

구매 후 리뷰 작성 시, e교환권 200원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요

교환/반품/품절 안내

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

이벤트
TOP

저자 모두보기

저자(글)

매장별 재고 및 위치

할인쿠폰 다운로드

  • 쿠폰은 주문결제화면에서 사용 가능합니다.
  • 다운로드한 쿠폰은 마이 > 혜택/포인트 에서 확인 가능합니다.
  • 도서정가제 적용 대상 상품에 대해서는 정가의 10%까지 쿠폰 할인이 가능합니다.
  • 도서정가제 적용 대상 상품에 10% 할인이 되었다면, 해당 상품에는 사용하실 수
    없습니다.

적립예정포인트 안내

  • 통합포인트 안내

    • 통합포인트는 교보문고(인터넷, 매장), 핫트랙스(인터넷, 매장), 모바일 교보문고 등 다양한 곳에서 사용하실 수 있습니다.
    • 상품 주문 시, 해당 상품의 적립률에 따라 적립 예정 포인트가 자동 합산되고 주문하신 상품이 발송완료 된 후에 자동으로 적립됩니다.
    • 단, 쿠폰 및 마일리지, 통합포인트, e교환권 사용 시 적립 예정 통합포인트가 변동될 수 있으며 주문취소나 반품시에는 적립된 통합포인트가 다시 차감됩니다.
  • 통합포인트 적립 안내

    • 통합포인트는 도서정가제 범위 내에서 적용됩니다.
    • 추가적립 및 회원 혜택은 도서정가제 대상상품(국내도서, eBook등)으로만 주문시는 해당되지 않습니다.
  • 기본적립) 상품별 적립금액

    • 온라인교보문고에서 상품 구매시 상품의 적립률에 따라 적립됩니다.
    • 단 도서정가제 적용 대상인 국내도서,eBook은 15%내에서 할인율을 제외한 금액내로 적립됩니다.
  • 추가적립) 5만원 이상 구매시 통합포인트 2천원 추가적립

    • 5만원 이상 구매시 통합포인트 2천원 적립됩니다.
    • 도서정가제 예외상품(외서,음반,DVD,잡지(일부),기프트) 2천원 이상 포함시 적립 가능합니다.
    • 주문하신 상품이 전체 품절인 경우 적립되지 않습니다.
  • 회원혜택) 3만원이상 구매시 회원등급별 2~4% 추가적립

    • 회원등급이 플래티넘, 골드, 실버 등급의 경우 추가적립 됩니다.
    • 추가적립은 실결제액 기준(쿠폰 및 마일리지, 통합포인트, e교환권 사용액 제외) 3만원 이상일 경우 적립됩니다.
    • 주문 후 취소,반품분의 통합포인트는 단품별로 회수되며, 반품으로 인해 결제잔액이 3만원 미만으로 변경될 경우 추가 통합포인트는 전액 회수될 수 있습니다.

제휴 포인트 안내

제휴 포인트 사용

  • OK CASHBAG 10원 단위사용 (사용금액 제한없음)
  • GS&POINT 최대 10만 원 사용
더보기

구매방법 별 배송안내

배송 일정 안내

  • 출고 예정일은 주문상품의 결제(입금)가 확인되는 날 기준으로 상품을 준비하여 상품 포장 후 교보문고 물류센터에서 택배사로 전달하게 되는 예상 일자입니다.
  • 도착 예정일은 출고 예정일에서 택배사의 배송일 (약1~2일)이 더해진 날이며 연휴 및 토, 일, 공휴일을 제외한 근무일 기준입니다.
배송 일정 안내
출고예정일 도착예정일
1일이내 상품주문 후 2~3일 이내
2일이내 상품주문 후 3~4일 이내
3일이내 상품주문 후 4~5일 이내
4일이내 상품주문 후 5~6일 이내

연휴 및 토, 일, 공휴일은 제외됩니다.

당일배송 유의사항

  • 수도권 외 지역에서 선물포장하기 또는 사은품을 포함하여 주문할 경우 당일배송 불가
  • 회사에서 수령할 경우 당일배송 불가 (퇴근시간 이후 도착 또는 익일 배송 될 수 있음)
  • 무통장입금 주문 후 당일 배송 가능 시간 이후 입금된 경우 당일 배송 불가
  • 주문 후 배송지 변경 시 변경된 배송지에 따라 익일 배송될 수 있습니다.
  • 수도권 외 지역의 경우 효율적인 배송을 위해 각 지역 매장에서 택배를 발송하므로, 주문 시의 부록과 상이할 수 있습니다.
  • 각 지역 매장에서 재고 부족 시 재고 확보를 위해 당일 배송이 불가할 수 있습니다.

일반배송 시 유의사항

  • 날씨나 택배사의 사정에 따라 배송이 지연될 수 있습니다.
  • 수도권 외 지역 바로배송 서비스의 경우 경품 수령 선택 여부에 따라 도착 예정일이 변경됩니다.
  • 출고 예정일이 5일 이상인 상품의 경우(결제일로부터 7일 동안 미입고), 출판사 / 유통사 사정으로 품/절판 되어 구입이 어려울 수 있습니다. 이 경우 SMS, 메일로 알려드립니다.
  • 선물포장 주문 시 합배송 처리되며, 일부상품 품절 시 도착 예정일이 늦어질 수 있습니다.
  • 분철상품 주문 시 분철 작업으로 인해 기존 도착 예정일에 2일 정도 추가되며, 당일 배송, 해외 배송이 불가합니다.

해외주문 시 유의사항

  • 해외주문도서는 해외 거래처 사정에 의해 품절/지연될 수 있습니다.

Special order 주문 시 유의사항

  • 스페셜오더 도서나 일서 해외 주문 도서와 함께 주문 시 배송일이 이에 맞추어 지연되오니, 이점 유의해 주시기 바랍니다.

바로드림존에서 받기

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상 시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함 되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해 주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반 코너에서 수령확인이 가능합니다
  • 선물 받는 분의 휴대폰번호만 입력하신 후 결제하시면 받는 분 휴대폰으로 선물번호가 전달됩니다.
  • 문자를 받은 분께서는 마이 > 주문관리 > 모바일 선물내역 화면에서 선물번호와 배송지 정보를 입력하시면 선물주문이 완료되어 상품준비 및 배송이 진행됩니다.
  • 선물하기 결제하신 후 14일까지 받는 분이 선물번호를 등록하지 않으실 경우 주문은 자동취소 됩니다.
  • 또한 배송 전 상품이 품절 / 절판 될 경우 주문은 자동취소 됩니다.

바로드림 서비스 안내

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.
  1. STEP 01
    픽업박스에서 찾기 주문
  2. STEP 02
    도서준비완료 후 휴대폰으로 인증번호 전송
  3. STEP 03
    매장 방문하여 픽업박스에서 인증번호 입력 후 도서 픽업
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.

도서 소득공제 안내

  • 도서 소득공제란?

    • 2018년 7월 1일 부터 근로소득자가 신용카드 등으로 도서구입 및 공연을 관람하기 위해 사용한 금액이 추가 공제됩니다. (추가 공제한도 100만원까지 인정)
      • 총 급여 7,000만 원 이하 근로소득자 중 신용카드, 직불카드 등 사용액이 총급여의 25%가 넘는 사람에게 적용
      • 현재 ‘신용카드 등 사용금액’의 소득 공제한도는 300만 원이고 신용카드사용액의 공제율은 15%이지만, 도서·공연 사용분은 추가로 100만 원의 소득 공제한도가 인정되고 공제율은 30%로 적용
      • 시행시기 이후 도서·공연 사용액에 대해서는 “2018년 귀속 근로소득 연말 정산”시기(19.1.15~)에 국세청 홈택스 연말정산간소화 서비스 제공
  • 도서 소득공제 대상

    • 도서(내서,외서,해외주문도서), eBook(구매)
    • 도서 소득공제 대상 상품에 수반되는 국내 배송비 (해외 배송비 제외)
      • 제외상품 : 잡지 등 정기 간행물, 음반, DVD, 기프트, eBook(대여,학술논문), 사은품, 선물포장, 책 그리고 꽃
      • 상품정보의 “소득공제” 표기를 참고하시기 바랍니다.
  • 도서 소득공제 가능 결제수단

    • 카드결제 : 신용카드(개인카드에 한함)
    • 현금결제 : 예치금, 교보e캐시(충전에한함), 해피머니상품권, 컬쳐캐쉬, 기프트 카드, 실시간계좌이체, 온라인입금
    • 간편결제 : 교보페이, 네이버페이, 삼성페이, 카카오페이, PAYCO, 토스, CHAI
      • 현금결제는 현금영수증을 개인소득공제용으로 신청 시에만 도서 소득공제 됩니다.
      • 교보e캐시 도서 소득공제 금액은 교보eBook > e캐시 > 충전/사용내역에서 확인 가능합니다.
      • SKpay, 휴대폰 결제, 교보캐시는 도서 소득공제 불가
  • 부분 취소 안내

    • 대상상품+제외상품을 주문하여 신용카드 "2회 결제하기"를 선택 한 경우, 부분취소/반품 시 예치금으로 환원됩니다.

      신용카드 결제 후 예치금으로 환원 된 경우 승인취소 되지 않습니다.

  • 도서 소득공제 불가 안내

    • 법인카드로 결제 한 경우
    • 현금영수증을 사업자증빙용으로 신청 한 경우
    • 분철신청시 발생되는 분철비용

알림 신청

아래의 알림 신청 시 원하시는 소식을 받아 보실 수 있습니다.
알림신청 취소는 마이룸 > 알림신청내역에서 가능합니다.

도메인 주도 설계 구현(Implementing Domain-Driven Design)
한달 후 리뷰
/ 좋았어요
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 올해 주식 투자를 시작했다. 아무것도 모르고 초심자의 행운으로 분유값 정도를 벌고 나니, 조금 더 공부해보고 싶어져서 『초격차 투자법』을 구매했다.
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
기대가됩니다~
기대가됩니다~
기대가됩니다~
이 구매자의 첫 리뷰 보기
/ 좋았어요
하루밤 사이 책한권을 읽은게 처음이듯 하다. 저녁나절 책을 집어든게 잘못이다. 마치 게임에 빠진 아이처럼 잠을 잘수없게 만든다. 결말이 어쩌면 당연해보이는 듯 하여도 헤어나올수 없는 긴박함이 있다. 조만간 영화화되어지지 않을까 예견해 본다. 책한권으로 등의 근육들이 오그라진 느낌에 아직도 느껴진다. 하루밤 사이 책한권을 읽은게 처음이듯 하다. 저녁나절 책을 집어든게 잘못이다. 마치 게임에 빠진 아이 처럼 잠을 잘수없게 만든다. 결말이 어쩌면 당연해보이는 듯 하여도 헤어나올수 없는 긴박함이 있다. 조만간 영화화되어지지 않을까..
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
신고

신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.

허위 신고일 경우, 신고자의 서비스 활동이 제한될 수 있으니 유의하시어
신중하게 신고해주세요.

판형알림

  • A3 [297×420mm]
  • A4 [210×297mm]
  • A5 [148×210mm]
  • A6 [105×148mm]
  • B4 [257×364mm]
  • B5 [182×257mm]
  • B6 [128×182mm]
  • 8C [8절]
  • 기타 [가로×세로]