테스트 주도 개발로 배우는 객체 지향 설계와 실천
도서+교보Only(교보배송)을 함께 15,000원 이상 구매 시 무료배송
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
작가정보
저자(글) 스티브 프리먼
저자 스티브 프리먼은 애자일 소프트웨어 개발을 전문으로 하는 독립 컨설턴트다. 영국 내 애자일 소프트웨어 개발의 선구자이자 ISP나 은행 등 기업용 애플리케이션을 구축했다. 연구소에서 일하기도 했고 대학에서 가르치기도 했으며 런던 XpDday 조직자였다. jMock과 nMock 라이브러리 개발자다.
저자 냇 프라이스는 소프트웨어 설계와 개발 프로세스를 전문으로 하는 독립 컨설턴트다. 임페리얼 칼리지의 리서치 펠로우이기도 하다. jMock과 nMock 라이브러리 개발자다.
번역 이대엽
역자 이대엽은 책 만드는 일을 하고 있으며 이따금 IT 관련 서적을 번역하기도 한다. 옮긴 책으로 『자바스크립트 개론』, 『모듈라 자바』, 『시작하세요! 맥 OS X 라이언』, 『도메인 주도 설계』, 『하이버네이트 완벽 가이드』, 『개념을 잡아주는 프로그래밍 정석』 등이 있다.
목차
- 옮긴이의 글 XII
추천의 글 XIII
지은이의 글 XIV
감사의 글 XVIII
1부 서론 1
1장 테스트 주도 개발의 핵심은 무엇인가? 3
1.1 학습 과정으로서의 소프트웨어 개발 3
1.2 피드백은 가장 기본적인 도구다 4
1.3 변화를 돕는 실천법 5
1.4 테스트 주도 개발 간단 정리 6
1.5 좀 더 큰 그림 8
1.6 전 구간 테스트 9
1.7 테스트의 수준 11
1.8 외부 품질과 내부 품질 12
2장 객체를 활용한 테스트 주도 개발 15
2.1 객체망 15
2.2 값과 객체 16
2.3 메시지를 따르라 17
2.4 묻지 말고 말하라 19
2.5 그래도 가끔은 물어라 20
2.6 협력 객체의 단위 테스트 21
2.7 목 객체를 활용한 TDD 지원 22
3장 도구 소개 25
3.1 이미 아는 내용이라면 넘어가도 좋다 25
3.2 간략한 JUnit 4 소개 25
3.3 햄크레스트 매처와 assertThat() 29
3.4 jMock2: 목 객체 30
2부 테스트 주도 개발 과정 35
4장 테스트 주도 주기 시작 37
4.1 우선 동작하는 골격을 대상으로 테스트하라 38
4.2 동작하는 골격의 외형 결정 40
4.3 피드백 소스 구축 42
4.4 불확실성은 일찍 드러내라 43
5장 테스트 주도 개발 주기의 유지 47
5.1 각 기능을 인수 테스트로 시작하라 47
5.2 회귀를 포착하는 테스트와 진행 상황을 측정하는 테스트를 분리하라 49
5.3 테스트를 가장 간단한 성공 케이스로 시작하라 49
5.4 읽고 싶어 할 테스트를 작성하라 50
5.5 테스트가 실패하는 것을 지켜보라 51
5.6 입력에서 출력 순서로 개발하라 52
5.7 메서드가 아닌 행위를 단위 테스트하라 52
5.8 테스트에 귀를 기울이라 54
5.9 주기의 미세 조정 55
6장 객체 지향 스타일 57
6.1 유지 보수성을 고려한 설계 58
6.2 내부 대 이웃 61
6.3 단일 책임 원칙 62
6.4 객체 이웃의 유형 63
6.5 전체는 부분의 합보다 단순해야 한다 65
6.6 콘텍스트 독립성 66
6.7 올바른 정보 감추기 67
6.8 우리 견해가 반영된 관점 68
7장 객체 지향 설계의 달성 69
7.1 테스트를 먼저 작성하는 것이 설계에 어떻게 도움이 되는가 69
7.2 분류보다 의사소통 70
7.3 값 타입 71
7.4 객체는 어디에서 오는가? 73
7.5 인터페이스로 관계를 식별하라 76
7.6 인터페이스도 리팩터링하라 77
7.7 객체를 구성해 시스템의 행위를 기술하라 78
7.8 고수준 프로그래밍을 위한 대비 79
7.9 그럼 클래스는? 81
8장 서드 파티 코드를 기반으로 한 개발 83
8.1 소유한 타입에 대해서만 목 객체를 적용하라 83
8.2 통합 테스트에서 애플리케이션 객체에 목 객체를 적용하라 86
3부 동작하는 예제 87
9장 경매 스나이퍼 개발 의뢰 89
9.1 맨 처음부터 시작하기 89
9.2 경매와의 상호 작용 92
9.3 안전하게 진행하기 94
9.4 이건 진짜가 아니야 96
10장 동작하는 골격 99
10.1 골격 사용 준비 99
10.2 최초 테스트 100
10.3 몇 가지 초기 선택 103
11장 첫 테스트 통과하기 107
11.1 테스트 도구 구축 107
11.2 테스트 실패와 통과 114
11.3 필요한 최소한의 것 122
12장 입찰 준비 125
12.1 시장 소개 125
12.2 입찰 테스트 126
12.3 AuctionMessageTranslator 133
12.4 가격 메시지 분석 139
12.5 마무리 143
13장 스나이퍼가 입찰하다 145
13.1 AuctionSniper 도입 145
13.2 입찰 전송 148
13.3 구현 정리 154
13.4 결정을 미루라 158
13.5 창발적 설계 159
14장 스나이퍼가 경매에서 낙찰하다 161
14.1 우선 실패하는 테스트를 작성한다 161
14.2 누가 입찰자에 대해 알고 있는가? 162
14.3 스나이퍼는 할 말이 더 있다 165
14.4 스나이퍼가 일부 상태를 획득하다 166
14.5 스나이퍼가 낙찰하다 169
14.6 꾸준하게 진행하기 171
15장 실제 사용자 인터페이스를 향해 173
15.1 좀 더 현실적인 구현 173
15.2 가격 세부 사항 표시 176
15.3 스나이퍼 이벤트의 단순화 184
15.4 완수 189
15.5 마지막 손질 194
15.6 고찰 197
16장 여러 품목에 대한 스나이핑 201
16.1 여러 품목에 대한 테스트 201
16.2 사용자 인터페이스를 통한 항목 추가 210
16.3 고찰 217
17장 Main 분석 219
17.1 역할 찾기 219
17.2 채팅 추출 220
17.3 연결 추출 224
17.4 SnipersTableModel 추출 225
17.5 고찰 230
18장 세부 사항 처리 235
18.1 좀 더 유용한 애플리케이션 235
18.2 충분할 때 멈추라 236
18.3 고찰 243
19장 실패 처리 247
19.1 뭔가 제대로 동작하지 않는다면? 247
19.2 실패 감지 249
19.3 실패 보여주기 251
19.4 스나이퍼 연결 끊기 252
19.5 실패 기록 254
19.6 고찰 259
4부 지속 가능한 테스트 주도 개발 261
20장 테스트에 귀 기울이기 263
20.1 대체할 수 없는 객체에 대해 목 객체를 적용해야 한다(마법을 쓰지 않고) 264
20.2 로깅은 기능이다 268
20.3 구상 클래스에 대한 목 객체 적용 271
20.4 값에 목 객체를 적용하지 말라 273
20.5 비대한 생성자 274
20.6 혼동되는 객체 277
20.7 너무 많은 의존성 278
20.8 너무 많은 예상 구문 279
20.9 테스트가 우리에게 말해주는 것(여러분이 귀 기울인다면) 281
21장 테스트 가독성 285
21.1 테스트 이름은 기능을 기술한다 286
21.2 정규 테스트 구조 289
21.3 테스트 코드의 능률화 291
21.4 단정과 예상 구문 294
21.5 리터럴과 변수 295
22장 복잡한 테스트 데이터 만들기 297
22.1 테스트 데이터 빌더 298
22.2 비슷한 객체 생성 300
22.3 빌더 조합 301
22.4 팩터리 메서드를 이용한 도메인 모델 강조 302
22.5 사용 시점에서 중복 없애기 303
22.6 의사소통이 우선이다 305
23장 테스트 진단 307
23.1 실패하는 설계 307
23.2 작고, 문제에 집중하고, 이름을 잘 지은 테스트 308
23.3 설명력 있는 단정 메시지 308
23.4 매처를 활용한 세부 사항 강조 309
23.5 자기 서술적인 값 309
23.6 명확하게 가공된 값 310
23.7 추적자 객체 311
23.8 예상이 충족됐음을 명시적으로 단정하라 312
23.9 진단은 일급 기능이다 312
24장 테스트 유연성 315
24.1 표현이 아닌 정보를 위한 테스트 316
24.2 정확한 단정 318
24.3 정확한 예상 구문 320
24.4 ‘실험용 쥐’ 객체 328
5부 고급 주제 331
25장 영속성 테스트 333
25.1 들어가며 333
25.2 영속화 상태에 영향을 주는 테스트 격리 335
25.3 테스트 트랜잭션 경계를 명시적으로 만들기 336
25.4 영속성 연산을 수행하는 객체에 대한 테스트 339
25.5 영속화 가능한 객체 테스트하기 342
25.6 하지만 데이터베이스는 느리다! 346
26장 단위 테스트와 스레드 347
26.1 기능과 동시성 정책의 분리 348
26.2 동기화에 대한 단위 테스트 353
26.3 수동적인 객체에 대한 부하 테스트 358
26.4 백그라운드 스레드를 이용한 테스트 스레드 동기화 359
26.5 단위 부하 테스트의 한계 361
27장 비동기 코드 테스트 363
27.1 샘플링 또는 대기 364
27.2 두 가지 구현 367
27.3 제어하기 어려운 테스트 372
27.4 갱신 내역 분실 373
27.5 아무런 효과가 없는 행동에 대한 테스트 375
27.6 동기화와 단정 구별 376
27.7 이벤트 소스의 외부화 376
후기 목 객체의 간략한 역사 379
부록 A jMock2 정리 노트 385
부록 B 햄크레스트 매처 작성 395
참고 문헌 398
찾아보기 402
책 속으로
.
출판사 서평
“TDD로 좀 더 탄탄한 객체 지향 개발을 이끄는 안내서”
테스트 주도 개발은 코드를 짜기 전에 테스트를 먼저 만들라는 단순한 아이디어에서 출발하지만 개발자의 숙련된 기술과 판단이 필요하다. 이 책은 소프트웨어 개발의 여러 층위에서 TDD가 어떻게 작동하는지 보여주면서 테스트로 코드를 객체 지향적으로 구성하고 기능을 구현하며 목 객체로 객체 간 관계를 설명하는 방법을 제시함으로써 TDD를 사용하는 팀이 실제 개발 프로젝트에서 부딪힐 법한 문제를 체계적으로 풀어가는 가이드를 제안한다.
이 책에서 다루는 내용:
* TDD를 효과적으로 구현하는 법
* 더 깔끔하고 유지 보수하기 좋은 코드를 만드는 법
* 테스트로 지속 가능한 품질 유지하기
* 실제 개발 프로젝트에서 TDD, 목 객체, 객체 지향 설계를 함께 활용하는 법 이해하기
* 목 객체로 객체 지향 설계 가이드하기
* TDD 중 부딪히는 난관 해결하기
기본정보
ISBN | 9788966260836 | ||
---|---|---|---|
발행(출시)일자 | 2013년 06월 20일 | ||
쪽수 | 432쪽 | ||
크기 |
188 * 240
* 30
mm
/ 837 g
|
||
총권수 | 1권 | ||
원서명/저자명 | Growing object-oriented software, guided by tests/Freeman, Steve |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립