책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > .NET > C#
· ISBN : 9788994774831
· 쪽수 : 1012쪽
· 출판일 : 2014-11-25
책 소개
목차
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장. 복합 스레드 동기화 요소
- 간단한 복합 스레드 동기화 락
- 스피닝, 스레드 소유권, 중복 소유
- 프레임워크 클래스 라이브러리 내의 복합 동기화 요소
- 잘 알려진 이중 확인 락 기법
- 조건 변수 패턴
- 비동기 동기화
- 컨커런트 컬렉션 클래스