목차
역자서문 ... xii
마틴 파울러의 머릿말 ... xvi
폴 줄리어스의 머릿말 ... xvii
서문 ... xxi
PART Ⅰ 지속적 통합의 배경: 원칙과 실천 방법
   chapter 1 시작하기 ... 3
      변경할 때마다 소프트웨어를 빌드하기 ... 4
        개발자 ... 6
        버전 관리 저장소 ... 7
        <B><FONT color ... #0000
        빌드 스크립트 ... 10
        피드백 메커니즘 ... 10
        통합 빌드 머신 ... 12
      <B><FONT color ... #0000
        소스 코드 컴파일 ... 12
        데이터베이스 통합 ... 14
        테스트 ... 15
        검사(Inspection) ... 17
        배포 ... 18
        문서화와 피드백 ... 20
      요약 ... 21
      질문 ... 21
   chapter 2 <B><FONT color ... #0000
      <B><FONT color ... #0000
      <B><FONT color ... #0000
        위험을 줄여줍니다 ... 29
        반복적인 프로세스를 줄여줍니다 ... 30
        배포할 수 있는 소프트웨어를 생성합니다 ... 31
        프로젝트 가시성을 더 높입니다 ... 31
        제품에 대해 보다 큰 자신감을 갖게 됩니다 ... 32
      <B><FONT color ... #0000
      '지속적인' 통합을 도입하려면 어떻게 해야 할까요? ... 33
      언제, 어떻게 프로젝트에 <B><FONT color ... #0000
      통합의 진화 ... 36
      <B><FONT color ... #0000
      <B><FONT color ... #0000
      <B><FONT color ... #0000
      코드를 자주 커밋하세요 ... 39
      깨진 코드를 커밋해선 안 됩니다 ... 41
      빌드가 깨지면 즉시 고치세요 ... 41
      자동화된 개발자 테스트를 작성하세요 ... 41
      테스트와 검사는 모두 통과해야 합니다 ... 42
      개인 빌드를 돌리세요 ... 42
      깨진 코드는 가져오지 마세요 ... 43
      요약 ... 44
      질문 ... 45
   chapter 3 <B><FONT color ... #0000
      위험 요소: 배포 가능한 소프트웨어의 부재 ... 49
        시나리오: '내 컴퓨터에선 되는데요' ... 50
        시나리오: 데이터베이스와 동기화하기 ... 50
        시나리오: 버튼을 안 눌렀어요 ... 52
      위험 요소: 뒤늦은 결함 발견 ... 53
        시나리오: 회귀 테스트 ... 53
        시나리오: 테스트 적용범위(Test Coverage, 테스트 커버리지) ... 54
      위험 요소: 프로젝트 가시성의 부재 ... 55
        시나리오: '제가 남긴 메모 보셨나요?' ... 56
        시나리오: 소프트웨어를 시각화할 역량의 부재 ... 56
      위험 요소: 저품질의 소프트웨어 ... 57
        시나리오: 코딩 표준 준수 ... 58
        시나리오: 설계 지침 준수 ... 59
        시나리오: 중복 코드 ... 60
      요약 ... 62
      질문 ... 62
   chapter 4 변경될 때마다 소프웨어를 빌드하기 ... 65
      빌드를 자동화하기 ... 67
      명령어 하나로 빌드를 수행하기 ... 69
      IDE에서 빌드 스크립트를 분리해내기 ... 73
      소프트웨어 자산을 중앙 집중화하기 ... 74
      일관성 있는 디렉터리 구조를 만들기 ... 76
      빌드를 빨리 실패하게 만들기 ... 77
      어떤 환경에서라도 빌드하기 ... 77
      빌드 유형과 메커니즘 ... 78
        빌드 유형 ... 78
        빌드 메커니즘 ... 80
        빌드 시작시키기 ... 81
      전용 통합 빌드 머신을 사용하기 ... 81
      <B><FONT color ... #0000
      사람이 직접 통합 빌드를 돌리기 ... 86
      빌드 시간을 짧게 만들기 ... 87
        빌드 메트릭 수집하기 ... 88
        빌드 메트릭 분석하기 ... 89
        개선 방안을 고르고 실행하기 ... 89
      빌드를 여러 단계로 나누기 ... 92
        다시 평가하기 ... 96
      이런 게 과연 효과가 있을까요? ... 96
      요약 ... 101
      질문 ... 103
PART Ⅱ 완전한 기능을 갖춘 지속적인 시스템 만들기
   chapter 5 지속적인 데이터베이스 통합 ... 107
      데이터베이스 통합을 자동화하기 ... 110
        데이터베이스 만들기 ... 112
        데이터베이스 조작하기 ... 115
        빌드 데이터베이스 편성 스크립트 만들기 ... 116
      로컬 데이터베이스 샌드박스를 사용하기 ... 117
      버전 관리 저장소를 사용해서 데이터베이스 자산을 공유하기 ... 119
      지속적인 데이터베이스 통합 ... 122
      개발자에게 데이터베이스를 수정할 권한을 주기 ... 123
      팀이 다 함께 깨진 빌드를 고치는 일에 집중하기 ... 124
      DBA를 개발 팀의 일원으로 만들기 ... 124
      데이터베이스 통합과 통합 버튼 ... 125
        테스트 ... 125
        검사 ... 125
        배포 ... 126
        피드백과 문서화 ... 126
      요약 ... 126
      질문 ... 128
   chapter 6 지속적인 테스트 ... 129
      단위 테스트 자동화하기 ... 132
      컴포넌트 테스트 자동화하기 ... 134
      시스템 테스트 자동화하기 ... 136
      기능 테스트 자동화하기 ... 137
      개발자 테스트를 여러 범주로 나누기 ... 138
      시간이 덜 걸리는 테스트부터 실행하기 ... 140
        단위 테스트 ... 141
        컴포넌트 테스트 ... 141
        시스템 테스트 ... 143
      결함 검사용 테스트 작성하기 ... 143
      컴포넌트 테스트를 반복할 수 있게 만들기 ... 148
      테스트 케이스 하나에 어썰트(assert) 하나로 제한하기 ... 156
      요약 ... 159
      질문 ... 160
   chapter 7 지속적인 검사 ... 161
      검사와 테스트는 무엇이 다를까요? ... 164
      검사기를 얼마나 자주 돌려야 할까요? ... 165
      코드 메트릭: 그 역사 ... 166
      코드 복잡도를 줄이기 ... 167
      설계 검토를 지속적으로 수행하기 ... 170
      코드 심사(Audit)를 하여 조직에서 정한 표준을 잘 지키게 하기 ... 173
      중복 코드를 줄이기 ... 176
        PMD-CPD 사용하기 ... 177
        Simian 사용하기 ... 178
      코드 적용범위를 평가하기 ... 180
      코드 품질을 지속적으로 평가하기 ... 182
        적용범위 테스트 수행 빈도 ... 183
        적용범위 테스트와 성능 ... 185
      요약 ... 186
      질문 ... 187
   chapter 8 지속적인 배포 ... 189
      작동하는 소프트웨어를 언제, 어느 곳에서든 릴리즈하기 ... 191
      저장소 안의 자산에 꼬리표 붙이기 ... 191
      깨끗한 환경 만들기 ... 194
      각 빌드에 꼬리표 붙이기 ... 195
      테스트를 모두 돌리기 ... 196
      빌드 피드백 보고서 만들기 ... 196
      릴리즈를 롤백할 수 있는 능력 확보하기 ... 199
      요약 ... 200
      질문 ... 202
   chapter 9 지속적인 피드백 ... 203
      적절하게 ... 205
        적절한 정보 ... 205
        적절한 사람 ... 207
        적절한 시기 ... 208
        적절한 방법 ... 209
      지속적인 피드백 메커니즘 사용하기 ... 209
        이메일 ... 210
        SMS(문자 메시지) ... 212
        앰비언트 오브와×10 디바이스 ... 214
        윈도우 작업 표시줄 ... 217
        소리 ... 218
        와이드 스크린 모니터 ... 220
      요약 ... 222
      질문 ... 222
epilogue : <B><FONT color ... #0000
appendix A Cl 관련 리소스 ... 227
   <B><FONT color ... #0000
   빌드 스크립트 리소스 ... 232
   버전 관리 리소스 ... 233
   데이터베이스 리소스 ... 234
   테스트 리소스 ... 236
   자동화된 검사 리소스 ... 239
   배포 리소스 ... 242
   피드백 리소스 ... 242
   문서화 리소스 ... 243
appendix B CI 도구 평가하기 ... 245
   도구를 평가할 때 고려할 점 ... 247
      기능성 ... 248
      내가 일하는 환경과의 호환성 ... 253
      안정성 ... 254
      수명 ... 254
      사용자 편의성 ... 255
   자동화된 빌드 도구 ... 255
      Ant ... 256
      Maven 1 ... 256
      Maven 2 ... 259
      NAnt ... 261
      Rake ... 262
   빌드 스케줄러 도구 ... 263
      AnthillPro ... 264
      Continuum ... 266
      CruiseControl ... 266
      CruiseControl.NET ... 268
      Draco.NET ... 269
      Luntbuild ... 271
   결론 ... 272
bibliography(참고 문헌) ... 273
index(찾아보기) ... 276
닫기