로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

CLR via C#

 [2nd Edition (한국어판)]
   
지은이 Jeffrey Richter/송기수   |   출판사 정보문화사  |   발행일 2008년 11월 20일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 38,000원34,200원 10%
마일리지 5% 1,900원
발행일 2008-11-20
ISBN 8956744548 |  9788956744544
기타정보 번역서 | 984쪽
예상출고일
배송비 무료배송
   
프로그래밍언어
종합지수 15p 133 위
   
이 책의 원서
  CLR Via C# (2/E)
Microsoft Pr | Jeffrey Richter
주의사항 더이상 출간되지 않습니다.
 

"CLR과 .NET Framework 전문가를 위한 완벽 가이드"
이 책의 목적은 .NET Framework를 이용하여 어떻게 어플리케이션을 구현하는지 그리고 어떻게 클래스를 재활용하는지 설명하는 것이다. 특히 어떻게 CLR이 동작하고 CLR의 기능이 어떻게 제공되는지 중점적으로 설명한다!



[이 책이 다루는 내용]

공용 언어 런타임(CLR)과 .NET Framework의 여러 복잡한 기능을 상세하게 파고들어 마스터해보자. 필자는 최고 수준의 프로그램 전문가이자 Microsoft의 .NET 팀을 컨설팅했으며, 이 책에 포함된 가이드 내용은 모든 종류의 어플리케이션(Microsoft ASP.NET, Windows Forms, Microsoft SQL Server , 웹 서비스와 콘솔 어플리케이션)을 개발하는 개발자들에게 꼭 필요한 내용들로 채워져 있다. 독자는 이 책의 단계별 실습 정보와 C# 코드 샘플을 통해서 각 장의 주요 주제를 쉽게 이해할 수 있을 것이며, 고성능의 어플리케이션을 효과적으로 개발할 수 있을 것이다.
이 책에 포함된 내용 :
  • 어플리케이션, 컴포넌트, 공유 어셈블리의 빌드, 배포, 관리, 버전에 대한 내용
  • 상수, 필드, 생성자, 메서드, 속성, 이벤트를 이용한 타입 디자인
  • 열거형, 배열, 문자열과 같은 CLR의 특수 타입을 이용한 효과적인 작업
  • 콜백 함수를 표현하기 위한 델리게이트의 선언, 생성, 사용
  • 인터페이스와 제네릭을 이용한 재사용 알고리즘의 정의 및 사용
  • 사용자 특성의 정의와 적용
  • 예외 처리를 이용한 강력하고, 견고하면서 안전한 컴포넌트의 빌드
  • 가비지 수집기를 이용한 자동 메모리관리 메커니즘과 네이티브 리소스와의 작업
  • CLR 호스팅, AppDomain, 어셈블리 로딩 그리고 리플렉션을 적용하여 동적 확장 가능한 어플리케이션 디자인
  • 시작하면서
    개발자 플랫폼: .NET Framework
    개발 환경: Microsoft Visual Studio
    이 책의 목표
    시스템 사양과 샘플 코드
    이 책은 잘못된 내용이 전혀 없으며 완벽하다
    감사의 글
    지원


    Part 1
    CLR의 기본 지식


    Chapter 1 공용 언어 런타임(CLR)의 실행 모델
    소스 코드를 관리되는 모듈로 컴파일하기
    관리되는 모듈을 어셈블리 파일로 결합하기
    CLR 로딩
    어셈블리 코드의 실행
    IL과 코드 검증
    안전하지 않은 코드
    네이티브 코드 생성기: NGen.exe
    Framework 클래스 라이브러리 소개
    공용 타입 시스템(CTS)
    공용 언어 사양(CLS)
    비관리 코드와의 상호연동

    Chapter 2 빌드, 패키지, 배포 그리고 어플리케이션과 타입 관리
    .NET Framework 배포
    타입 모듈로 빌드하기
    응답 파일
    메타데이터
    다수의 모듈 어셈블리로 병합하기
    Visual Studio IDE를 이용해서 프로젝트에 어셈블리 추가하기
    어셈블리 링커 사용하기
    어셈블리에 리소스 파일 포함하기
    어셈블리 버전 리소스 정보
    버전 번호
    컬처
    단순 어셈블리 배포(전용 어셈블리)
    단순 관리 제어(설정)

    Chapter 3 공유 어셈블리와 강력한 이름의 어셈블리
    두 종류의 어셈블리, 두 종류의 배포
    어셈블리에 강력한 이름 부여하기
    전역 어셈블리 캐시
    GAC 내부의 구조
    강력한 이름의 어셈블리를 참조하는 어셈블리 만들기
    위․변조가 쉽지 않은 강력한 이름의 어셈블리
    어셈블리 서명 지연
    강력한 이름의 어셈블리를 전용으로 배포하기
    런타임이 형식 참조를 해결하는 방법
    고급 관리 컨트롤(구성)
    배포자 정책 컨트롤


    Part 2
    타입(Type)


    Chapter 4 타입의 기본
    모든 타입은 System.Object로부터 파생된다
    타입들 사이의 변환(형 변환)
    C#에서의 타입 변환(형 변환)과 is, as 연산자
    네임스페이스와 어셈블리
    런타임에는 어떻게 동작할까?

    Chapter 5 기본 형식, 참조 형식 그리고 값 형식
    프로그램 언어 기본 형식
    기본 형식 연산에서 Checked/Unchecked 사용하기
    참조 형식과 값 형식
    값 형식의 박싱과 언박싱
    박싱된 값 형식 필드를 인터페이스로 수정하기(그리고 왜 이것을 이용해서는 안 되는지)
    객체의 등질성과 식별자
    객체 해시 코드


    Part 3
    타입 디자인


    Chapter 6 타입과 멤버
    타입(클래스) 멤버의 종류
    타입의 가시성
    프렌드(Friend) 어셈블리
    멤버 접근 제한자
    정적 클래스
    Partial 클래스, 구조체 그리고 인터페이스
    컴포넌트, 다형성 그리고 버전 관리
    CLR은 가상 함수, 속성, 이벤트를 어떻게 호출하나
    타입의 가시성과 멤버의 접근성을 효과적으로 사용하기
    타입의 버전과 관련하여 가상 함수 다루기

    Chapter 7 상수와 필드
    상수
    필드

    Chapter 8 메서드: 생성자, 연산자, 형 변환 그리고 파라미터
    인스턴스 생성자와 클래스(참조 형식)
    인스턴스 생성자와 구조체(값 형식)
    타입 생성자
    타입 생성자의 성능
    연산자 오버로드 메서드
    연산자와 프로그래밍 언어의 연동
    형 변환 연산자 메서드
    파라미터 참조형으로 메서드에 전달하기
    가변의 파라미터를 메서드에 전달하기
    메서드의 파라미터 타입 선언하기
    상수 메서드와 파라미터

    Chapter 9 속성
    인자 없는 속성
    속성 효과적으로 정의하기
    인자를 포함한 속성
    속성 메서드의 호출 성능
    속성 메서드의 접근성
    제네릭 속성 메서드

    Chapter 10 이벤트
    이벤트를 포함하는 타입(클래스) 디자인
    단계 1: 이벤트 통지를 기다리는 구독자에게 전달될 정보 타입 정의
    단계 2: 이벤트 멤버 정의
    단계 3: 이벤트 구독을 등록한 객체에게
    이벤트를 발생시켜 알려주도록 하는 메서드 정의
    단계 4: 특정 입력 정보를 이벤트로 전달시켜 주는 메서드 정의
    이벤트 구현 방식
    이벤트를 구독하는 타입(클래스) 디자인하기
    이벤트와 스레드 안정성
    명시적 이벤트 등록과 등록 해제
    다수의 이벤트를 정의하는 타입 디자인


    Part 4
    필수적인 타입


    Chapter 11 문자와 문자열, 그리고 텍스트 다루기
    문자
    System.String 타입
    문자열의 생성
    문자열은 고정적이다
    문자열 비교하기
    문자열 보관
    문자열 풀링
    문자열의 문자와 텍스트 요소를 검사하기
    기타 문자열 조작
    동적인 문자열을 생성하는 효과적인 방법
    StringBuilder 객체의 생성
    StringBuilder 객체의 멤버들
    객체를 표현하는 문자열 얻기
    형식과 언어 설정 지정하기
    여러 개의 객체를 하나의 문자열로 형식화하기
    사용자 정의 포맷터 제공하기
    문자열 파싱하여 객체 얻기
    인코딩: 문자와 바이트 간의 변환
    문자와 바이트의 인코딩/디코딩 스트림
    Base-64 문자열 인코딩과 디코딩
    보안상 안전한 문자열

    Chapter 12 열거형 타입과 비트 플래그
    열거형 타입
    비트 플래그

    Chapter 13 배열
    배열의 형 변환
    모든 배열은 묵시적으로 System.Array 타입으로부터 파생된다
    모든 배열은 묵시적으로 IEnumerable, ICollection, IList 인터페이스를 구현한다
    배열을 전달하거나 반환 받기
    인덱스가 0으로 시작하지 않는 배열 만들기
    배열 접근 시의 성능에 대하여
    안전하지 않은 배열 접근과 고정 크기 배열

    Chapter 14 인터페이스
    클래스와 인터페이스 상속
    인터페이스 정의
    인터페이스의 상속
    인터페이스 메서드 호출에 대한 더 자세한 이야기
    인터페이스 메서드의 묵시적 구현과 명시적 구현(그리고 그 이면에서 일어나는 일들)
    제네릭 인터페이스

    제네릭과 인터페이스 제약
    같은 메서드 이름과 시그니처를 갖는 여러 개의 인터페이스 구현하기
    명시적 인터페이스 메서드 구현으로 시 타입 안정성 향상시키기
    명시적 인터페이스 메서드 구현에 있어 주의해야 할 점
    디자인: 기본 클래스 또는 인터페이스?

    Chapter 15 델리게이트





    델리게이트와의 첫 만남
    델리게이트를 이용하여 정적 메서드 호출하기
    델리게이트를 이용하여 인스턴스 메서드 호출하기
    델리게이트에 대한 고찰
    델리게이트를 이용하여 다중 콜백 메서드 호출하기
    델리게이트 체인을 위한 C#의 지원
    델리게이트 체인 호출을 더 세밀히 제어하기
    C#에서의 델리게이트 구문
    축약 문법 #1: Delegate 객체를 생성할 필요가 없다
    축약 문법 #2: 콜백 메서드를 정의할 필요가 없다
    축약 문법 #3: 콜백 메서드의 매개 변수를 굳이 지정할 필요는 없다
    축약 문법 #4: 클래스의 로컬 변수를 콜백 메서드에 전달하기 위해
    이 변수를 수동으로 래핑할 필요는 없다
    델리게이트와 리플렉션

    Chapter 16 제네릭
    Framework 클래스 라이브러리에서 제공되는 제네릭
    윈텔렉트(Wintellect)의 파워 컬렉션 라이브러리
    제네릭 인프라
    개방형과 폐쇄형 형식
    제네릭 타입과 상속
    제네릭 타입 식별
    코드 급증
    제네릭 인터페이스
    제네릭 델리게이트
    제네릭 메서드
    제네릭 메서드와 타입 추정
    제네릭과 다른 멤버들
    검증 가능성과 제약 조건
    주 제약 조건
    보조 제약 조건
    생성자 제약 조건
    다른 검증 가능성 이슈들

    Chapter 17 사용자 지정 특성
    사용자 지정 특성 사용하기
    나만의 사용자 특성 정의하기
    특성 생성자와 필드/속성 데이터 타입
    사용자 특성의 사용 여부를 판단하기
    두 개의 특성 인스턴스 비교하기
    특성 인스턴스를 생성하지 않고 사용자 특성의 사용 여부를 파악하기
    조건부 특성 클래스들

    Chapter 18 Nullable 값 타입
    C#에서의 Nullable 값 타입 지원
    C#의 Null 할당 연산자들
    Nullable 값 타입에 대한 CLR의 특별 지원
    Nullable 값 타입의 박싱
    Nullable 값 타입의 언박싱
    Nullable 값 타입의 GetType 메서드 호출
    Nullable 값 타입의 인터페이스 메서드 호출


    Part 5
    CLR 활용


    Chapter 19 예외
    예외 처리의 혁신
    예외 처리의 구조
    try 블록
    catch 블록
    finally 블록
    공통 언어 명세와 비공통 언어 명세 예외
    구체적으로 예외란 뭔가?
    System.Exception 클래스
    FCL에 정의된 예외 클래스
    예외 생성하기
    자신만의 예외 클래스 정의하기
    예외 올바르게 사용하기
    메서드 인자의 검증
    finally 블록 아낌없이 사용하기
    모든 예외를 처리하지는 말자
    자연스럽게 예외 복구하기
    (처리되지 않은 예외 발생으로 인하여) 완료되지 못한 작업으로부터 복구하기
    “계약”을 유지하기 위해 구체적인 구현 내용 감추기
    예외 처리 관련 성능 문제
    처리되지 않은 예외
    예외 스택 추적
    예외 디버깅

    Chapter 20 자동 메모리 관리(가비지 수집)
    가비지 수집 플랫폼에 의한 기본 동작 이해하기
    관리되는 힙에 리소스 할당하기
    가비지 수집 알고리즘
    가비지 수집 디버깅
    네이티브 리소스를 반환하기 위해서 Finalization 사용하기
    CriticalFinalizerObject 타입을 이용한 Finalization 실행 보장
    SafeHandle 타입과 하위 클래스들
    SafeHandle 타입을 이용한 비 관리 코드의 사용
    관리되는 리소스 반환을 위해서 Finalization 사용하기
    무엇이 Finalize 메서드를 호출하도록 하나
    Finalization의 내부 동작
    Dispose 패턴: 객체 메모리 반환 강요하기
    Dispose 패턴이 구현된 객체/타입 사용하기
    C# 언어의 using 문
    주의해야 할 종속 사항
    객체의 수명 직접 모니터링하고 제어하기
    객체의 부활
    세대(Generations)
    네이티브 리소스를 위한 가비지 수집의 기능
    대용량 메모리를 필요로 하는 작업의 성공 여부 가늠해 보기
    가비지 수집기, 프로그램적으로 제어하기
    기타 가비지 수집기 성능과 관련된 사항
    동기화가 필요 없는 메모리 할당
    확장 가능한 병렬 수집
    동시 진행형 수집
    대용량 객체
    가비지 수집 모니터링

    Chapter 21 CLR 호스팅과 AppDomain
    CLR 호스팅
    AppDomain
    AppDomain간 객체 액세스하기

    AppDomain 언로딩
    호스트에서 AppDomain 이용하기
    콘솔 및 Windows Forms 어플리케이션
    Microsoft 인터넷 익스플로러
    Microsoft ASP.NET의 Web Forms과 XML 웹서비스 프로그램 어플리케이션
    Microsoft SQL Server 2005
    미래 그리고 개발자의 상상
    고급 호스트 제어
    관리되는 코드에 의한 CLR 관리
    강력한 호스트 어플리케이션 구현
    원래의 스레드로 복귀하는 방법

    Chapter 22 어셈블리 로딩과 리플렉션
    어셈블리 로딩
    리플렉션을 이용한 동적 확장 가능한 어플리케이션의 구현
    리플렉션 성능
    어셈블리에 정의된 타입 정보 읽기
    타입 객체는 정확히 무엇인가?
    예외 타입들의 트리 구조를 표현하는 어플리케이션 빌드하기
    타입의 인스턴스 생성하기
    Add-In 기능을 지원하는 어플리케이션 디자인
    리플렉션을 이용해서 타입 멤버 접근하기
    타입 멤버 확인하기
    BindingFlags: 반환되는 멤버 종류 필터링하기
    타입의 인터페이스 정보 구하기
    타입의 멤버 호출하기
    한 번 바인드로 여러 번 호출
    바인딩 핸들을 이용해서 워킹셋 줄이기

    Chapter 23 비동기 작업 수행
    CLR의 Windows 스레드 사용
    효과적인 스레드의 사용
    CLR의 스레드 풀
    스레드 풀의 최대 스레드 개수
    스레드 풀을 이용한 비동기 계산 작업 수행하기
    전용 스레드를 이용한 비동기 계산 작업 수행하기
    비동기 계산 작업 주기적으로 수행하기
    세 가지 종류의 Timer
    비동기 프로그램 모델 소개
    APM을 이용한 비동기 I/O 작업 수행하기
    APM의 세 가지 랑데부(Rendezvous) 테크닉
    APM의 작업 완료 대기 랑데부 테크닉
    APM의 폴링(Polling) 랑데부 테크닉
    APM의 콜백 랑데부 테크닉
    APM을 이용한 비동기 계산 작업 수행하기
    APM과 예외
    APM에 관한 주의할 사항
    실행 콘텍스트

    Chapter 24 스레드 동기화
    메모리 일관성, 휘발성 메모리 액세스 그리고 휘발성 필드들
    휘발성 읽기와 쓰기
    휘발성 필드(Volatile Field)에 대한 C#의 지원
    Interlocked 메서드
    Monitor 클래스와 동기화 블록
    “Great” 아이디어
    “Great” 아이디어의 구현
    Monitor 클래스를 이용하여 동기화 블록 조작하기
    Microsoft가 의도한 동기화 방법
    C#의 lock 문으로 코드 단순화하기
    Microsoft가 의도한 정적 멤버의 동기화 방법
    결국 “Great” 아이디어가 그다지 “Great” 하지 않은 이유
    유명한 DCL 기술
    ReaderWriterLock 클래스
    관리 코드에서 Windows 커널 객체 사용하기
    단일 커널 객체가 신호를 받았을 때의 메서드 호출


    찾아보기
    준비 중입니다.
    깊이 있는 내용이지만...
    심재운님이 쓰신 서평보기 I 평점 I 조회수(1011) I 공감 (0) I 블로그
    처음 접근하는 개발자 분들에게는 매우 어렵게 느껴질 수 있고,말그대로 번역서 이기 때문에 쉽게 이를 풀이해서 기재된 서적은 아니므로 많이 생각하게끔 하는 서적입니다. 이 정도의 깊이의 책이 없기 때문에 아쉽지만, 책 내용이 조금이라도 쉽게 풀이를 해줬다면 훌륭하지 않았을까 생각이 듭니다.
    꽤나 마음에 들었던 책입니다.
    조중필님이 쓰신 서평보기 I 평점 I 조회수(1663) I 공감 (0) I 블로그
    심심풀이로나 쓰던 C#을 조금 본격적으로 알아보려고 선택한 책입니다. 다행히 선택이 그리 나쁘지 않았다고 생각합니다. 책의 내용은 전반적으로 CLR이 어떻게 작동되는가에 대한 설명과 함께 C#에서 보다 효율적인 코딩을 어떻게 할 것인가에 대해 다루고 있습니다. (문법에 대해서도 약간씩 다루고는 있지만 당연히 C# 입문용으로는 쓰실 수 없는 책입니다.) 다소 난해한 내용도 있고 조금씩 부족한 설명이 아쉽습니다만 전반적으론 멋진 책이라 생각되네요.
    마크 러시노...
    크리스 이글...
    마이클 할레...
     
    전체평균(80)
    회원평점   회원서평수 2
    깊이 있는 내용이지만...
    심재운 님  2012-03-26
    꽤나 마음에 들었던 책입니다.
    조중필 님  2009-02-07
    Jeffrey Richter 의 최근 저서
     
    Windows Runtime Via C#
    38,200원
    (22%↓+1%)
     
    Clr Via C#
    65,500원
    (22%↓+1%)
     
    Microsoft Windows 2000 Professional Step by Step Courseware Trainer Pack
    28,600원
    (32%↓+1%)
     
    Clr Via C++/CLI
    62,200원
    (14%↓+1%)
     
    정보문화사 출판사의 신간
    IT 업계에서 살아남기
    알렉스 저
    14,400원
    (10%↓+5%)
     
    뉴노멀 시대를 위한 비즈니스 생존 키워드
    마정산 저
    15,300원
    (10%↓+5%)
     
    회사 실무에 힘을 주는 프리미어 프로
    전혜원 저
    18,000원
    (10%↓+5%)
     
    R 데이터 분석 머신러닝
    조민호 저
    18,000원
    (10%↓+5%)
     
    초보자를 위한 리액트 200제
    이정열 저
    22,500원
    (10%↓+5%)
     
    이메일주소수집거부