장바구니 담기 close

장바구니에 상품을 담았습니다.

제프리 리처의 CLR via C#

제프리 리처의 CLR via C#

  • 제프리 리처
  • |
  • 비제이퍼블릭
  • |
  • 2014-11-25 출간
  • |
  • 1012페이지
  • |
  • 188 X 245 X 13 mm /190g
  • |
  • ISBN 9788994774831
★★★★★ 평점(10/10) | 리뷰(2)
판매가

50,000원

즉시할인가

45,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
45,000

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

CLR과 .NET 개발을 철저하게 마스터하기 위한 완벽 가이드

선도적인 프로그래밍 전문가로서 오랫동안 마이크로소프트 .NET팀을 컨설팅해온 제프리 리처와 함께 CLR, C#, .NET 개발의 난해함을 깊이 있게 조명하고 마스터해보자. 이 책을 통해서 안정적이며, 신뢰할 수 있고, 빠르게 동작하는 응용프로그램과 컴포넌트를 개발하기 위한 실용적인 통찰력을 얻을 수 있을 것이다.

b>이 책에서 다루는 내용
- 응용프로그램과 타입을 빌드, 패키지화하고 배포하는 방법
- 기본 타입, 값 타입, 참조 타입의 동작 방식을 이해하고, 좀 더 효율적으로 사용하는 방법
- 제네릭과 인터페이스를 이용하여 재사용 가능한 알고리즘을 정의하는 방법
- delegate, 사용자 정의 속성, nullable 타입, 배열, 문자열 등의 특별한 CLR 타입을 이용하여 더욱 효율적으로 개발하는 방법
- 관리 힙과 가비지 수집기의 동작 방식
- Serialization과 Deserialization을 이용하여 좀 더 빠르게 서비스를 개발하는 방법
- 스레드 풀, 태스크, cancellation, 타이머, 비동기 함수 등을 이용하여 응답성이 좋고 확장 가능한 응용프로그램 설계
- 상태 관리를 돕기 위한 예외 처리 기법
- CLR 호스팅, 앱도메인, 어셈블리 로딩, 리플렉션을 이용하여 동적으로 확장 가능한 앱 개발 방법
- Windows Runtime(WinRT) 컴포넌트와의 상호 운용

4판에 대해
- .NET Framework 4.5와 최신의 Visual Studio에 맞춰 업그레이드
- Framework Class Library의 핵심 타입 중심
- 멀티 코어 프로그래밍, 제네릭, 스레딩 그 외의 주요 핵심사항에 대해서 전문적으로 해설
- 광범위한 내/외부의 현장 경험을 토대로 실용적인 조언을 공유

독자대상
중급

소스코드 다운로드
http://www.wintellect.com/devcenter/paulballard/clr-via-c-by-jeffrey-richter

출판사 리뷰
이 책의 목적은 .NET Framework 기반의 응용프로그램을 개발하는 방법과 함께, 이 기반 환경에서 재사용 가능한 클래스를 설계하는 방법을 설명하는 것이다. 구체적으로 이야기하면, CLR이 어떻게 작동하며 관련된 내부 구성요소들이 어떤 기능을 제공하는지를 설명하는 것에 주된 목적이 있다. 또한 Framework Class Library(FCL)의 다양한 면모도 설명할 것이다. FCL에 대해서 모두 설명하는 책은 있을 수 없는데, FCL은 지금도 수천 가지의 클래스로 이루어져 있고 계속해서 엄청난 숫자의 클래스가 새로 추가되고 있기 때문이다. 따라서 여기서 다루는 것은 모든 개발자들이 반드시 알아야 하는 핵심적인 클래스들에 대해서만 주로 다룬다. 그리고 이 책은 Windows Forms, Windows Presentation Foundation(WPF), 마이크로소프트 실버라이트, XML 웹 서비스, Web Forms, 마이크로소프트 ASP.NET MVC, 윈도우 스토어 앱 등 여러 분야 중 어느 한 분야에 집중하지는 않지만, 특정 응용프로그램 유형에 종속되지 않으며 활용 가능한 모든 기술에 대해 다루고 있다.

이 책은 Microsoft Visual Studio 2012와 .NET Framework 4.5, 그리고 C# 프로그래밍 언어 버전 5.0을 기준으로 하고 있다. 마이크로소프트는 새로운 버전의 기술들을 배포하면서도 이전 버전과의 호환성을 유지하기 위해 수많은 노력을 기울이고 있기 때문에, 이 책에서 다루는 상당수의 내용들은 이전 버전에서도 거의 대부분 잘 작동하는 내용들이다. 모든 샘플 코드는 여러 가지 기능들을 자유롭게 보이기 위하여 C# 프로그래밍 언어를 사용하여 작성되었다. 하지만 CLR은 여러 프로그래밍 언어에서 사용할 수 있도록 설계되었으므로, 이 책의 내용 중 상당수는 C#이 아닌 다른 프로그래밍 언어에서도 동일하게 적용될 수 있다.

목차

1부. CLR의 기본

1장. CLR의 실행 모델
- 소스 코드를 관리 모듈로 컴파일하기
- 관리 모듈들을 하나의 어셈블리로 통합하기
- 공용 언어 런타임 로딩
- 어셈블리 코드 실행하기
- 네이티브 코드 생성 도구: NGEN.EXE
- 프레임워크 클래스 라이브러리
- 공용 타입 시스템
- 공용 언어 사양
- 비관리 코드와의 상호 운용성

2장. 빌드, 패키징, 배포, 응용프로그램과 타입의 관리
- .NET Framework 배포 목표
- 모듈 안에 타입 만들기
- 메타데이터에 대해 잠시 살펴보기
- 여러 모듈을 하나의 어셈블리로 통합하기
- 어셈블리 버전 리소스 정보
- 문화권
- 단순 응용 프로그램 배포 (개별적으로 배포된 어셈블리)
- 단순한 관리와 설정

3장. 공유 어셈블리와 강력한 이름의 어셈블리
- 두 가지 어셈블리, 두 가지 배포 방법
- 어셈블리를 강력한 이름으로 서명하기
- 전역 어셈블리 캐시
- 강력한 이름의 어셈블리를 참조하는 어셈블리 만들기
- 강력한 이름의 어셈블리로 조작을 방지하기
- 서명 연기
- 강력한 이름의 어셈블리를 개별적으로 배포하기
- 실행 중에 타입에 대한 참조를 어떻게 찾아내는가
- 고급 관리 기능 제어와 설정

2부. 타입 설계

4장. 타입의 기초
- 모든 타입은 System.Object를 상속한다
- 타입 간 캐스팅하기
- 네임스페이스와 어셈블리
- 실행 시점과의 연관성

5장. 기본, 참조, 값 타입
- 프로그래밍 언어의 기본 타입
- 참조 타입과 값 타입
- 박싱된 값 타입과 박싱되지 않은 값 타입
- 객체 해시 코드
- dynamic 기본 타입

6장. 타입과 멤버의 기본
- 타입과 멤버의 기본
- 타입의 가시성
- 멤버 접근성
- 정적 클래스
- 부분 클래스, 부분 구조체, 부분 인터페이스
- 컴포넌트, 다형성, 버전 관리

7장. 상수와 필드
- 상수
- 필드

8장. 메서드
- 인스턴스 생성자와 클래스 (참조 타입)
- 인스턴스 생성자와 구조체 (값 타입)
- 타입 생성자
- 연산자 오버로드 메서드
- 변환 연산자 메서드
- 확장 메서드
- 부분 메서드

9장. 매개변수
- 선택적 매개변수와 명명된 매개변수
- 암시적으로 타입화된 지역변수
- 메서드에 참조로 매개변수 전달
- 메서드에 가변 매개변수 전달하기
- 매개변수 타입과 반환 타입에 대한 지침
- 상수화

10장. 속성
- 매개변수가 없는 속성
- 매개변수가 있는 속성
- 속성의 접근자 메서드 호출에 관한 성능
- 속성 접근자의 한정자
- 제네릭 속성 접근자 메서드

11장. 이벤트
- 이벤트를 노출하는 타입을 설계하기
- 컴파일러가 이벤트를 구현하는 방법
- 이벤트가 기다리는 타입 설계하기
- 명시적 이벤트 구현

12장. 제네릭
- Framework Class Library에서의 제네릭
- 제네릭 하부 구조
- 제네릭 인터페이스
- 제네릭 델리게이트
- 공변성과 반공변성 타입 매개변수를 사용하는 델리게이트와 인터페이스
- 제네릭 메서드
- 제네릭과 기타 멤버들
- 검증 가능성과 제약조건

13장. 인터페이스
- 클래스와 인터페이스 상속
- 인터페이스 정의하기
- 인터페이스 상속하기
- 인터페이스 메서드 호출에 대한 자세한 내용
- 인터페이스 메서드의 암묵적 구현과 명시적 구현 (내부적으로 수행되는 작업)
- 제네릭 인터페이스
- 제네릭과 인터페이스 제약조건
- 같은 메서드 이름과 원형을 가지는 여러 인터페이스 구현하기
- 명시적 인터페이스 구현 메서드로 컴파일 시 타입 안정성 향상시키기
- 명시적 인터페이스 구현 메서드에서 주의해야 할 부분
- 설계 지침: 기본 클래스 혹은 인터페이스

3부. 핵심 타입

14장. 문자, 문자열, 텍스트 사용하기
- 문자
- System.String 타입
- 효율적으로 문자열 생성하기
- 객체에 대한 문자열 표현을 얻어오기: ToString
- 문자열을 객체로 분석하기: Parse
- 인코딩: 문자 배열과 바이트 배열 사이의 변환
- 안전한 문자열

15장. 열거 타입과 비트 플래그
- 열거 타입
- 비트 플래그
- 열거 타입에 메서드 추가하기

16장. 배열
- 배열 요소 초기화하기
- 배열 캐스팅하기
- 모든 배열의 암묵적 부모 타입인 System.Array
- 모든 배열이 암묵적으로 구현하는 IEnumerable, ICollection, IList 인터페이스
- 배열의 전달과 반환
- 시작 인덱스가 0이 아닌 배열 만들기
- 배열의 내부 구조
- 안전하지 않은 배열 사용과 고정 크기 배열

17장. 델리게이트
- 델리게이트 살펴보기
- 정적 메서드에 대한 콜백을 델리게이트로 구현하기
- 인스턴스 메서드에 대한 콜백을 델리게이트로 구현하기
- 델리게이트 파헤쳐보기
- 델리게이트를 사용하여 여러 메서드를 호출하기 (메서드 연결하기)
- 이미 정의되어 있는 델리게이트 활용하기 (제네릭 델리게이트)
- 델리게이트를 위한 C#의 문법적 편의사항
- 델리게이트와 리플렉션

18장. 사용자 정의 특성
- 사용자 정의 특성의 사용
- 사용자 정의 특성 클래스 정의하기
- 사용자 정의 특성의 생성자와 필드/속성의 데이터 타입
- 사용자 정의 특성을 검출하기
- 사용자 정의 특성 인스턴스 간의 비교
- 사용자 정의 특성의 사용 여부를 객체 생성 없이 파악하기
- Conditional 특성 클래스

19장. Null 값 타입
- C#의 Nullable 값 타입에 대한 지원
- C#의 Null 결합 연산자
- CLR의 Nullable 값 타입에 대한 특별한 배려

4부. 핵심 기능

20장. 예외와 상태 관리
- 예외의 정의
- 예외 처리의 구조
- System.Exception 클래스
- FCL에 정의된 예외 클래스
- 예외 발생시키기
- 사용자 정의 예외 클래스 만들기
- 생산성을 위한 신뢰성 재고
- 지침과 모범 사례
- 처리되지 않은 예외
- 예외 디버깅하기
- 예외 처리 시 성능 고려사항
- CER
- 코드 계약

21장. 관리 힙과 가비지 수집
- 관리 힙의 기본
- 세대: 성능 개선을 위한
- 특별한 정리 작업이 필요한 타입 다루기
- 객체의 수명을 수동으로 모니터링하고 제어하기

22장. CLR 호스팅과 앱도메인
- CLR 호스팅
- 앱도메인
- 앱도메인의 언로딩
- 앱도메인의 모니터링
- 앱도메인의 첫째 예외 통지
- 호스트는 앱도메인을 어떻게 사용하는가?
- 고급 호스트 제어

23장. 어셈블리 로딩과 리플렉션
- 어셈블리 로딩
- 동적으로 확장 가능한 응용프로그램을 만들기 위해서 리플렉션을 사용하기
- 리플렉션의 성능
- 애드인을 지원하는 응용프로그램 설계
- 타입 내의 멤버를 찾기 위해 리플렉션 사용하기

24장. 런타임 serialization
- serialization/deserialization 쾌속 시작
- serialize 가능한 타입 정의하기
- serialization과 deserialization 제어하기
- 포맷터는 타입 인스턴스를 어떻게 serialize하는가?
- serialize/deserialize할 데이터 제어하기
- 스트리밍 컨텍스트
- 다른 타입으로 serialize하고 다른 객체로 deserialize하기
- Serialization 대리자
- 객체를 deserialize할 때 어셈블리와 타입을 오버라이딩하기

25장. WinRT 컴포넌트와의 상호 운용
- CLR 프로젝션과 WinRT 컴포넌트 타입 시스템의 규칙
- Framework 프로젝션
- C#으로 WinRT 컴포넌트 정의하기

5부. 스레딩

26장. 스레드의 기본
- 윈도우는 왜 스레드를 지원하는가?
- 스레드의 비용
- 바보짓은 이제 그만
- CLR 스레드와 윈도우 스레드
- 계산 중심의 비동기 작업을 수행하기 위해서 전용 스레드 사용하기
- 여러 스레드를 사용하는 이유
- 스레드 스케줄링과 우선순위
- 포그라운드 스레드와 백그라운드 스레드
- 당면 과제

27장. 계산 중심의 비동기 작업
- CLR의 스레드 풀 소개
- 단순한 계산 중심 작업의 수행
- 실행 컨텍스트
- 협조적 취소와 타임아웃
- 태스크
- Parallel의 정적 For, ForEach, Invoke 메서드
- Parallel LINQ
- 계산 중심 작업을 주기적으로 수행하기
- 스레드 풀이 스레드를 관리하는 방법

28장. I/O 중심의 비동기 작업
- 윈도우 운영체제가 I/O 작업을 수행하는 방법
- C#의 비동기 함수
- 컴파일러가 비동기 함수를 상태 기기로 변환하는 방법
- 비동기 함수의 확장성
- 비동기 함수와 이벤트 핸들러
- 프레임워크 클래스 라이브러리(FCL)내의 비동기 함수
- 비동기 함수와 예외 처리
- 비동기 함수의 다른 기능
- 응용프로그램과 스레딩 모델
- 서버를 비동기로 구현하려면?
- I/O 작업의 취소
- 반드시 동기적으로 수행되어야만 하는 I/O 작업
- I/O 요청의 우선순위

29장. 단순 스레드 동기화 요소
- 클래스 라이브러리와 스레드 안정성
- 단순 유저 모드 동기화 요소와 커널 모드 동기화 요소
- 유저 모드 동기화 요소
- 커널 모드 동기화 요소

30장. 복합 스레드 동기화 요소
- 간단한 복합 스레드 동기화 락
- 스피닝, 스레드 소유권, 중복 소유
- 프레임워크 클래스 라이브러리 내의 복합 동기화 요소
- 잘 알려진 이중 확인 락 기법
- 조건 변수 패턴
- 비동기 동기화
- 컨커런트 컬렉션 클래스

저자소개

저자 제프리 리처 Jeffrey Richter는 더 좋은 소프트웨어를 더 빠르게 수행할 수 있도록 돕기 위한 교육 및 컨설팅 전문 회사인 Wintellect(www.wintellect.com)의 공동 창업자다. 높은 평가를 받고 있는 이전 판과 더불어 『제프리 리처의 Windows via C/C++』과 같은 유명한 서적들을 다수 집필하였다. 상당 기간 Microsoft .NET Framework팀을 컨설팅해왔으며, .NET Framework 4.5의 새로운 비동기 프로그래밍 모델을 함께 개발하기도 하였다.

도서소개

『제프리 리처의 CLR via C#』은 NET Framework 기반의 응용프로그램을 개발하는 방법과 함께, 이 기반 환경에서 재사용 가능한 클래스를 설계하는 방법을 설명한다. CLR이 어떻게 작동하며 관련된 내부 구성요소들이 어떤 기능을 제공하는지를 알려주며 또한 Framework Class Library(FCL)의 다양한 면모도 설명하고 있다. 그리고 이 책은 Windows Forms, Windows Presentation Foundation(WPF), 마이크로소프트 실버라이트, XML 웹 서비스, Web Forms, 마이크로소프트 ASP.NET MVC, 윈도우 스토어 앱 등 여러 분야 중 어느 한 분야에 집중하지는 않지만, 특정 응용프로그램 유형에 종속되지 않으며 활용 가능한 모든 기술에 대해 다루고 있다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.