logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

DDD Start!

DDD Start!

(도메인 주도 설계 구현과 핵심 개념 익히기)

최범균 (지은이)
지&선(지앤선)
25,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 2개 37,000원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

DDD Start!
eBook 미리보기

책 정보

· 제목 : DDD Start! (도메인 주도 설계 구현과 핵심 개념 익히기)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
· ISBN : 9788993827446
· 쪽수 : 336쪽
· 출판일 : 2016-05-27

책 소개

DDD(도메인 주도 설계)를 처음 접하는 개발자를 위한 책. DDD를 실제 업무에 적용할 수 있도록 기본적인 이론을 설명하고 이를 구현한 코드를 바탕으로 입문자가 헤매지 않고 DDD를 학습할 수 있도록 했다.

목차

CHAPTER 1 도메인 모델 시작
도메인… ………………………………………………………………………… 1
도메인 모델… …………………………………………………………………… 3
도메인 모델 패턴………………………………………………………………… 6
도메인 모델 도출……………………………………………………………… 10
엔티티와 밸류………………………………………………………………… 17
엔티티……………………………………………………………………………… 18
엔티티의 식별자 생성…………………………………………………………… 20
밸류 타입… ……………………………………………………………………… 22
엔티티 식별자와 밸류 타입……………………………………………………… 29
도메인 모델에 set 메서드 넣지 않기…………………………………………… 30
도메인 용어…………………………………………………………………… 34

CHAPTER 2 아키텍처 개요
네 개의 영역…………………………………………………………………… 37
계층 구조 아키텍처…………………………………………………………… 40
DIP……………………………………………………………………………… 44
DIP 주의사항……………………………………………………………………… 50
DIP와 아키텍처…………………………………………………………………… 52
도메인 영역의 주요 구성요소… …………………………………………… 54
엔티티와 밸류… ………………………………………………………………… 55
애그리거트………………………………………………………………………… 58
리포지터리………………………………………………………………………… 61
요청 처리 흐름………………………………………………………………… 65
인프라스트럭처 개요… ……………………………………………………… 66
모듈 구성… …………………………………………………………………… 68

CHAPTER 3 애그리거트
애그리거트…………………………………………………………………… 71
애그리거트 루트……………………………………………………………… 75
도메인 규칙과 일관성…………………………………………………………… 76
애그리거트 루트의 기능 구현…………………………………………………… 80
트랜잭션 범위…………………………………………………………………… 82
리포지터리와 애그리거트…………………………………………………… 85
ID를 이용한 애그리거트 참조……………………………………………… 87
ID를 이용한 참조와 조회 성능…………………………………………………… 92
애그리거트 간 집합 연관…………………………………………………… 94
애그리거트를 팩토리로 사용하기…………………………………………… 98

CHAPTER 4 리포지터리와 모델구현(JPA 중심)
JPA를 이용한 리포지터리 구현…………………………………………… 103
모듈 위치……………………………………………………………………… 104
리포지터리 기본 기능 구현…………………………………………………… 104
매핑 구현……………………………………………………………………… 109
엔티티와 밸류 기본 매핑 구현… …………………………………………… 109
기본 생성자… ………………………………………………………………… 112
필드 접근 방식 사용…………………………………………………………… 114
AttributeConverter를 이용한 밸류 매핑 처리……………………………… 115
밸류 컬렉션: 별도 테이블 매핑……………………………………………… 119
밸류 컬렉션: 한 개 칼럼 매핑………………………………………………… 122
밸류를 이용한 아이디 매핑…………………………………………………… 123
별도 테이블에 저장하는 밸류 매핑… ……………………………………… 125
밸류 컬렉션을 @Entity로 매핑하기… ……………………………………… 129
ID 참조와 조인 테이블을 이용한 단방향 M-N 매핑………………………… 134
애그리거트 로딩 전략………………………………………………………… 134
애그리거트의 영속성 전파…………………………………………………… 138
식별자 생성 기능……………………………………………………………… 139

CHAPTER 5 리포지터리의 조회 기능(JPA 중심)
검색을 위한 스펙……………………………………………………………… 143
스펙 조합……………………………………………………………………… 145
JPA를 위한 스펙 구현……………………………………………………… 146
JPA 스펙 구현………………………………………………………………… 147
AND/OR 스펙 조합을 위한 구현…………………………………………… 150
스펙을 사용하는 JPA 리포지터리 구현……………………………………… 153
정렬 구현……………………………………………………………………… 155
페이징과 개수 구하기 구현………………………………………………… 160
조회 전용 기능 구현………………………………………………………… 162
동적 인스턴스 생성…………………………………………………………… 162
하이버네이트 @Subselect 사용……………………………………………… 165

CHAPTER 6 응용 서비스와 표현 영역
표현 영역과 응용 영역……………………………………………………… 169
응용 서비스의 역할…………………………………………………………… 171
도메인 로직 넣지 않기………………………………………………………… 173
응용 서비스의 구현…………………………………………………………… 176
응용 서비스의 크기… ………………………………………………………… 176
응용 서비스의 인터페이스와 클래스………………………………………… 180
메서드 파라미터와 값 리턴…………………………………………………… 181
표현 영역에 의존하지 않기…………………………………………………… 185
트랜잭션 처리………………………………………………………………… 187
도메인 이벤트 처리…………………………………………………………… 188
표현 영역……………………………………………………………………… 190
값 검증………………………………………………………………………… 193
권한 검사……………………………………………………………………… 197
조회 전용 기능과 응용 서비스……………………………………………… 201

CHAPTER 7 도메인 서비스
여러 애그리거트가 필요한 기능…………………………………………… 203
도메인 서비스………………………………………………………………… 205
도메인 서비스의 패키지 위치………………………………………………… 209
도메인 서비스의 인터페이스와 클래스……………………………………… 210

CHAPTER 8 애그리거트 트랜잭션 관리
애그리거트와 트랜잭션……………………………………………………… 213
선점 잠금……………………………………………………………………… 215
선전 잠금과 교착 상태………………………………………………………… 217
비선점 잠금…………………………………………………………………… 218
강제 버전 증가………………………………………………………………… 227
오프라인 선점 잠금…………………………………………………………… 228
오프라인 선점 잠금을 위한 LockManager 인터페이스와 관련 클래스… 230
DB를 이용한 LockManager 구현… ………………………………………… 233

CHAPTER 9 도메인 모델과 BOUNDED CONTEXT
도메인 모델과 경계…………………………………………………………… 241
BOUNDED CONTEXT……………………………………………………… 242
BOUNDED CONTEXT의 구현…………………………………………… 245
BOUNDED CONTEXT 간 통합…………………………………………… 248
BOUNDED CONTEXT 간 관계…………………………………………… 256
컨텍스트 맵…………………………………………………………………… 259

CHAPTER 10 이벤트
시스템 간 강결합의 문제… ………………………………………………… 261
이벤트 개요… ………………………………………………………………… 265
이벤트 관련 구성요소… ……………………………………………………… 266
이벤트의 구성… ……………………………………………………………… 266
이벤트 용도… ………………………………………………………………… 269
이벤트 장점… ………………………………………………………………… 270
이벤트, 핸들러, 디스패처 구현……………………………………………… 271
이벤트 클래스… ……………………………………………………………… 271
EventHandler 인터페이스… ………………………………………………… 273
이벤트 디스패처인 Events 구현……………………………………………… 275
흐름 정리……………………………………………………………………… 279
AOP를 이용한 Events.reset() 실행…………………………………………… 281
동기 이벤트 처리 문제……………………………………………………… 283
비동기 이벤트 처리…………………………………………………………… 284
로컬 핸들러의 비동기 실행…………………………………………………… 285
메시징 시스템을 이용한 비동기 구현……………………………………… 290
이벤트 저장소를 이용한 비동기 처리……………………………………… 291
이벤트 저장소 구현… ………………………………………………………… 293
이벤트 저장을 위한 이벤트 핸들러 구현…………………………………… 299
REST API 구현………………………………………………………………… 301
포워더 구현…………………………………………………………………… 304
이벤트 적용 시 추가 고려사항……………………………………………… 307

CHAPTER 11 CQRS
단일 모델의 단점……………………………………………………………… 311
CQRS………………………………………………………………………… 312
웹과 CQRS…………………………………………………………………… 317
CQRS 장단점………………………………………………………………… 318

저자소개

최범균 (지은이)    정보 더보기
코딩하는 걸 좋아하고 나이 들어서도 코딩하고 싶은 개발자다. 좋은 책과 글을 쓰고 싶어 하며 유튜브나 SNS로 개발 관련 이야기를 나누고 있다.
펼치기

책속에서

처음 DDD(Domain Driven Design: 도메인 주도 설계)를 접한 건 2006년의 일이다. 이때, 에릭 에반스가 쓴 "도메인 주도 설계" 책을 처음 읽었다. 나는 그 전까지 컨트롤러-서비스-DAO-DTO를 이용해서 웹 어플리케이션을 개발하고 있었는데, DDD 책을 읽고 새로운 세상을 만난 기분이 들었다. 그 뒤로 이 주제의 관련 지식을 학습하고 나름 적용도 해보면서 DDD를 익히기 시작했다. DDD를 시도할 때 어려웠던 것은 DDD 자체를 이해하는 것이었다. 지금도 DDD를 완전히 마스터했다고 할 수 없지만, 처음 책을 읽을 때엔 잘 이해되지 않는 내용이 많았다. 그 덕에 같은 책을 여러 차례 반복해서 읽어가면서 조금씩 이해의 폭을 넓혔다.
두 번째로 어려웠던 것은 구현에 대한 것이었다. 그 당시만 해도 DDD에 대한 구현 예제가 많지 않았다. DDD 자체에 대한 이해가 부족한 상황에서 참고할 만한 코드도 없었기에 좌충우돌하면서 구현을 시도했다. 그 사이 많은 시간이 흘렀지만 여전히 많은 개발자가 DDD와 도메인 모델을 구현하는 것을 어려워하고 있다. DDD가 어렵게 느껴지는 여러 이유가 있겠지만, 그 중 하나는 징검다리 역할을 할 입문서가 없는 것이라 생각한다. 에릭 에반스의 책은 처음 DDD를 접하는 개발자가 보기엔 다소 어렵고, 어던 책은 아쉽게도 번역서가 없거나 DDD 입문자에게 도움이 되지 않는다. 이 책을 쓴 계기는 바로 여기에 있다. 프로그래밍 언어 입문서와 깊이 있는 내용을 다루는 책이 따로 있는 것처럼, DDD도 입문자를 위한 책이 따로 필요하다 생각한다.이 책은 처음 DDD를 접하는 개발자가 깊이 있게 DDD를 학습하기 전에 DDD의 기본을 쌓을 수 있는 징검다리 역할을 한다. (중략)

- 서문 중에서


이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책