본문내용 바로가기
무료배송 이벤트 사은품 소득공제

테스트 주도 개발로 배우는 객체 지향 설계와 실천

스티브 프리먼 , 냇 프라이스 지음 | 이대엽 옮김 | 인사이트 | 2013년 06월 20일 출간
클로버 리뷰쓰기

이 책의 다른 상품 정보

  • 정가 : 29,000원
    판매가 : 26,100 [10%↓ 2,900원 할인]
  • 통합포인트 :
    [기본적립] 1,450원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2천원 추가적립 안내 [회원혜택] 실버등급 이상, 3만원 이상 구매 시 2~4% 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    당일배송 지금 주문하면 오늘(31일,토) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 취업/수험서, 컴퓨터/IT 분야 도서 3만원 이상 구매 시 샤코..
    2020.10.14 ~ 2020.11.30
  • 개발자로 입문하기: 일단 이것부터 읽어보자!
    2019.05.31 ~ 2020.12.31
  • 인사이트 출판사의 IT전문서를 편리하게 모아 보세요
    2017.11.22 ~ 2019.12.31
상품상세정보
ISBN 9788966260836(8966260837)
쪽수 432쪽
크기 188 * 240 * 30 mm /837g 판형알림
원서명/저자명 Growing object-oriented software, guided by tests/Freeman, Steve

책소개

이 책이 속한 분야

테스트 주도 개발로 배우는 『객체 지향 설계와 실천』. 소프트웨어 개발의 여러 층위에서 TDD가 어떻게 작동하는지 보여주면서 테스트로 코드를 객체 지향적으로 구성하고 객체 간 관계를 설명하는 방법을 제시함으로써 TDD를 사용하는 팀이 실제 개발 프로젝트에서 부딪힐 법한 문제를 체계적으로 풀어낸다. TDD를 효과적으로 구현하는 법, 더 깔끔하고 유지 보수하기 좋은 코드를 만드는 법 등을 다룬다.

목차

옮긴이의 글 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... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면
결제 90일 이내 300원, 발송 후 5일 이내 400원, 이 상품의 첫 리뷰 500원의 포인트를 드립니다.

포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
북로그 리뷰는 본인인증을 거친 회원만 작성 가능합니다.
(※ 외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외) 안내
  • 해당도서의 리뷰가 없습니다.

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품