프로페셔널
엔터프라이즈 닷넷
그동안 읽어주신 분들께 감사드립니다. 이 책은 현재 절판되었습니다.출판사 제이펍원출판사 Wrox(원서 ISBN 9780470447611)원서명 Professional Enterprise .NET저자명 존 아킹(Jon Arking), 스콧 밀렛(Scott Millett)역자명 장현희출판일 2010년 9월 27일 페이지 608쪽판 형 4*6배판 변형(188*245) 반양장(Soft Cover)정 가 32,000원ISBN 978-89-94506-04-3 부가기호: 13560 시리즈 마이크로소프트 개발자 시리즈 01분 야 프로그래밍 / 닷넷 / C#키워드 엔터프라이즈 아키텍처 / 닷넷 / .NET / 클래스 디자인 / 역할의 분리 / 재사용성 / 유지보수성 / 리팩토링 / 테스트 주도 개발 / 제어 역행화 기법 / 미들웨어 / 프론트 엔드 / MVP 패턴 / MVC 패턴관련 사이트
■ 아마존 원서 소개 페이지■ Wrox 원서 소개 페이지■ 원서 소스 코드 다운로드 페이지■ 저자 스콧 밀렛의 블로그■ 옮긴이 블로그
관련 포스트
■ 2010/09/16 - [출간전 책소식] - 엔터프라이즈 개발을 위한 최고의 가이드!
정오표 페이지
■ 원서 정오표 페이지■ 번역서 정오표 페이지(등록되는 대로 링크를 걸어드리겠습니다)
샘플 챕터(앞부속물과 4장 테스트 주도 개발)
소스 코드(원출판사 제공)
도서 구매 사이트(가나다 순)강컴 교보문고 도서11번가 리브로 반디앤루니스 알라딘 영풍문고 예스24 인터파크
도서 소개보다 유연하고, 테스트가 용이하며, 확장 가능한 엔터프라이즈 시스템 코드를 작성하자!
엔터프라이즈 개발을 위한 최고의 가이드!
최근 여러 산업 분야에서 보다 효율적이고 유지보수가 용이한 코드를 통해 비용을 절감하고자 하는 차원에서 엔터프라이즈 디자인에 대한 투자가 이루어지고 있다. 그러나 잘 디자인되고 기존의 시스템과 잘 융화되도록 구현된 애플리케이션을 시장에서 원하는 시점에 출시하는 것은 경험이 풍부한 개발자에게도 무척 어려운 일이다. 이 책은 최신의 엔터프라이즈 개발 패턴과 방법론을 통해 코드를 보다 명확하고 유지보수가 용이하도록 작성하기 위한 최고의 지침서이다. • 엔터프라이즈 개발의 철학과 코딩 패턴 및 엔터프라이즈 시스템에서 일반적으로 사용되는 디자인 패턴에 대해 설명한다.• 코드를 느슨하게 결합하며 테스트가 용이한 형태로 구성하는 여러 가지 방법을 보여준다. • 제어 역행화 컨테이너, NHibernate 및 ASP.NET MVC 등과 같은 개발 지원 도구들의 장단점을 살펴보고 궁극적으로 가장 적절한 시스템 디자인을 이끌어 낸다. • NUnit이나 Rhino Mocks와 같은 도구를 이용하여 단위 테스트를 작성하고 자동화하는 방법을 보여준다. • 데이터 액세스 계층의 역할을 설명하고 영속성 관리 방법론에 대해 소개한다.추천의 글엔터프라이즈 아키텍처와 개발 기법이 무엇인가라는 의문으로부터 시작되는 이 책은 저자들의 많은 고민과 최신 기술 흐름들에 대해 먼저 말하고 있다. 윤색한 역자의 글을 따라가다 보면 자연스럽게 엔터프라이즈에 대한 것을 이해하고 사용할 수 있게 되어버리는 자신을 발견할 수 있을 것이다. 엔터프라이즈 시스템을 위한 기법들인 테스트 주도 개발, 의존성 주입, 단위 테스트, 도메인 주도 디자인, 프론트 엔드 패턴 등을 모두 포괄하며, 하나씩 상세하게 일러주고 코드를 통해 이해시켜 준 다음에 핵심가치를 위한 4가지의 원칙으로 구성할 수 있는 통합 실습으로 독자 스스로의 공부에 마침표가 되어준다.다양한 디자인 패턴과 이 패턴들이 모여서 이루게 되는 엔터프라이즈 시스템을 설계하고 구현할 수 있는 능력을 탐하는 .NET 개발자에게 강하게 추천하고자 한다.서동진_(주)넥슨 개발팀장Microsoft ASP.NET MVP, 훈스닷넷 시삽옮긴이 머리말 중에서(중략) 본론으로 들어가서 이 책은 소프트웨어 개발자가 하나의 소프트웨어를 구현해 나가는 데 필요한 배경 지식부터 범용적으로 활용되는 디자인 패턴과 그 사례, 그리고 완성된 소프트웨어까지 총망라하고 있다. 저자가 말했듯이 이 책은 처음부터 끝까지 정독을 해도 되고 어느 정도 수준에 오른 개발자라면 그저 옆에 두고 필요한 부분만 골라 읽어도 된다. 중요한 것은 한 장 한 장 읽어가면서 그 내용을 완벽하게 이해하고 실무에 적용하도록 노력해야만 한다는 점이다. 비단 이 책에만 해당되는 것은 아니겠지만 그렇게 함으로써 여러분은 이 책이 가진 가치를 피부로 느끼게 될 것이다. 지금까지 10권이 넘는 책을 집필/번역해온 역자에게 있어 이 책은 지금까지 역자가 출간해온 책 중에 가장 가치 있고, 영향력 있으며, 오래도록 소장하고픈 가치 있는 책이다. (중략)이 책이 다루는 것들이 책은 대중적인 소프트웨어 개발 패턴과 방법론에 대해 소개하는 책이며, 이러한 패턴과 방법론을 마이크로소프트 애플리케이션 개발에 대한 경험을 가진 독자, 특히 C#과 ASP.NET 개발 경험을 가진 개발자들을 위주로 소개한다. 이 책은 엔터프라이즈에 필요한 모든 내용들을 소개하는 책은 아니다. 엔터프라이즈 디자인은 너무나도 광범위한 주제이며, 각각의 하위 주제만으로도 책 한 권 분량은 족히 넘는 것들이다. 대신 이 책은 유용하게 활용할 수 있는 광범위한 주제들을 포괄적인 시각에서 다룬다. 테스트 주도 개발이나 미들웨어 디자인 패턴 혹은 ASP.NET에서의 웹 MVC 패턴의 활용 등과 같은 주제에 관심이 있는 독자라면 이러한 주제들을 전문적으로 다루는 다른 서적을 참고하기를 권한다. 이 책은 엔터프라이즈 개념에 대한 설명을 거쳐 테스트 가능한 코드를 작성하는 방법론과 디자인 패턴에 대한 소개로 시작하기 때문에, 여러분은 코드를 느슨하게 결합시키며 테스트 가능한 형태로 구성할 수 있는 조금 다른 방법에 익숙해지게 될 것이다. 그런 후에는 Spring.NET이나 NHibernate, ASP.NET MVC 등 이러한 방법론들이 적용된 다양한 도구에 대해 학습하게 된다. 이러한 주제들을 조합함으로써 개발자들이 서로 다른 패턴을 결합하여 활용하는 방법을 학습할 수 있도록 하며, 궁극적으로는 개발자들은 자신들의 작업에 가장 적합한 것들을 찾아낼 수 있게 된다. 이 책은 이야기를 전개해 나가는 스타일이지만 엔터프라이즈 개발자가 되고자 하는 독자들에게는 유용한 참고서적이 될 수 있다. 이 책의 각 장들은 읽는 순서에 관계없이 읽을 수 있도록 독자적인 내용들로 구성되어 있다.이 책의 대상 독자이 책은 대중적인 소프트웨어 개발 패턴과 방법론에 대해 소개하는 책이며, 이러한 패턴과 방법론을 마이크로소프트 애플리케이션 개발에 대한 경험을 가진 독자, 특히 C#과 ASP.NET 개발 경험을 가진 개발자들을 위주로 소개한다. 이 책의 구성이 책은 단계별 학습 가이드이자 지속적으로 참고할 수 있는 두 가지 역할을 모두 제공하는 책이다. 이 책은 개별적인 섹션으로 분리되어 독자는 전체 내용을 모두 읽거나 혹은 필요한 부분만 골라서 읽을 수 있다. 이 책의 첫 번째 파트에서는 엔터프라이즈 개발에 내포된 철학에 대해 설명한다. 두 번째 파트에서는 코딩 패턴에 대해 심도 있게 학습한다. 이 과정에서 느슨한 결합의 개념과 기존의 코드를 분리하는 최적의 방법, 그리고 테스트 주도 디자인의 이점에 대해 학습하게 된다. 세 번째 파트에서는 엔터프라이즈 시스템에서 사용되는 보다 일반적인 디자인 패턴들을 광범위하게 다룬다. 이 과정에서는 미들웨어를 구축하기 위한 보편적인 방법과 데이터의 최소화 및 영속성 기법, 엔터프라이즈 UI 디자인의 배경 등에 대해 학습한다. 각 장의 내용들은 먼저 주제에 대해 설명한 후 관련된 코드 예제를 살펴보는 형식으로 진행된다. 코드 예제는 한 장의 내용만으로 구성되기도 하지만 보다 완성도 높은 시스템을 구현하기 위해 몇 개의 장에 걸쳐 구현되기도 한다.저자 소개
존 아킹(Jon Arking)존 아킹은 필라델피아에서 근무하는 엔터프라이즈 소프트웨어 아키텍트이다. 그는 다계층 시스템 디자인, 개발 및 관리를 14년 이상 해왔으며, 특히 시스템 마이그레이션과 분산 아키텍처 디자인 전문가이기도 하다. 존은 여러 언어와 플랫폼 상에서 프로그래밍을 경험했으며, 시스템 디자인과 팀 관리, 강의, 집필 및 인터뷰 활동, 기술적인 주제를 다루는 서적의 출간 등 다양한 경력을 쌓아왔다. 그가 운영하는 아킹 테크놀러지(Arking Technologies)는 필라델피아 지역의 대기업을 위한 엔터프라이즈 시스템 디자인 전문 회사이다.스콧 밀렛(Scott Millett)스콧 밀렛은 영국 남부 포츠머스의 사우스시에 거주하고 있으며, 사이클과 철인 3종 경기에 특화된 전자상거래 회사인 Wiggle.co.uk의 중견 개발자로 근무하고 있다. 그는 .NET 1.0 시절부터 프로그래밍을 해왔으며, 마이크로소프트 공인 웹 개발자(Microsoft Certified Professional Web Developer) 자격을 보유하고 있기도 하다. ASP.NET 포럼의 정식 기고자이며, .NET 개발을 하거나 .NET 개발과 관련된 글을 쓰는 외에는 글래스턴베리에서 음악을 즐기고 있거나 혹은 여름에는 영국의 주요 음악 페스티벌에 참석하고 있는 그를 발견할 수 있다. 스콧과 이 책, 그리고 .NET과 관련된 모든 질문과 영국의 음악 페스티벌에 대한 이야기를 나누고 싶다면 언제든지 scott@elbandit.co.uk로 메일을 보내거나 그의 블로그 www.elbandit.co.uk/blog를 방문해 보기 바란다.옮긴이 소개
장현희CJ인터넷과 마이스페이스 한국 지사를 거쳐 현재 국내 최고의 원격지원 솔루션 개발업체인 알서포트(주)의 웹개발 팀장으로 근무 중인 역자는 마이크로소프트 ASP.NET MVP로서 5년간 활동해 왔으며, 10여 권의 .NET 관련 도서를 집필/번역을 하였고 다수의 .NET 관련 세미나에서 강사로도 활동해 왔다. ASP.NET MVC와 .NET 오픈 소스 프로젝트에 많은 관심을 기울이고 있으며, 최근에는 엔터프라이즈 웹 아키텍처 및 패턴에 대한 연구와 학습에 많은 시간을 보내고 있다. MVP 매거진(http://www.mvpmagazine.net)이라는 블로그를 운영 중에 있으며, 온라인 상에서는 ‘웹지니’란 필명으로 더 유명하다. 최근에는 트위터(@webgenie)를 통해 다른 개발자들과의 소통에도 신경 쓰고 있다.
차 례CHAPTER 1 :: 엔터프라이즈 디자인
엔터프라이즈 아키텍처란 무엇인가? 5엔터프라이즈 개발이란 무엇인가? 7 신뢰성 8 유연성 8 역할의 분리 9 재사용성 9 유지보수성 9마이크로소프트의 엔터프라이즈 기술은 어디에 있는가? 11 COM 13 자바로의 이동 14 .NET 15요약 19
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 :: 간결한 코드를 위한 제어 역행화 기법 의존 객체의 생성 169Factory 패턴 178Service Locator 182제어 역행화와 IoC 컨테이너 185의존성 주입과 제어 역행화의 비교 187 IoC 컨테이너의 선택 187StructureMap 프레임워크 192 Fluent Interface 패턴을 이용한 객체 연결 193 Plugin Family 특성을 이용한 객체 연결 197 메타 데이터를 이용한 객체 연결 201XML이냐 아니냐, 그것이 문제로다 204 다른 IoC 프레임워크들 205요약 206
CHAPTER 6 :: 미들웨어 구축하기
미들웨어에서는 어떤 일이? 211혼돈의 시대 212계층적 디자인 213인터넷 시대 215엔터프라이즈 미들웨어의 시대 218WCF 웹 서비스 221메시징 모델 233SOA에 대한 단상 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 다형성과 추상화 560C#과 웹 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
'도서 소개' 카테고리의 다른 글
입문자를 위한 아이폰 게임 개발 (8) | 2010.12.31 |
---|---|
마로의 꿈: 액션스크립트 3.0으로 배우는 소셜 게임 프로그래밍 (21) | 2010.12.21 |
프로페셔널 안드로이드 2 애플리케이션 개발 (39) | 2010.09.18 |
안드로이드 2 마스터 북 (27) | 2010.07.14 |
핵심만 골라 배우는 스마트폰 웹 개발 (11) | 2010.06.16 |