HOME > 상세정보

상세정보

도메인 주도 설계 : 소프트웨어의 복잡성을 다루는 지혜 (12회 대출)

자료유형
단행본
개인저자
Evans, Eric, 1962- 이대엽, 역
서명 / 저자사항
도메인 주도 설계 : 소프트웨어의 복잡성을 다루는 지혜 / 에릭 에반스 지음 ; 이대엽 옮김
발행사항
파주 :   위키북스,   2011  
형태사항
xxxix, 568 p. : 삽화 ; 24 cm
총서사항
(위키북스) IT leaders 시리즈 ;13
원표제
Domain-driven design : tackling complexity in the heart of software
ISBN
9788992939850
일반주기
참고문헌(p. 553-555)과 색인, 부록수록  
일반주제명
Computer software -- Development. Object-oriented programming (Computer science)
000 01056camcc2200313 c 4500
001 000045665315
005 20110908095413
007 ta
008 110907s2011 ggka b 001c kor
020 ▼a 9788992939850 ▼g 93560
035 ▼a (KERIS)BIB000012483282
040 ▼a 211052 ▼c 211052 ▼d 244002 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.1 ▼2 22
085 ▼a 005.1 ▼2 DDCK
090 ▼a 005.1 ▼b 2011z8
100 1 ▼a Evans, Eric, ▼d 1962-
245 1 0 ▼a 도메인 주도 설계 : ▼b 소프트웨어의 복잡성을 다루는 지혜 / ▼d 에릭 에반스 지음 ; ▼e 이대엽 옮김
246 1 9 ▼a Domain-driven design : ▼b tackling complexity in the heart of software
260 ▼a 파주 : ▼b 위키북스, ▼c 2011
300 ▼a xxxix, 568 p. : ▼b 삽화 ; ▼c 24 cm
440 1 0 ▼a (위키북스) IT leaders 시리즈 ; ▼v 13
500 ▼a 참고문헌(p. 553-555)과 색인, 부록수록
650 0 ▼a Computer software ▼x Development.
650 0 ▼a Object-oriented programming (Computer science)
700 1 ▼a 이대엽, ▼e
900 1 0 ▼a 에반스, 에릭, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.1 2011z8 등록번호 121212752 (6회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.1 2011z8 등록번호 121212753 (6회 대출) 도서상태 대출중 반납예정일 2026-03-28 예약 서비스 M

컨텐츠정보

책소개

도메인 주도 설계에 대한 체계적인 접근법을 제공하고 폭넓은 우수 설계 실천법과 경험을 토대로 한 기법, 복잡한 도메인에 직면한 소프트웨어 프로젝트의 발전을 가능하게 하는 근본 원칙을 제시한다. 설계 및 개발 원칙들이 한데 어우러져 있는 이 책에서는 현실세계의 소프트웨어 개발에 도메인 주도 설계를 응용한 모습을 생생하게 보여주는 실제 프로젝트에 기반한 수많은 예제가 실려 있다.

소프트웨어 개발 커뮤니티에서는 도메인 모델링이 소프트웨어 설계에서 중심적인 요소라는 사실을 널리 인정받고 있다. 도메인 모델을 토대로 소프트웨어 개발자들은 풍부한 기능성을 표현하고 그것을 사용자의 진정한 욕구를 충족하는 소프트웨어 구현으로 바꿀 수 있다. 하지만 도메인 모델이 중요하다는 사실이 분명함에도 효과적인 도메인 모델링을 소프트웨어 개발 프로세스에 통합하는 방법을 설명하는 실용적인 참고 자료는 거의 없다.

『도메인 주도 설계』는 그러한 요구를 채워준다. 이 책은 특정 기술에 관한 책이 아니다. 이 책에서는 독자에게 도메인 주도 설계에 대한 체계적인 접근법을 제공하고 폭넓은 우수 설계 실천법과 경험을 토대로 한 기법, 복잡한 도메인에 직면한 소프트웨어 프로젝트의 발전을 가능하게 하는 근본 원칙을 제시한다. 설계 및 개발 원칙들이 한데 어우러져 있는 이 책에서는 현실세계의 소프트웨어 개발에 도메인 주도 설계를 응용한 모습을 생생하게 보여주는 실제 프로젝트에 기반한 수많은 예제가 실려 있다.

독자는 도메인 모델을 활용해 복잡한 개발 노력을 좀더 집중하고 활기를 띠게 만드는 방법을 배울 수 있다. 우수 실천법과 표준 패턴의 핵심은 개발팀을 위한 공통 언어를 제공한다. 애자일 개발의 빈번한 반복주기를 비롯해 단순히 코드가 아니라 코드의 기저에 자리잡은 모델을 리팩터링하는 것에 중점을 둠으로써 도메인에 대한 더 심층적인 통찰력과 도메인 전문가와 프로그래머 사이의 더 나은 의사소통이 가능해진다. 『도메인 주도 설계』는 이를 기반으로 복잡한 시스템과 더 규모가 큰 조직을 위한 모델링과 설계를 다룬다.

■ 이 책에서 다루는 내용

ㆍ 모든 팀원이 동일한 언어를 구사하게 하는 법
ㆍ 모델과 구현의 연계 강화
ㆍ 모델 내에서의 핵심 구분법 연마
ㆍ 도메인 객체의 생명주기 관리
ㆍ 정교한 방법으로 안전하게 조합할 수 있는 도메인 코드 작성
ㆍ 복잡한 개념을 분명하고 예측 가능하게 만들기
ㆍ 도메인 비전 선언문의 공식화
ㆍ 복잡한 도메인의 정수 추출
ㆍ 모델에 필요한 암시적 개념 규명
ㆍ 분석 패턴의 적용
ㆍ 디자인 패턴과 모델의 연결
ㆍ 대규모 시스템에서의 모델의 무결성 유지
ㆍ 동일 프로젝트에 공존하는 모델 다루기
ㆍ 큰 규모 구조를 내포한 시스템의 조직화
ㆍ 모델링 도약의 인식과 대응

이 책을 통해 객체지향 개발자, 시스템 분석가, 설계자들은 자신의 업무를 체계화하고 거기에 집중하는 데 필요한 지침을 얻고, 풍부하고 유용한 도메인 모델을 구축하며, 이러한 모델을 활용해 고품질의 장기적으로 지속되는 소프트웨어 구현을 만들어낼 수 있다.


정보제공 : Aladin

저자소개

에릭 에반스(지은이)

Domain Language의 설립자로서, Domain Language는 회사 업무와 긴밀하게 연계되어 발전하는 소프트웨어의 구축에 헌신하는 컨설팅 조직이다. 1980년대부터 수많은 복잡한 업무 및 기술 도메인에서 대형 객체지향 시스템의 설계자이자 프로그래머로 활동했으며, 익스트림 프로그래밍 개발 방법론을 채택한 개발팀을 대상으로 교육하고 지도해왔다.

이대엽(옮긴이)

책 만드는 일을 하고 있으며, 이따금 IT 관련 서적을 번역하기도 한다. 옮긴 책으로 『헬로! 파이썬 프로그래밍』 『자바 API 디자인』 『풀스택 자바스크립트 개발』 『테스트 주도 개발로 배우는 객체 지향 설계와 실천』 『자바스크립트 개론』 『모듈라 자바』 『시작하세요! 맥 OS X 라이언』 『도메인 주도 설계』 『하이버네이트 완벽 가이드』 『개념을 잡아주는 프로그래밍 정석』 등이 있다.

정보제공 : Aladin

목차

목차
01부 동작하는 도메인 모델 만들기
 도메인 주도 설계에서의 모델의 유용성 = 3
 소프트웨어의 본질 = 4
 01장 지식 탐구 = 7
  효과적인 모델링의 요소 = 13
  지식 탐구 = 14
  지속적인 학습 = 16
  지식이 풍부한 설계 = 17
  심층 모델 = 21
 02장 의사소통과 언어 사용 = 23
  UBIQUITOUS LANGUAGE (보편 언어) = 24
  크게 소리내어 모델링하기 = 31
  한 팀, 한 언어 = 32
  문서와 다이어그램 = 35
  글로 쓴 설계 문서 = 37
  실행 가능한 기반 = 40
  설명을 위한 모델 = 41
 03장 모델과 구현의 연계 = 45
  MODEL-DRIVEN DESIGN (모델 주도 설계) = 47
  모델링 패러다임과 도구 지원 = 51
  내부 드러내기: 왜 모델이 사용자에게 중요한가 = 58
  HANDS-ON MODELER (실천적 모델러) = 60
02부 모델 주도 설계의 기본 요소
 04장 도메인의 격리 = 69
  LAYERED ARCHITECTURE (계층형 아키텍처) = 70
   계층 간 관계 설정 = 74
   아키텍처 프레임워크 = 76
  도메인 계층은 모델이 살아가는 곳 = 77
  SMART UI(지능형 UI) "안티 패턴" = 78
  다른 종류의 격리 = 82
 05장 소프트웨어에서 표현되는 모델 = 83
  연관관계 = 85
  ENTITY (엔티티, 참조객체라고도 함) = 91
   ENTITY 모델링 = 95
   식별 연산의 설계 = 96
  VALUE OBJECT (값 객체) = 99
   VALUE OBJECT의 설계 = 102
   VALUE OBJECT를 포함한 연관관계 설계 = 106
  SERVICE(서비스) = 107
   SERVICE와 격리된 도메인 계층 = 109
   구성 단위 = 111
   SERVICE에 접근하기 = 112
  MODULE(모듈, 패키지라고도 함) = 113
   기민한 MODULE = 115
   인프라스트럭처 주도 패키지화의 함정 = 117
  모델링 패러다임 = 120
   객체 패러다임이 지배적인 이유 = 121
   객체 세계에서 객체가 아닌 것들 = 123
   패러다임이 혼재할 때 MODEL-DRIVEN DESIGN 고수하기 = 124
 06장 도메인 객체의 생명주기 = 127
  AGGREGATE (집합) = 129
  FACTORY (팩터리) = 140
   FACTORY와 FACTORY의 위치 선정 = 143
   생성자만으로 충분한 경우 = 146
   인터페이스 설계 = 147
   불변식 로직의 위치 = 148
   ENTITY FACTORY와 VALUE OBJECT FACTORY = 149
   저장된 객체의 재구성 = 149
  REPOSITORY (리파지터리) = 152
   REPOSITORY에 질의하기 = 158
   클라이언트 코드가 REPOSITORY 구현을 무시한다 (개발자는 그렇지 않지만) = 159
   REPOSITORY 구현 = 160
   프레임워크의 활용 = 162
   FACTORY와의 관계 = 163
  관계형 데이터베이스를 위한 객체 설계 = 165
 07장 언어의 사용(확장 예제) = 169
  화물 해운 시스템 소개 = 169
  도메인 격리: 응용 기능 소개 = 172
  ENTITY와 VALUE OBJECT의 구분 = 173
   역할과 그 밖의 속성 = 175
  해운 도메인의 연관관계 설계 = 175
  AGGREGATE의 경계 = 177
  REPOSITORY의 선정 = 178
  시나리오 연습 = 180
   예제 애플리케이션 기능: 화물의 목적지 변경 = 180
   예제 애플리케이션 기능: 반복 업무 = 180
  객체 생성 = 181
   Cargo에 대한 FACTORY와 생성자 = 181
   Handling Event 추가 = 182
  리팩터링할 시간: Cargo AGGREGATE의 설계 대안 = 184
  해운 모델의 MODULE = 187
  새로운 기능 도입: 할당량 검사 = 190
   두 시스템의 연계 = 191
   모델 강화: 업무 분야 나누기 = 192
   성능 최적화 = 194
  최종 검토 = 195
03부 더 심층적인 통찰력을 향한 리팩터링
 리팩터링 수준 = 198
 심층 모델 = 199
 심층 모델/유연한 설계 = 201
 발견 과정 = 201
 08장 도약 = 2033
  도약에 관한 일화 = 204
   괜찮은 모델이기는 하지만…… = 204
   도약 = 207
   더 심층적인 모델 = 209
   냉정한 결정 = 211
   결말 = 213
  기회 = 213
  기본에 집중하라 = 213
  후기 : 연이은 새로운 통찰력의 출현 = 214
 09장 암시적인 개념을 명확하게 = 217
  개념 파헤치기 = 218
   언어에 귀 기울여라 = 218
   어색한 부분을 조사하라 = 223
   모순점에 대해 깊이 고민하라 = 229
   서적을 참고하라 = 230
   시도하고 또 시도하라 = 232
  다소 불명확한 개념의 모델링 = 232
   명시적인 제약조건 = 233
   도메인 객체로서의 프로세스 = 236
  SPECIFICATION (명세) = 238
   SPECIFICATION의 적용과 구현 = 242
 10장 유연한 설계 = 257
  INTENTION-REVEALING INTERFACE (의도를 드러내는 인터페이스) = 261
  SIDE-EFFECT-FREE FUNCTION (부수효과가 없는 함수) = 266
  ASSERTION (단정) = 272
  CONCEPTUAL CONTOUR (개념적 윤곽) = 277
  STANDALONE CLASS (독립형 클래스) = 283
  CLOSURE OF OPERATION (연산의 닫힘) = 286
  선언적 설계 = 289
   도메인 특화 언어 = 290
  선언적인 형식의 설계 = 292
   SPECIFICATION을 선언적인 형식으로 확장하기 = 292
  받음각 = 302
   하위 도메인으로 분할하라 = 302
   가능하다면 정립된 정형화를 활용하라 = 302
 11장 분석 패턴의 적용 = 313
 12장 모델과 디자인 패턴의 연결 = 329
  STRATEGY (POLICY라고도 함) = 331
  COMPOSITE (복합체) = 336
  그렇다면 FLYWEIGHT는? = 343
 13장 더 심층적인 통찰력을 향한 리팩터링 = 345
  시작 = 346
  조사팀 = 346
  선행 기술 = 347
  개발자를 위한 설계 = 348
  타이밍 = 349
  위기를 기회로 = 350
04부 전략적 설계
 14장 모델의 무결성 유지 = 357
  BOUNDED CONTEXT (제한된 컨텍스트) = 361
   BOUNDED CONTEXT 안의 균열 인식 = 365
  CONTINUOUS INTEGRATION (지속적인 통합) = 367
  CONTEXT MAP (컨텍스트 맵) = 370
   CONTEXT 경계에서의 테스트 = 378
   CONTEXT MAP의 조직화와 문서화 = 378
  BOUNDED CONTEXT 간의 관계 = 379
  SHARED KERNEL (공유 커널) = 381
  CUSTOMER/SUPPLIER DEVELOPMENTTEAM (고객/공급자 개발 팀) = 383
  CONFORMIST (준수자) = 388
  ANTICORRUPTION LAYER (오류 방지 계층) = 391
   ANTICORRUPTION LAYER의 인터페이스 설계 = 393
   ANTICORRUPTION LAYER의 구현 = 393
   교훈적인 이야기 = 397
  SEPARATE WAYS (각자의 길) = 399
  OPEN HOST SERVICE (공개 호스트 서비스) = 402
  PUBLISHED LANGUAGE (공표된 언어) = 404
  코끼리 통일하기 = 407
  모델의 컨텍스트 전략 선택 = 412
   팀 의사결정 또는 그 이상 = 412
   우리 자신을 컨텍스트에 배치하기 = 412
   경계의 변형 = 413
   변경할 수 없다는 사실을 인정하기: 외부 시스템의 묘사 = 414
   외부 시스템과의 관계 = 414
   설계 중인 시스템 = 415
   개별 모델의 특수한 요구사항 충족하기 = 416
   배치 = 417
   타협점 = 418
   프로젝트가 이미 진행 중일 때 = 419
  변형 = 419
   CONTEXT 병합: SEPARATE WAYS→SHARED KERNEL = 420
   CONTEXT 병합: SHARED KERNEL→CONTINUOUS INTEGRATION = 422
   레거시 시스템의 단계적 폐기 = 423
   OPEN HOST SERVICE→PUBLISHED LANGUAGE = 425
 15장 디스틸레이션 = 427
  CORE DOMAIN (핵심 도메인) = 430
   CORE 선택 = 432
   누가 그 일을 할 것인가? = 433
  디스틸레이션의 단계적 확대 = 435
  GENERIC SUBDOMAIN (일반 하위 도메인) = 436
   일반화가 재사용 가능하다는 의미는 아니다 = 443
   프로젝트 위험 관리 = 444
  DOMAIN VISION STATEMENT (도메인 비전 선언문) = 446
  HIGHLIGHTED CORE (강조된 핵심) = 448
   디스틸레이션 문서 = 449
   표시된 CORE = 450
   프로세스 도구로서의 디스틸레이션 문서 = 451
  COHESIVE MECHANISM (응집력 있는 메커니즘) = 453
   GENERIC SUBDOMAIN과 COHESIVE MECHANISM = 455
   MECHANISM이 CORE DOMAIN의 일부인 경우 = 456
  선언적 형식의 디스틸레이션 = 457
  SEGREGATED CORE (분리된 핵심) = 458
   SEGREGATED CORE를 만드는 데 드는 비용 = 459
   발전하는 팀의 의사결정 = 460
  ABSTRACT CORE (추상화된 핵심) = 467
  심층 모델의 디스틸레이션 = 469
  리팩터링의 대상 선택 = 469
 16장 대규모 구조 = 471
  EVOLVING ORDER (발전하는 질서) = 475
  SYSTEM METAPHOR (시스템 은유) = 478
   미숙한 은유와 그것이 필요 없는 이유 = 480
  RESPONSIBILITY LAYER (책임 계층) = 481
   적절한 계층의 선택 = 493
  KNOWLEDGE LEVEL (지식 수준) = 497
  PLUGGABLE COMPONENT FRAMEWORK (착탈식 컴포넌트 프레임워크) = 507
  구조는 얼마나 제약성을 지녀야 하는가? = 512
  잘 맞아떨어지는 구조를 향한 리팩터링 = 513
   최소주의 = 514
   의사소통과 자기 훈련 = 514
   재구조화가 유연한 설계를 낳는다 = 515
   디스틸레이션은 부하를 줄인다 = 515
 17장 전략의 종합 = 517
  대규모 구조와 BOUNDED CONTEXT와의 결합 = 517
  대규모 구조와 디스틸레이션과의 결합 = 521
  평가 먼저 = 523
  누가 전략을 세우는가? = 523
   애플리케이션 개발에서 창발하는 구조 = 524
   고객(애플리케이션 개발팀) 중심의 아키텍처 팀 = 525
  전략적 설계 결정을 위한 6가지 필수 요소 = 525
   기술 프레임워크도 마찬가지다 = 528
   종합계획을 조심하라 = 529
결론
 맺음말 = 534
 앞을 내다보며 = 539
이 책에 포함된 패턴의 사용법
 패턴 이름 = 541
 용어 설명 = 547
 참고 문헌 = 555
 사진 협찬 = 557
 찾아보기 = 559

관련분야 신착자료

Harvard Business Review (2025)