목차
옮긴이의 글 = xiii
추천사 = xv
서문 = xx
감사의 글 = xxiv
1부 소개 = 1
  1장 설계와 아키텍처란? = 5
    목표는? = 6
    사례 연구 = 7
    결론 = 14
  2장 두 가지 가치에 대한 이야기 = 15
    행위 = 16
    아키텍처 = 16
    더 높은 가치 = 17
    아이젠하워 매트릭스 = 19
    아키텍처를 위해 투쟁하라 = 20
2부 벽돌부터 시작하기 : 프로그래밍 패러다임 = 23
  3장 패러다임 개요 = 25
    구조적 프로그래밍 = 26
    객체 지향 프로그래밍 = 26
    함수형 프로그래밍 = 27
    생각할 거리 = 27
    결론 = 28
  4장 구조적 프로그래밍 = 29
    증명 = 31
    해로운 성명서 = 32
    기능적 분해 = 33
    엄밀한 증명은 없었다 = 34
    과학이 구출하다 = 34
    테스트 = 35
    결론 = 36
  5장 객체 지향 프로그래밍 = 37
    캡슐화? = 38
    상속? = 41
    다형성? = 44
    결론 = 50
  6장 함수형 프로그래밍 = 53
    정수를 제곱하기 = 54
    불변성과 아키텍처 = 56
    가변성의 분리 = 56
    이벤트 소싱 = 58
    결론 = 60
3부 설계 원칙 = 61
  7장 SRP : 단일 책임 원칙 = 65
    징후 1 우발적 중복 = 67
    징후 2 병합 = 69
    해결책 = 70
    결론 = 71
  8장 OCP : 개방-폐쇄 원칙 = 73
    사고 실험 = 74
    방향성 제어 = 78
    정보 은닉 = 78
    결론 = 79
  9장 LSP : 리스코프 치환 원칙 = 81
    상속을 사용하도록 가이드하기 = 82
    정사각형/직사각형 문제 = 83
    LSP와 아키텍처 = 84
    LSP 위배 사례 = 84
    결론 = 86
  10장 ISP : 인터페이스 분리 원칙 = 87
    ISP와 언어 = 89
    ISP와 아키텍처 = 90
    결론 = 90
  11장 DIP : 의존성 역전 원칙 = 91
    안정된 추상화 = 93
    팩토리 = 94
    구체 컴포넌트 = 95
    결론 = 95
4부 컴포넌트 원칙 = 97
  12장 컴포넌트 = 99
    컴포넌트의 간략한 역사 = 100
    재배치성 = 103
    링커 = 104
    결론 = 106
  13장 컴포넌트 응집도 = 107
    REP : 재사용/릴리스 등가 원칙 = 108
    CCP : 공통 폐쇄 원칙 = 109
    CRP : 공통 재사용 원칙 = 111
    컴포넌트 응집도에 대한 균형 다이어그램 = 113
    결론 = 114
  14장 컴포넌트 결합 = 115
    ADP : 의존성 비순환 원칙 = 116
    하향식(top-down) 설계 = 123
    SDP : 안정된 의존성 원칙 = 124
    SAP : 안정된 추상화 원칙 = 131
    결론 = 138
5부 아키텍처 = 139
  15장 아키텍처란? = 141
    개발 = 143
    배포 = 144
    운영 = 145
    유지보수 = 146
    선택사항 열어 두기 = 146
    장치 독립성 = 148
    광고 우편 = 150
    물리적 주소 할당 = 152
    결론 = 153
  16장 독립성 = 155
    유스케이스 = 156
    운영 = 157
    개발 = 157
    배포 = 158
    선택사항 열어놓기 = 158
    계층 결합 분리 = 159
    유스케이스 결합 분리 = 160
    결합 분리 모드 = 161
    개발 독립성 = 162
    배포 독립성 = 163
    중복 = 163
    결합 분리 모드(다시) = 164
    결론 = 167
  17장 경계 : 선 긋기 = 169
    두 가지 슬픈 이야기 = 170
    FitNesse = 173
    어떻게 선을 그을까? 그리고 언제 그을까? = 176
    입력과 출력은? = 179
    플러그인 아키텍처 = 181
    플러그인에 대한 논의 = 182
    결론 = 183
  18장 경계 해부학 = 185
    경계 횡단하기 = 186
    두려운 단일체 = 186
    배포형 컴포넌트 = 189
    스레드 = 189
    로컬 프로세스 = 189
    서비스 = 191
    결론 = 191
  19장 정책과 수준 = 193
    수준 = 194
    결론 = 197
  20장 업무 규칙 = 199
    엔티티 = 200
    유스케이스 = 202
    요청 및 응답 모델 = 204
    결론 = 205
  21장 소리치는 아키텍처 = 207
    아키텍처의 테마 = 208
    아키텍처의 목적 = 209
    하지만 웹은? = 209
    프레임워크는 도구일 뿐, 삶의 방식은 아니다 = 210
    테스트하기 쉬운 아키텍처 = 210
    결론 = 211
  22장 클린 아키텍처 = 213
    의존성 규칙 = 215
    전형적인 시나리오 = 220
    결론 = 221
  23장 프레젠터와 험블 객체 = 223
    험블 객체 패턴 = 224
    프레젠터와 뷰 = 224
    테스트와 아키텍처 = 225
    데이터베이스 게이트웨이 = 226
    데이터 매퍼 = 226
    서비스 리스너 = 227
    결론 = 227
  24장 부분적 경계 = 229
    마지막 단계를 건너뛰기 = 230
    일차원 경계 = 231
    퍼사드 = 232
    결론 = 232
  25장 계층과 경계 = 235
    움퍼스 사냥 게임 = 236
    클린 아키텍처? = 237
    흐름 횡단하기 = 240
    흐름 분리하기 = 241
    결론 = 242
  26장 메인(Main) 컴포넌트 = 245
    궁극적인 세부사항 = 246
    결론 = 250
  27장 ''크고 작은 모든'' 서비스들 = 251
    서비스 아키텍처? = 252
    서비스의 이점? = 253
    야옹이 문제 = 254
    객체가 구출하다 = 256
    컴포넌트 기반 서비스 = 257
    횡단 관심사 = 259
    결론 = 259
  28장 테스트 경계 = 261
    시스템 컴포넌트인 테스트 = 262
    테스트를 고려한 설계 = 263
    테스트 API = 264
    결론 = 265
  29장 클린 임베디드 아키텍처 = 267
    앱-티튜드 테스트 = 271
    타깃-하드웨어 병목현상 = 274
    결론 = 285
6부 세부사항 = 287
  30장 데이터베이스는 세부사항이다 = 289
    관계형 데이터베이스 = 290
    데이터베이스 시스템은 왜 이렇게 널리 사용되는가? = 291
    디스크가 없다면 어떻게 될까? = 292
    세부사항 = 293
    하지만 성능은? = 293
    개인적인 일화 = 294
    결론 = 296
  31장 웹은 세부사항이다 = 297
    끝없이 반복하는 추 = 298
    요약 = 300
    결론 = 301
  32장 프레임워크는 세부사항이다 = 303
    프레임워크 제작자 = 304
    혼인 관계의 비대칭성 = 304
    위험 요인 = 305
    해결책 = 306
    이제 선언합니다 = 307
    결론 = 307
  33장 사례 연구 : 비디오 판매 = 309
    제품 = 310
    유스케이스 분석 = 310
    컴포넌트 아키텍처 = 312
    의존성 관리 = 314
    결론 = 314
  34장 빠져 있는 장 = 315
    계층 기반 패키지 = 316
    기능 기반 패키지 = 318
    포트와 어댑터 = 320
    컴포넌트 기반 패키지 = 322
    구현 세부사항엔 항상 문제가 있다 = 327
    조직화 vs. 캡슐화 = 328
    다른 결합 분리 모드 = 331
    결론 : 빠져 있는 조언 = 333
7부 부록 = 335
  부록 A 아키텍처 고고학 = 337
맺는 글 = 387
찾아보기 = 391
닫기