목차
이 책에 쏟아진 찬사 ... 4
추천의 글 Ⅰ 마틴 파울러 ... 10
추천의 글 Ⅱ 가이 가와사키 ... 11
감사의 글 ... 12
저자 소개 ... 13
옮긴이의 말 ... 14
들어가며 ... 27
1장 소프트웨어 아키텍처
   소프트웨어 아키텍처의 정의 ... 31
   소프트웨어 아키텍처를 보는 또 다른 관점 ... 32
      서브시스템은 의존성을 관리할 수 있도록 디자인한다 ... 32
      서브시스템은 인간적인 동기와 욕구를 충족시킬 수 있도록 디자인한다 ... 32
      훌륭한 아키텍처에 승복하라 ... 34
      아름다움은 그것을 추구하는 사람의 눈 안에 있다! ... 34
   소프트웨어 아키텍처가 중요한 이유 ... 35
      수명 ... 35
      안정성 ... 35
      수정 작업의 난이도와 성격 ... 35
      수익성 ... 36
      사회적 구조 ... 36
      영역 결정 ... 38
      지속 가능한, 우월한 경쟁력 ... 38
   아키텍처 만들기 ... 38
   패턴과 아키텍처 ... 41
   아키텍처의 발전과 성숙: 기능과 수용력 ... 42
   아키텍처에 대한 관심과 육성 ... 50
      기술적 자산 ... 50
      기술적 부채 ... 50
      알고 있는 버그 ... 51
      라이선스 협약 준수 ... 51
   제1, 제2, 제3의 원칙 ... 52
      캡슐화 ... 52
      인터페이스 ... 52
      느슨한 연결 ... 53
      적절한 규모 ... 53
      높은 응집력 ... 54
      매개변수 ... 54
      지연 ... 54
   아키텍처의 이해 ... 54
   팀 ... 56
2장 제품개발 첫걸음
   제품관리의 정의 ... 61
   제품관리의 중요성 ... 62
   제품개발 프로세스: 릴리즈 1.0 만들기 ... 63
      개념제안서 ... 65
      제품제안서/사업계획서 ... 65
      개발계획서 ... 65
      개발 ... 67
      최종 품질보증(QA) ... 67
      출시준비 ... 70
      출시 ... 70
   오해하지 말자 ... 71
      폭포수 프로세스를 닮았다. 그런데 폭포수 프로세스는 효과적이지 않다 ... 71
      모든 단계가 동등하게 중요한 것처럼 소개하고 있다 ... 72
      시간을 상술하지 않고 있다 ... 72
      어떻게 반복하나? ... 72
      개발 프로세스를 정하지 않고 있다 ... 73
      진행 단계별로 관련된 그룹 사이의 협업 수준을 명시하지 않고 있다 ... 73
   사업계획서 ... 74
   제품개발 프로세스: 릴리즈 버전 n.n.n 만들기 ... 75
   제품개발 프로세스의 확장 ... 76
      지속적인 마감 ... 76
      변화관리 프로토콜 ... 77
      재활용 상자 ... 78
   주요 제품관리 개념 ... 79
      마케팅의 4P ... 79
      총 유효 시장, 총 접근가능 시장, 시장 세그먼트 ... 81
      S자 제품 채택 곡선 ... 82
      완전제품 ... 85
      기술 우월성과 시장 우월성 ... 86
      포지션과 포지셔닝 ... 86
      브랜드 ... 88
      메인 메시지 ... 89
3장 마키텍처와 타키텍처의 차이점
   누가 무엇을 책임지는가? ... 93
   솔루션 개발 초기에 영향을 주는 요인 ... 95
   미래를 보는 안목으로 현실에서 성과 만들기 ... 101
   미래 계획하기 ... 102
   피드백 이용하기 ... 103
   분명하게 만들기 ... 105
   협력하며 일하기 ... 107
      합의에 이르기 ... 108
      데이터 공유하기 ... 109
   컨텍스트 다이어그램과 타깃 제품 ... 109
4장 비즈니스 모델과 라이선스 모델의 공생
   일반적인 소프트웨어 비즈니스 모델 ... 115
      접근이나 이용기간 제한 ... 118
      트랜잭션 ... 122
      미터링 ... 125
      하드웨어 ... 128
      서비스 ... 129
      매출증가/비용절감 ... 130
   비즈니스 모델과 연관된 권리 ... 131
   비즈니스 모델을 위한 타키텍처의 지원 ... 134
      일반적인 문제 ... 134
      접근이나 이용기간 제한 ... 136
      트랜잭션 ... 136
      미터링 ... 138
      하드웨어 ... 140
   라이선스 모델 강제하기 ... 140
      명예 시스템 ... 141
      직접 만든 라이선스 관리자 ... 141
      서드파티 또는 전문 라이선스 관리자 ... 142
      클라이언트 ... 143
   시장의 성숙도가 비즈니스 모델에 미치는 영향 ... 147
      비즈니스 모델 선택 ... 148
5장 기술 도입
   라이선스 도입의 위험 / 보상 ... 154
   계약서―액션(행동지침)이 있는 곳 ... 158
      계약서의 기초 ... 158
      라이선스 약정 ... 158
   비즈니스 모델이 충돌하면, 협상을 해야 한다 ... 164
   라이선스 협정서 존중 ... 166
   라이선스 도입한 기술 관리 ... 166
   오픈 소스 라이선스 도입 ... 167
   라이선스 비용 ... 168
   라이선스 도입의 경제학 ... 171
6장 이식성
   알려진 이식성의 장점 ... 175
   이식성에 관한 제안 ... 176
   이식 가능한 애플리케이션 만들기 ... 180
      인터프리터 언어를 사용하라 ... 180
      표준에 기반한 영구 스토리지를 사용하라 ... 181
      비즈니스 로직을 이식 가능하게 만들라 ... 181
      사용자에게 가까울수록 이식성이 떨어진다 ... 181
      표준화되고 공동 사용 가능한 서브시스템 간의 통신에는 XML을 사용하라 ... 182
      이식성이란 명목으로 특정 플랫폼에 한정적인 우수한 기능을 감추지 마라 ... 182
   난이도 도표 ... 182
      1단계: 실행환경 지우기 ... 184
      2단계: 실행환경 정렬하기 ... 185
      3단계: 최종본 만들기 ... 186
   조심해서 약속하라 ... 189
7장 배치 아키텍처
   배치 방식 ... 192
      고객 사이트 방식 ... 192
      ASP 방식 ... 192
      MSP 방식 ... 193
      트랜잭션 방식(웹 서비스) ... 193
   고객이 배치 아키텍처에 미치는 영향 ... 195
      통제와 통합 ... 195
      데이터 보안/프라이버시와 최고 부하 ... 196
      비용과 업체에 대한 신뢰 ... 196
      고객의 역량과 경험 그리고 지리적 분포 ... 197
   회사가 배치 아키텍처에 미치는 영향 ... 199
      세일즈 사이클 ... 199
      인프라에 대한 투자 ... 200
      현금 흐름 ... 201
      유연성 ... 201
      지리적 분포 ... 202
      가격이 아닌, 서비스 ... 202
   소프트웨어 배치 아키텍처의 선택 ... 202
   배치 아키텍처와 작업 배분 ... 203
   정보기기 ... 204
   배포 방식이 소프트웨어 아키텍처에 미치는 영향 ... 205
      유연한, 파라미터에 의한 통합 옵션, 또는 통합 옵션이 없는 경우 ... 205
      업그레이드 정책 ... 205
      데이터 보호와 접근 ... 206
      이전 옵션 ... 206
   소비자 소프트웨어의 미래 ... 206
8장 통합과 확장
   사용자의 지배력 - 주도하는 힘 ... 211
      통합/확장의 이유 ... 211
   계층적인 비즈니스 아키텍처: 논리적인 구조 ... 214
      사용자 인터페이스 계층 ... 215
      서비스 계층 ... 216
      도메인 모델 계층 ... 216
      퍼시스턴트 데이터 계층 ... 217
      주제에 의한 변주 ... 218
   계층적인 비즈니스 아키텍처 만들기 ... 219
   비즈니스 로직 계층에서의 통합과 확장 ... 223
      기술, 그리고 제어권의 소재 ... 223
      API를 통한 통합 ... 224
      등록을 통한 확장 ... 228
   퍼시스턴트 데이터의 통합과 확장 ... 229
      뷰 ... 230
      사용자 필드 ... 231
      후크 테이블 ... 232
      스프레드시트 피벗 테이블 ... 234
      추출, 변환, 로드 스크립트 ... 234
      고객에게 현실을 공개하라 ... 235
   비즈니스 파생물 ... 236
      전문가 서비스 ... 236
      교육 프로그램 ... 237
      자격증 ... 239
      사용자 커뮤니티 ... 241
      라이선스 협약 ... 242
   여러 출시에 걸쳐 API를 관리하기 ... 243
      API 관리 테크닉 ... 244
9장 브랜드와 브랜드 요소
   브랜드 요소 ... 247
      브랜드 네임 ... 247
      그래픽, 슬로건, 기타 브랜드 요소 ... 252
      언제 트레이드마크(TM) 심볼을 사용하나 ... 253
   라이선스 도입한 브랜드의 관리 ... 254
   브랜드 요소 수정 및 맞춤 ... 254
   브랜드 요소 바꾸기 ... 255
      변경해야 할 제품 영역 ... 256
      QA와 변경 ... 257
10장 사용성
   사용성은 돈에 관한 문제다 ... 260
   멘탈 모델, 메타포 그리고 사용성 ... 262
   타키텍처가 사용자 인터페이스 디자인에 미치는 영향 ... 264
      영향을 미치는 범위 ... 265
   속도에 대한 욕구 ... 273
      우리가 이야기할 것을 분명하게 정하자 ... 273
      마키텍트가 진정으로 원하는 것 ... 276
      사용자에게 응답하기 ... 278
      성능 그리고 타키텍처의 효과 ... 279
11장 설치
   OOBE ... 287
   아야! 그건 아프다고 ... 289
      고객의 공포 ... 289
   설치와 아키텍처 ... 291
      원인과 선택 ... 291
   설치 방법 ... 294
      설치 관련 데이터 수집과 전제 조건 검사하기 ... 294
      설치하기 ... 296
      설치 이후 확인하기 ... 298
   마지막 손길 ... 299
      사용자는 매뉴얼을 읽지 않는다 ... 299
      설치와 삭제를 테스트하라 ... 299
12장 업그레이드
   설치와 비슷하다. 단지 더 나쁠 뿐이다 ... 303
      업그레이드에 대한 공포 ... 303
   업그레이드의 고통을 줄이는 방법 ... 308
      고통 없는 업그레이드를 위한 선택 ... 308
   시장 성숙도와 업그레이드 ... 312
13장 설정
   설정용이성(사용성의 한 요소) ... 315
   시스템 컨텍스트 ... 316
      컨텍스트 정보 ... 316
   초기화와 실행 ... 318
   값 설정하기 ... 319
   올바른 값 설정하기 ... 320
   설정 매개변수 결정법 ... 322
14장 로그
   무슨 일이 일어나는지 알고 싶다 ... 326
   충분한 데이터가 필요하다 ... 328
   로그 포맷과 관리 ... 330
      로그 포맷 ... 330
      로그 관리 ... 332
      로그 관련 표준과 라이브러리 ... 334
   로그 데이터에 대한 후처리 ... 334
   서비스에 대한 로그 남기기 ... 335
15장 출시관리
   그렇다, 당신이 정말 필요로 하는 것은 이것이다 ... 339
   기초 다지기 ... 340
   출시본 관리 ... 341
      당신이 출시하려는 것 ... 341
      당신이 타깃으로 삼는 사람 ... 342
      그들이 그것을 원하는 이유 ... 343
   출시본 식별 ... 343
      전체 또는 완전 출시본 ... 344
      부분 출시본 ... 346
      패치본 ... 346
      변형본 ... 349
   SKU(제품번호)와 시리얼넘버(일련번호) ... 350
      SKU 관리 ... 351
      시리얼넘버, 등록 그리고 활성화 ... 353
   출시관리가 타키텍처에 미치는 영향 ... 355
16장 보안
   바이러스, 해커, 무단사용자 ... 360
      위험 관리 ... 361
      나쁜 것은 보지도, 말하지도 마라 ... 362
   디지털 신원 관리 ... 363
      권한부여(누가 무엇을 할 수 있는지 정의하기) ... 363
      신원확인(누구인지 확인하기) ... 364
   트랜잭션 보안 ... 367
      감사가능성(행위에 대한 증명) ... 367
      무결성(데이터에 대한 위조와 변조 막기) ... 368
      기밀성(권한 없는 사람들로부터 데이터를 보호하기) ... 369
      책임성(사람들이 자신의 행동에 책임을 지게 만들기) ... 370
   소프트웨어 보안 ... 370
      소프트웨어 보안 기술 ... 370
      소프트웨어 보안 비용 / 혜택 ... 373
   정보 보안 ... 374
   알고리즘을 비밀로 할까, 아니면 키를 비밀로 할까? ... 375
   백도어 ... 376
   보안과 마키텍처 ... 378
      상호작용의 영역 ... 378
부록 A 출시 체크리스트
   정보 추적 ... 385
   엔지니어링/개발 ... 385
   품질 보증 ... 385
   기술문서 ... 386
   핵심 제품관리 ... 386
   지식 이전: 전문가 서비스 ... 386
   지식 이전: 세일즈와 채널 ... 386
   지식 이전: 기술지원 ... 387
   출시 활동 ... 287
부록 B 전략적인 제품관리를 위한 패턴 랭귀지
   패턴 적용 ... 389
   결과 표시와 공유 ... 391
   시장 지도 ... 392
      내용 ... 392
      문제 ... 392
      요인 ... 392
      해법 ... 392
      결과 ... 393
      관계된 패턴 ... 393
   시장 이벤트 / 시장 리듬 ... 394
      내용 ... 394
      문제 ... 394
      요인 ... 394
      해법 ... 394
      결과 ... 395
      관계된 패턴 ... 395
   기능/혜택 지도 ... 396
      내용 ... 396
      문제 ... 396
      요인 ... 396
      해법 ... 396
      결과 ... 397
      관계된 패턴 ... 397
   타키텍처 로드맵 ... 397
      내용 ... 397
      문제 ... 397
      요인 ... 397
      해법 ... 398
      결과 ... 399
      관계된 패턴 ... 399
참고문헌 ... 401
추천도서 ... 403
찾아보기 ... 406
닫기