목차
지은이 소개 ... ⅴ
옮긴이 후기 ... xiv
베타리더 후기 ... xvi
감사의 글 ... xvii
이 책의 대하여 ... xvii
CHAPTER 1 엔터프라이즈 디자인
   엔터프라이즈 아키텍처란 무엇인가? ... 5
   엔터프라이즈 개발이란 무엇인가? ... 7
      신뢰성 ... 8
      유연성 ... 8
      역할의 분리 ... 9
      재사용성 ... 9
      유지보수성 ... 9
   마이크로소프트의 엔터프라이즈 기술은 어디에 있는가? ... 11
      COM ... 13
      자바로의 이동 ... 14
      .NET ... 15
   요약 ... 19
CHAPTER 2 엔터프라이즈 코드
   코드를 바라보는 새로운 방법 ... 21
      모듈화 ... 23
      느슨하게 결합된 클래스들 ... 25
      단위 테스트 ... 33
      제어 역행화 컨테이너 ... 35
   요약 ... 41
CHAPTER 3 보다 나은 클래스 디자인
   코드의 의존성을 평가하기 ... 46
      경직성 ... 59
      유연성 ... 59
      역할의 분리 ... 59
      재사용성 ... 60
      유지보수 용이성 ... 60
   역할의 분리와 모듈화의 이해 ... 62
   의존성 전도의 원칙 ... 79
   의존성 주입 패턴의 활용 ... 83
      경직성 ... 90
      유연성 ... 90
      역할의 분리 ... 91
      재사용성 ... 91
      유지보수 용이성 ... 91
   요약 ... 92
CHAPTER 4 테스트 주도 개발
   TDD 예제: 틱택토 게임 ... 97
      틱택토 게임의 요구사항 ... 97
      테스트 프레임워크 ... 140
      테스트가 가능한 요소들을 정의하기 ... 141
      유용한 단위 테스트 작성하기 ... 143
   리팩토링 ... 149
   리팩토링 도구 ... 151
      ReSharper ... 151
      Refactor Pro ... 151
   테스트 주도 개발 환경에서 의존성 처리하기 ... 151
   가상 객체 프레임워크 ... 164
      Rhino Mocks ... 164
      Moq ... 165
      NMock ... 165
   요약 ... 165
CHAPTER 5 간결한 코드를 위한 제어 역행화 기법
   의존 객체의 생성 ... 169
   Factory 패턴 ... 178
   Service Locator ... 182
   제어 역행화와 IoC 컨테이너 ... 185
   의존성 주입과 제어 역행화의 비교 ... 187
      IoC 컨테이너의 선택 ... 187
   StructureMap 프레임워크 ... 192
      Fluent Interface 패턴을 이용한 객체 연결 ... 193
      Plugin Family 특성을 이용한 객체 연결 ... 197
      메타 데이터를 이용한 객체 연결 ... 201
   XML이냐 아니냐, 그것이 문제로다 ... 204
      다른 IoC 프레임워크들 ... 205
   요약 ... 206
CHAPTER 6 미들웨어 구축하기
   미들웨어에서는 어떤 일이? ... 211
   혼돈의 시대 ... 212
   계층적 디자인 ... 213
   인터넷 시대 ... 215
   엔터프라이즈 미들웨어의 시대 ... 218
   WCF 웹 서비스 ... 221
   메시징 모델 ... 233
   SOA에 대한 단상 ... 234
   요약 ... 235
CHAPTER 7 미들웨어 구현하기
   비즈니스 로직 계층 ... 237
   비즈니스 로직 계층을 위한 패턴 ... 239
      트랜잭션 스크립트 ... 239
      액티브 레코드 패턴 ... 241
      도메인 모델 패턴 ... 244
      어떤 패턴을 사용해야 할까? ... 249
   서비스 계층의 구현 ... 249
      서비스 계층 ... 250
      패턴 실습하기 ... 251
      모기지 론 자격 심사 애플리케이션 ... 252
      도메인 언어로 의사소통하기 ... 253
   도메인 주도 디자인에 대한 간단한 소개 ... 254
      엔티티 ... 254
      값 객체 ... 255
      객체 집합과 객체 집합 루트 ... 255
      도메인 전문가와 대화하기 ... 256
      도메인 모델의 구현 ... 259
      객체 집합의 정의 ... 260
      애플리케이션의 구현 ... 261
      저장소 구현하기 ... 307
      도메인 서비스의 구현 ... 309
   요약 ... 316
CHAPTER 8 비즈니스 구축하기
   데이터 액세스 계층이란? ... 319
      데이터 액세스 계층 구현하기 ... 320
      객체 관계 매핑 ... 321
      DataContext 객체 ... 322
      Entity Framework ... 341
      LinqToSQL과 Entity Framework ... 358
      모기지 론 애플리케이션을 NHibernate를 이용하여 매핑하기 ... 377
   요약 ... 401
CHAPTER 9 프론트 엔드의 구현
   방치된 프론트 엔드 ... 403
   초기의 프론트 엔드 패턴들 ... 405
      자바 스트럿츠 ... 407
      ASP.NET ... 409
      모델-뷰-프리젠터 패턴 ... 413
      MVC 패턴 다시 보기 - 레일즈 방식 ... 418
   요약 ... 422
CHAPTER 10 MVP 패턴
   MVP 패턴에 대한 간단한 소개 ... 424
      모델 ... 425
      뷰 ... 425
      프리젠터 ... 425
      MVP 모기지 계산기 - 웹 예제 ... 426
   플랫폼의 전환 - 팻 클라이언트 예제 ... 452
      WPF 애플리케이션 프로젝트 준비하기 ... 452
   요약 ... 457
CHAPTER 11 MVC 패턴
   MVC의 기초 ... 460
      모델 ... 462
      컨트롤러 ... 463
      뷰 ... 463
      모기지 론 애플리케이션 ... 464
      모델 구현하기 ... 468
      컨트롤러의 구현 ... 471
      뷰 구현하기 ... 474
      간단한 저장소 객체의 구현 ... 478
      모델의 생성과 수정 ... 484
      모델 확장하기 ... 503
      전체 소스 코드 ... 516
   요약 ... 517
CHAPTER 12 최종 실습
   2보 전진을 위한 1보 후퇴 ... 520
   우리가 학습했던 개념들 ... 520
      신뢰성 ... 520
      유연성 ... 521
      역할의 분리 ... 521
      재사용성 ... 521
      유지보수성 ... 521
      총평 ... 522
   우리가 작성했던 코드들 ... 522
      총평 ... 523
   우리가 사용했던 패턴들 ... 524
      미들웨어 ... 524
      영속성 ... 526
      사용자 인터페이스 ... 527
      총평 ... 529
   전체적으로 다시 살펴보기 ... 529
      모기지 서비스 ... 530
   최종 마무리 ... 531
   요약 ... 532
부록 A C.NET 기초
   .NET의 기본 개념 ... 534
      다중 언어 지원 ... 534
      유연한 런타임 환경 ... 535
      가비지 컬렉션 ... 535
      COM의 쇠퇴 ... 536
      C 프로그래밍 ... 536
      시스템 정의 타입들 ... 537
      사용자 정의 타입들 ... 538
      범위와 선언 ... 538
      속성, 대리자 그리고 이벤트 ... 540
      네임스페이스 ... 544
      C 3.0의 언어적 특징들 ... 547
      묵시적으로 형식화된 지역 변수 ... 548
      람다 식 ... 548
      확장 메서드 ... 549
      객체 및 컬렉션 초기자 ... 550
      객체지향 개념 ... 552
      클래스와 객체 ... 553
      상속 ... 555
      캡슐화 ... 557
      다형성과 추상화 ... 560
   C과 웹 SDK ... 563
      System.Web 네임스페이스 ... 563
      System.Web.UI 네임스페이스 ... 564
      System.Web.UI.WebControls 네임스페이스 ... 564
      System.Web.UI.HtmlControls 네임스페이스 ... 565
      System.Web.Services 네임스페이스 ... 565
      System.Web.Security 네임스페이스 ... 565
      System.Web.Mobile 네임스페이스 ... 566
      System.Net.Mail 네임스페이스 ... 567
      System.Web.Mvc 네임스페이스 ... 567
      System.Web.Mvc.Ajax 네임스페이스 ... 567
      System.Web.Mvc.Html 네임스페이스 ... 567
      System.Data 네임스페이스 ... 567
   요약 ... 569
찾아보기 ... 571
닫기