목차
옮긴이의 글 = 3
쇼를 시작하며 = 4
1장 기본에 숨겨진 함정 = 15
  1.1 선수 선서는 반드시 처음에 하자 : 선언 처리 = 16
  1.2 트랙에 흰 선을 그리자 : 데이터 구조 정의 = 25
  1.3 개회식 다음은 선수 선서 : 순차 처리 = 36
  1.4 A코트는 테니스지만 B코트는 배드민턴 : 병렬 처리 = 45
  1.5 네트를 정리하면서 공 준비하기 : 비동기 처리 = 53
  1.6 잊지 말고 뒤처리하기 : 강제 종료 = 61
  1.7 선수가 규칙에 어긋난 행동을 하면 : 예외 처리 = 70
  1.8 경기 해설자는 정말 필요한가 : 주석 = 77
2장 기본 기능 = 85
  2.1 루프의 버그는 경계에 숨어있다 = 86
  2.2 계속 변하는 조건의 함정 = 93
  2.3 Format 메서드의 함정 = 102
  2.4 서식 변경과 중괄호 = 106
  2.5 checked 컨텍스트의 장단점 = 114
  2.6 unsafe 컨텍스트는 필요한가? = 127
  2.7 포인터 망상 = 131
  2.8 switch와 데이터형 = 141
  2.9 goto의 위기 : 안전한 사용법과 위험한 사용법 = 150
  2.10 예외를 캐치하는 이유와 캐치하지 않는 이유 = 160
  2.11 TryParse에서 결과를 보지 않는 경우 = 165
  2.12 다른 형에 대입하기 = 171
  2.13 아무것도 하지 않는 객체 = 177
  2.14 테스트와 목(mock) = 184
3장 LINQ = 191
  3.1 First와 FirstOrDefault 중 선택은? = 192
  3.2 First와 Single 중 선택은? = 197
  3.3 OrderBy와 Sort 중 선택은? = 204
  3.4 배열과 IEnumerable〈T〉중 선택은? = 210
  3.5 여러 개의 짧은 쿼리와 하나의 긴 쿼리 중 선택은? = 217
  3.6 로컬 쿼리와 리모트 쿼리 중 선택은? = 228
  3.7 Cast와 OfType 중 선택은? = 233
  3.8 ToArray와 ToList 중 선택은? = 238
  3.9 Length/Count와 Count() 중 선택은? = 246
  3.10 애저의 위기 : Take는 되지만 Skip은 안 된다? = 252
  3.11 식을 동적으로 구축해서 한계를 돌파하자! = 256
  3.12 인스턴스화는 필요한가? = 260
  3.13 열거 데이터의 순서를 변경할 수 있는가? = 266
4장 코드 비교를 통해 차이점 배우기 = 271
  4.1 object vs. dynamic = 272
  4.2 초등학생도 작성할 수 있는 프로그램 vs. 초등학생은 작성할 수 없는 프로그램 = 277
  4.3 문과생도 작성할 수 있는 프로그램 vs. 문과생은 작성할 수 없는 프로그램 = 282
  4.4 논리적으로 사고하는 사람 vs. 논리적으로 사고하지 않는 사람 = 285
  4.5 돈을 밝히는 프로 vs. 쿨한 매니아 = 290
  4.6 소통이 원활한 팀 vs. 소통이 원활하지 않은 팀 = 294
  4.7 긴 코드 vs. 짧은 코드 = 301
  4.8 심리적으로 안정적인 코드 vs. 심리적으로 불안한 코드 = 306
  4.9 의존성을 분리한다? vs. 분리하지 않는다? = 310
  4.10 캡처 실수! = 315
  4.11 지역 변수의 좀비화 = 321
  4.12 전용 DLL은 필요하다? 필요하지 않다? = 325
  4.13 고정된 쿼리 식 vs. 움직이는 쿼리 식 = 328
  4.14 식은 실행하기 전까지는 알 수 없다 = 332
  4.15 위임형을 정의해야 한다? = 339
5장 클라우드 = 345
  5.1 스토리지의 두 가지 키 사용법 = 346
  5.2 애저 스토리지는 미로? = 352
  5.3 애저 테이블의 전방 일치 = 356
  5.4 애저 테이블에서 복수 조건의 OR 일치 = 359
  5.5 ETag로 확실한 수정을! = 363
  5.6 애저 블롭의 메타 데이터 = 367
  5.7 Worker 롤(role)은 정말 필요한가? = 370
  5.8 나는 몇 번째 인스턴스? = 373
  5.9 WebApp으로 스케일 아웃하는 방법 = 375
6장 코드 예를 보면서 진상 파헤치기 = 379
  6.1 버그를 수정했는데 이유를 모른다? = 380
  6.2 분명하지만 활용할 수 없는 조언 = 386
  6.3 한 글자라도 변경하면 처음부터 다시 테스트? = 391
  6.4 ''동작한다''는 것은 마일스톤일 뿐이다 = 395
  6.5 페일 세이프 개념 = 399
  6.6 테스트는 부분적으로? 또는 전체적으로? = 404
  6.7 웹 시스템과 테스트 문제 = 411
  6.8 GUI와 테스트 문제 = 416
  6.9 몽키 테스트는 의미가 있는가? = 421
  6.10 목(mock)를 사용하는 의미가 있는가? = 426
  6.11 테스트를 전제로 한 설계 방법 = 430
  6.12 마침표와 쉼표 실수 = 434
마침표 = 437
문제 해설 = 439
인덱스 = 467
닫기