본문 바로가기

도서 소개

프로페셔널 엔터프라이즈 닷넷

프로페셔널
엔터프라이즈 닷넷

 

그동안 읽어주신 분들께 감사드립니다. 이 책은 현재 절판되었습니다.
출판사  제이펍
원출판사  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장 테스트 주도 개발)

Arking_FM.pdf
다운로드
엔터프라이즈닷넷_ch04.pdf
다운로드


소스 코드
(원출판사 제공)

Professional Enterprise.NET_Code01.zip
다운로드
Professional Enterprise.NET_Code02.zip
다운로드


도서 구매 사이트
(가나다 순)

강컴    교보문고    도서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 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