C# - 해당되는 글 5건

 

제프리 리처의 CLR via C#, 4

 

저자 제프리 리처

역자 김명신, 남정현

출판사 비제이퍼블릭

출간예정 20141125()

 

정가 50,000

페이지 1,012

판형 188 x 245

ISBN 978-89-94774-83-1 (93000)

원서정보 CLR via C#, Fourth Edition 아마존닷컴에서 보기


예약구매 바로가기


 

책 소개

 

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

 

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

 

이 책에서 다루는 내용

 

- 응용프로그램과 타입을 빌드, 패키지화하고 배포하는 방법

- 기본 타입, 값 타입, 참조 타입의 동작 방식을 이해하고, 좀 더 효율적으로 사용하는 방법

- 제네릭과 인터페이스를 이용하여 재사용 가능한 알고리즘을 정의하는 방법

- 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

 

 

저자 소개

 

제프리 리처 Jeffrey Richter

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

 

 

역자 소개

 

김명신

 

마이크로소프트의 기술을 좀 더 많은 사람들이 올바르게 이해하고 사용하기를 바라는 마음으로 한국 마이크로소프트 개발자 및 플랫폼 총괄 부서의 수석 에반젤리스트로 일하고 있다. 이전에는 마이크로소프트의 아태지역 글로벌 핵심 개발자 지원팀 수석 엔지니어였으며, 다년간 C++ C# 분야의 Microsoft MVP이기도 하였다. Advance C Programming, Unix System V』 등을 집필하고, Effective C#: 강력한 C# 코드를 구현하는 개발지침 50가지』와 이 책의 저자가 쓴 『제프리 리처의 Windows via C/C++』을 번역하기도 하였다. 분산 컴퓨팅 아키텍처, 대용량 네트워크 프로그래밍, 프로그래밍 방법론, 소프트웨어 공학 등 다양한 분야에 두루 관심이 많고, 개발자 대상의 다양한 컨퍼런스에 단골 발표자로 참가하고 있어서 쉽사리 만나볼 수 있는 쉬운 남자다. 최근에는 폴리글랏의 유행에 편승하여 이런저런 언어들을 다시 공부하고 있다. 내일부터 운동해야지 라는 말을 10년째 반복하고 있으며, 최근에는 30년간 공부한 걸 어디다가 써먹을 수 있을지 다시금 고민을 시작하였다.

 

E-MAIL: himskim@msn.com

Facebook/twitter: himskim

 

남정현

 

어린 시절부터 컴퓨터 프로그래밍에 입문하여 아직까지도 많은 것을 배우려고 노력하고 새로운 것에 열광하는 플랫폼 개발자로 ()자이닉스에서 국내외 주요 유명 대학교에서 절찬리에 사용 중인 웹 기반 CMS솔루션을 개발하는 일을 맡고 있다. Microsoft Azure의 주요 서비스 중 하나인 SQL Database에 대한 입문 도서인 Pro SQL Azure, Microsoft WebMatrix 활용 레시피에 대한 도서, 모바일 웹/앱 개발 도서 등을 출간하였다. 수년간 Microsoft MVP로 활동하고 있으며 현재는 클라우드 컴퓨팅 플랫폼의 한 형태인 PaaS 기술에 많은 관심과 시간을 투자하고 있다. 20대 후반을 보내는 요즈음 더 멋지고 더 익사이팅한 삶을 찾기 위하여 매일 고민하고 있으며, 기술자들과의 만남에서 큰 즐거움을 느끼며 지속 가능한 커뮤니티 활동을 위해 늘 고민하고 있다.

 

블로그: http://www.rkttu.com/

E-MAIL: rkttu@outlook.com

Facebook/Twitter: rkttu

 

 

목차

 

 

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. 복합 스레드 동기화 요소

- 간단한 복합 스레드 동기화 락

- 스피닝, 스레드 소유권, 중복 소유

- 프레임워크 클래스 라이브러리 내의 복합 동기화 요소

- 잘 알려진 이중 확인 락 기법

- 조건 변수 패턴

- 비동기 동기화

- 컨커런트 컬렉션 클래스

 

 

출판사 리뷰

 

이 책의 목적은 .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#이 아닌 다른 프로그래밍 언어에서도 동일하게 적용될 수 있다.

 

Trackback 0 | Comment 0

 

 

찰스 페졸드

Programming Windows, 6

: C# XAML을 이용한 윈도우 앱 개발

 

저자 찰스 페졸드

역자 여동준, 윤병걸, 이길복, 최정우

 

출간예정일 20131225()

정가 52,000

페이지 1,261

판형 190 * 245

ISBN 978-89-94774-55-8 (93000)

 

원서정보 Programming Windows, Sixth Edition: Writing Windows 8 Apps with C# and XAML

예약판매 [YES24]  [인터파크]

 

 

 

책 소개

 

찰스 페졸드의 C# XAML을 사용한 윈도우 앱 개발

 

새로운 윈도우와 발맞추어, 이번 6판에서는 프로그래밍과 사용자 경험의 장을 완전히 새로 재구성했다. 전설적인 개발자의 『찰스 페졸드의 Programming Windows, 6판』과 함께 이미 알고 있는 C# 기술과 새로운 윈도우 런타임을 이용한 터치 기반의 윈도우 앱을 만드는 법을 배워보자.

 

 

기본을 마스터한다

 

- 코드와 XAML을 이용해 객체를 생성하고 초기화한다

- 탭과 같은 사용자 입력 이벤트를 다룬다

- 동적 레이아웃을 다루고 사용한다

- 컨트롤의 외양을 시각적으로 재정의한다

- 윈도우 런타임 라이브러리를 생성한다

- 데이터 바인딩과 제어를 위해 MVVM을 사용한다

- 비동기 메서드를 사용하고 스스로 만든다

- 애니메이션 전환기법을 익히고 2D, 3D 효과를 생성한다

- 해상도, 스케일링, 네비게이션을 다룬다

 

 

기술과 앱을 확장한다

 

- 포인터, 조작, , 홀딩 등의 이벤트를 다룬다

- 비트맵과 리치텍스트를 다룬다

- GPS와 방향센서를 사용한다

- Win32* DirectX* 기능들을 사용한다

- 공유, 검색, 인쇄 기능을 활성화한다

 

 

6판에서는

 

- 윈도우 8을 위해 완전히 새로 작성

- C# XAML, 윈도우 런타임을 활용한 앱개발에 초점

- Part I 기본편에서 기본적인 스킬을 배울 수 있음

- Part II 고급편에서 확장된 윈도우 앱 개발 기술을 다룸

- C# C++로 샘플코드를 제공

 

 

독자 대상

 

이 책을 집필하면서 필자는 여러분, 즉 독자에 대한 몇 가지 가정을 했다. 첫 번째는 여러분이 C# 언어를 다루는 데 있어서 친숙하다는 점이다. 만약 그렇지 않다면 C# 튜토리얼을 병행하면서 보충하기를 바란다.

 

두 번째는 여러분이 가장 기본적인 XML 문법에 대해서 알고 있다는 가정이다. 그 이유는 XAML 이 결국 XML에 기반을 두고 있기 때문이다. 하지만 여러분이 XAMLXAML 기반의 개발 인터 페이스와는 친숙하지 않다고 가정한다.

 

 

샘플코드 다운로드

 

http://examples.oreilly.com/9780735671768-files/

 

 

이 책에서 중요하게 다루는 사항들

 

이 책에서는 윈도우 스토어 용도의 응용 프로그램을 개발하는 데 초점을 맞출 것이다. 이미 충분히 많은 다른 책들이 Win32 데스크톱 응용 프로그램 개발에 대해 소개를 하고 있다. 물론 가끔 Win32 API와 데스크톱 응용 프로그래밍 기법을 참고하겠지만, 이 책은 순수하게 새로운 윈도우8 응용 프로그램의 개발 방법을 알리는 데 그 목적이 있다.

 

이러한 응용 프로그램을 개발하기 위해 새로운 객체 지향적인 API가 소개되었는데, 이름하여 윈도우 런타임 혹은 WinRT라고 불린다. (ARM 프로세서 기반에서 작동하는 윈도우 8을 지칭하는 윈도우 RT WinRT를 혼동하지 말자.) 내부적으로 윈도우 런타임은 COM(컴포넌트 객체 모델)을 기반으로 하고 있으며, 인터페이스는 메타데이타 파일을 통해 외부로 노출된다. 여기서 언급한 메타데이타는 .winmd 확장자를 가지며 /Windows/System32/WinMetadata 디렉터리에 위치한다. 따라서 외부적으로 봤을 때에는 상당히 객체 지향적이다.

 

대부분의 윈도우 8 응용 프로그램들은 코드뿐만 아니라 마크업을 통해서도 개발된다. 이 마크업은 산업 표준인 하이퍼텍스트 마크업 언어(HTML) 또는 마이크로소프트의 확장 가능한 마크업 언어(XAML)를 지원한다. 응용 프로그램을 코드와 마크업으로 구분하는 것의 한 가지 장점은 잠재적으로 응용 프로그램의 개발 과정에서 프로그래머와 디자이너의 역할을 분리할 수 있다는 것이다.

 

현재 윈도우 8 응용 프로그램을 개발하는 방법에는 세 가지 핵심 선택 사항들이 있다. 각각의 선택 사항들은 프로그래밍 언어와 마크업 언어로 구성되어 있다.

 

- C++ XAML

- C# 또는 비주얼 베이직과 XAML

- 자바스크립트와 HTML5

 

윈도우 런타임은 모든 세 가지의 선택 사항에 대해 공통적이지만 특정 언어에 적합한 다른 프로그래밍 인터페이스에 의해서도 보충할 수 있다. 물론 단일 응용 프로그램 내에서 여러 개의 언어를 섞어서 사용할 수는 없지만, 윈도우 런타임 컴포넌트라는 라이브러리를 생성하여 자체적인 .winmd 파일을 갖고 다른 윈도우 8 언어들이 접근할 수 있게끔 해준다.

 

수많은 고민을 하고 (비록 고통스러웠지만) 필자는 이 책의 거의 대부분을 C# XAML에 집중하여 소개하기로 결정했다. 거의 10년 가량 필자는 개발 및 디버깅에 있어서 매니지드 언어가 갖는 장점에 대해 확신을 가졌으며, 또한 C#이 윈도우 런타임을 사용하기에 가장 적합한 언어라고 느꼈기 때문이다. 한 가지 소망하는 바는 C++ 프로그래머들이 C# 언어를 쉽게 이해하고 이 책으로부터 많은 부분을 얻을 수 있기를 바란다.

 

또한 필자는 한 가지 언어에 집중하는 것이 동일한 구조를 여러 개의 언어로 소개하는 것보다 훨씬 가치가 있다고 믿는다. 게다가 다른 선택 사항을 사용하여 윈도우 8 응용 프로그램을 작성하는 방법을 소개하는 다른 책들이 충분히 출판되리라 믿어 의심치 않는다.

 

 

저자소개

 

찰스 페졸드

 

찰스 페졸드는 25년간 윈도우 프로그래밍에 관한 저술을 해왔다. Windows Pioneer 어워드의 수상자인 그는 전통적인 Programming Windows 시리즈의 저자이며 그의 수십권에 달하는 저서들은 많은 호평을 받고 있다.

 

 

역자소개

 

여동준

 

Exchange OCS 기반의 UC 구축 프로젝트를 수행했고, 개발 및 운영 업무를 담당하다가 2012년부터 다수의 Sharepoint 기반의 시스템 개발 프로젝트를 수행했다. 현재 Sharepoint 개발에 전념하고 있으며 IT 기술 전문가 그룹 GoDev Windows/Sharepoint 전문가로 활동중이다.

 

 

윤병걸

 

()휴즈플로우에서 XAML C# 기반으로 진행하는 다수의 프로젝트에 참여했고, 커뮤니티 훈스닷넷에서 2년간 시삽으로 활동하며 다수의 세미나와 강의를 진행했다. 2013년에 마이크로소프트에서 기술 전문가들에게 수여하는 MVP Award를 수상하였으며, 현재는 런던에서 어학연수 중이다.

 

 

이길복

 

2007 ()휴즈플로우를 공동 창업하여 CTO를 맡아오고 있다. ()휴즈플로우를 XAML 기반의 기술인 실버라이트, WPF, 윈도우폰 앱 개발에 전문적인 기업으로 키우는 한편 강연자, 강사로 활동하며, 마이크로소프트에서 수여하는 관련분야의 MVP Award 2008년부터 6년 연속 수상해왔다.

 

 

최정우

 

 ()이피언스에서 Lotus Domino 개발자로 6년의 경력을 쌓았고 2006년부터 닷넷플랫폼 기반의 각종 개발을 하고 있다. SharePoint Korea 커뮤니티 리더 중의 한 사람이며, SharePoint 분야 MVP 4년째 수상하고 있다. 현재 SK C&C에 재직중이며, 그룹웨어 구축 프로젝트를 수행하고 있다.

 

 

목차

 

PART I. 기본편

 

1장 마크업과 코드

- 첫 번째 프로젝트

- 그래픽을 이용한 인사말

- 다양한 텍스트 처리

- 미디어 파일

- 코드로 대체하기

- 코드로 이미지 다루기

- 페이지조차 없는 응용 프로그램

 

2 XAML 문법

- 코드로 그라데이션 브러쉬 다루기

- 속성 엘리먼트 문법

- Content 속성

- TextBlock의 콘텐츠 속성

- 브러쉬 공유하기

- 리소스는 공유된다

- 벡터 그래픽

- Viewbox로 늘이기

- 스타일

- 데이터 바인딩 맛보기

 

3장 기본적인 이벤트 처리

- Tapped 이벤트

- 라우트된 이벤트 처리

- Handled 설정 재정의하기

- 입력, 맞춤, 배경

- 크기와 방향 변경하기

- Run 객체 바인딩

- 타이머와 애니메이션

 

4장 패널

- Border 엘리먼트

- Rectangle Ellipse

- StackPanel

- 가로로 쌓기

- 바인딩과 컨버터를 쓰는 WhatSize

- ScrollViewer 해결책

- 이상하거나 정상인 레이아웃

- E-Book 만들기

- 더 화려한 StackPanel 아이템들

- UserControl에서 파생하기

- 윈도우 런타임 라이브러리 생성하기

- Wrap으로 대체하기

- Canvas와 연결된 속성

- Z-Index

- Canvas의 기묘함

 

5장 컨트롤 상호작용

- 컨트롤과 엘리먼트의 차이

- 범위를 위한 Slider

- Grid

- 방향과 화면비

- Slider와 서식 있는 문자열 컨버터

- 툴팁과 변환

- 슬라이더로 스케치하기

- 다양한 버튼 활용

- 종속속성의 정의

- RadioButton 태그

- 키보드 입력과 TextBox

- 터치와 썸컨트롤

 

6 WinRT MVVM

- 간소하고 단순한 MVVM

- 데이터 바인딩 알림

- ColorScroll에 대한 뷰 모델

- 문법적 단축키

- DataContext 속성

- 바인딩과 TextBox

- 버튼과 MVVM

- DelegateCommand 클래스

 

7장 비동기성

- 스레드와 사용자 인터페이스

- MessageDialog 사용하기

- 람다 함수로서의 콜백

- 놀라운 await 연산자

- 비동기 작업 취소하기

- 파일 입출력에 대한 접근

- 파일 선택기(File Pickers)와 파일 입출력

- 예외 다루기

- 비동기 호출 통합하기

- 간소화된 파일 입출력

- 응용 프로그램 수명 주기 이슈들

- 여러분의 비동기 메서드

 

8장 앱 바와 팝업

- 컨텍스트 메뉴 구현하기

- Popup 대화창

- 앱 바

- 앱 바 버튼 스타일

- Segoe UI Symbol 폰트의 내부

- 앱 바의 CheckBox RadioButton

- 메모장을 위한 앱 바

- XamlCruncher 소개

- 응용 프로그램 설정과 뷰 모델들

- XamlCruncher 페이지

- XAML 해석하기

- XAML 파일 입출력

- 설정 대화창

- 윈도우 런타임을 넘어

 

9장 애니메이션

- Windows.UI.Xaml.Media.Animation 네임스페이스

- 애니메이션 기초

- 애니메이션 변화 감상

- 기타 더블형 실수 애니메이션

- 연결된 속성 움직이기

- 감속 함수들

- 모든 XAML 애니메이션

- 사용자 정의 클래스 움직이기

- 키 프레임 애니메이션

- Object 애니메이션

- 미리 정의된 애니메이션과 변이

 

10장 트랜스폼

- 개요

- 회전(수동과 자동)

- 비주얼 피드백

- 이동

- 트랜스폼 그룹

- 스케일 트랜스폼

- 아날로그 시계 만들기

- 왜곡

- 입장 효과 만들기

- 트랜스폼 수학

- 합성 트랜스폼

- 기하학적 트랜스폼

- 브러쉬 트랜스폼

- 엘리먼트의 위치

- Projection 트랜스폼

- Matrix3D 파생하기

 

11장 세 가지 템플릿

- 버튼 내부의 데이터

- XAML에서 제어문 구현하기

- 컬렉션 컨트롤과 DataTemplate의 실제 사용 방식

- 컬렉션과 인터페이스

- 탭과 선택

- 패널과 가상화 패널

- 사용자 정의 패널

- 항목 템플릿으로 막대 그래프 구현하기

- FlipView 컨트롤

- 기본적인 컨트롤 템플릿

- 비주얼 스테이트 매니저

- generic.xaml 사용하기

- 템플릿 파트

- 사용자 정의 컨트롤

- 템플릿과 항목 컨테이너

 

12장 페이지와 탐색

- 화면 해상도

- 배율

- 스냅 뷰

- 화면 전환

- 간단한 페이지 탐색

- 백스택 활용하기

- 탐색 이벤트와 페이지 복원

- 응용 프로그램 상태 저장 및 복원

- 탐색 가속기 키와 마우스 버튼

- 데이터 전달 및 반환

- 비주얼 스튜디오 표준 템플릿

- 뷰 모델과 컬렉션

- 항목을 그룹으로 나누기

 

PART II. 고급편

 

13장 터치, 기타

- Pointer 로드맵

- 핑거 페인팅 시작하기

- 포인터 캡처하기

- 팝업 메뉴를 써서 수정하기

- 압력 감도

- 테이퍼 부드럽게 만들기

- 그림 저장하기

- 현실적이면서 비현실적인 핑거 페인팅

- 터치 피아노

- 조작, 손가락 엘리먼트

- 관성 이용하기

- XYSlider 컨트롤

- 중심을 기준으로 한 크기조정과 회전

- 한 손가락 회전

 

14장 비트맵

- 픽셀 비트

- 투명도와 Premultiplied alpha

- 방사형 그라데이션 브러쉬

- 이미지 파일의 로딩과 저장

- 포스터화와 단색화

- -핑거 페인트 작품 저장하기

- HSL 색상 선택

- 반전그림 그리기

- 사진 라이브러리 접근하기

- 카메라 사진 캡처하기

 

15장 네이티브로 개발하기

- P/Invoke 소개

- 작은 도움

- 시간대 정보

- DirectX를 위한 윈도우 런타임 컴포넌트 래퍼

- DirectWrite와 폰트

- 설정과 플랫폼

- 폰트 메트릭 해석하기

- SurfaceImageSource 위에 그리기

 

16장 서식 있는 텍스트

- 전용 폰트

- Glyphs 엘리먼트 맛보기

- 로컬 저장소에 있는 폰트 파일

- 타이포그래피 개선하기

- RichTextBlock 클래스와 Paragraph 엘리먼트

- RichTextBlock 엘리먼트 선택하기

- RichTextBlock 엘리먼트와 오버플로우

- 페이지 나누기의 위험성

- RichEditBox를 이용한 서식 편집

- 자신만의 텍스트 입력 방식 구현

 

17장 공유와 인쇄

- 설정 참과 팝업

- 클립보드로 공유하기

- 공유 참

- 인쇄의 기본

- 인쇄 가능한 여백과 불가능한 여백

- 페이지 매김 처리

- 사용자 정의 인쇄 속성

- 월간 플래너 인쇄하기

- 페이지 범위 인쇄하기

- 양이 많은 인쇄 작업

- FingerPaint 인쇄하기

 

18장 센서와 GPS

- 방향

- 가속도와 힘, 중력, 벡터

- 굴러다니는 공을 다루기

- 두 개의 북극

- Inclinometer = Accelerometer + Compass

- OrientationSensor = Accelerometer + Compass

- 방위각과 고도

- Bing 맵과 Bing 맵 타일

 

19장 펜(스타일러스)

- InkManager 컬렉션

- 잉크와 관련된 속성

- 지우기와 다른 향상 기능들

- 스트로크 선택

- 노란색 메모장

 

 

상세 이미지

 

 

 

 

Trackback 0 | Comment 0

 

 

엔티티 프레임워크

 

: Code First & DbContext

 

저자 줄리아 러먼, 로완 밀러

역자 김상우, 최다은

감수자 박경훈

 

출간일 2013321()

정가 33,000

페이지 524

판형 190 x 245

ISBN 978-89-94774-33-6 (93560)

원서정보: Programming Entity Framework: Code First, Programming Entity Framework: DbContext

 

 

 

책 소개

 

 

엔티티 프레임워크 프로그래밍

 

 

PART I. Code First

 

ADO.NET 엔티티 프레임워크의 코드 퍼스트 데이터 모델링 접근 방식을 활용하여, 비즈니스 도메인의 기존 클래스를 기반으로 모델을 구축하고 구성하는 방법에 대해 알아보자.

 

PART I통해 여러분은 코드 퍼스트가 메모리에 모델과 데이터베이스를 생성하는 기본적인 방법 및 다양한 구성 작업으로 보다 모델을 효율적으로 관리하는 방법을 직접 예제로 실습해보면서 배울 수 있다.

 

코드 퍼스트는 엔티티 데이터 모델에 접근하는 데이터베이스 퍼스트 및 모델 퍼스트의 대안을 제공한다. 기존 데이터베이스로 작업하거나 새로운 데이터베이스를 구축할 경우 코드로 모델을 정의하는 작업의 장점을 배울 수 있다. 이 책은 Visual Studio와 함께 작업할 수 있으며, 데이터베이스 관리의 기본을 이해하고 있는 독자에게 유용한 정보를 제공한다.

 

- 코드 퍼스트로 작업할 수 있는 것과 없는 것에 대해 정확하게 배울 수 있다.

- 코드 퍼스트가 해당 클래스로부터 프로퍼티 어트리뷰트, 관계, 데이터베이스 매핑을 유추하는 방법을 이해할 수 있다.

- 코드 퍼스트 데이터 모델을 구성하기 위해 데이터 주석과 플루언트 API를 사용할 수 있다.

- 데이터베이스 스키마를 제어하고 기본 모델 캐싱을 재정의하는 고급 기술들을 수행할 수 있다.

 

 

 

PART II. DbContext

 

DbContext API는 엔티티 프레임워크를 이용한 개발을 단순화해주기 위해 가장 일반적으로 사용되는 기능과 작업들을 포함한다.

 

PART II DbContext API로 어떻게 DbSet 클래스를 동작하고 변경 추적을 처리하며, 변경 추적 API로 동시성 충돌을 해결하고 유효성 검사 API로 데이터에 대한 변경사항을 검사하는지 알려준다.

 

DbContext를 이용하면 개별적인 오브젝트나 오브젝트 그래프, 그리고 그들과 관계된 데이터에 상관없이 데이터를 쿼리하고 업데이트할 수 있다. 이 책은 여러분이 이를 수월하게 시작할 수 있도록 수많은 C# 예제 코드들을 포함하고 있다. 필요한 것은 단지 Visual Studio와 데이터베이스 기본 관리에 대한 기초적인 경험뿐이다.

 

- 데이터를 조회하기 위해 엔티티 프레임워크의 쿼리 기능을 사용한다. 그리고 데이터를 정렬하고 필터링하기 위해 LINQ를 사용한다.

- 새로운 데이터를 추가하고, 기존 데이터를 변경하고 삭제하는 방법을 배운다.

- 엔티티 프레임워크가 유지하고 있는 엔티티 인스턴스들에 대한 상태정보에 접근하기 위해 변경 추적 API를 사용한다.

- N-Tier 애플리케이션을 포함하는 비 연결 시나리오에서 엔티티들의 변경 추적정보를 제어한다.

- 변경된 데이터를 데이터베이스에 보내기 전에 유효성 검사를 하고 규칙을 설정한다.

엔티티 프레임워크의 쿼리 파이프라인을 우회하고 데이터베이스와 직접 상호작용한다.

 

 

 

예제코드 다운로드

 

 

PART I: http://shop.oreilly.com/product/0636920022220.do

PART II: http://shop.oreilly.com/product/0636920022237.do

 

 

 

독자 대상

 

 

이 책은 비주얼 스튜디오와 데이터베이스 기본 관리 경력이 있는 개발자들을 대상으로 한다. 엔티티 프레임워크를 사용해본 경험이 있다면 큰 도움이 되겠지만, 필수는 아니다. 이 예제 코드는 C#으로 작성되었으나, 경우에 따라 비주얼 베이직으로 보여주기도 했다. C#에서 비주얼 베이직으로 코드 조각을 변환하는 데 사용할 수 있는 여러 온라인 도구가 있다.

 

 

 

 

저자소개

 

 

줄리아 러먼(Julia Lerman)

 

엔티티 프레임워크의 최고 권위자이며, 2006년에 처음 도입된 이래 기술을 사용하고 가르치는 작업을 지속하고 있다. 줄리아는 마이크로소프트 MVP, ASPInsider, INETA 강연자로 닷넷 커뮤니티에서 알려져 있다. 줄리아는 세계 기술 컨퍼런스의 발표자로 자주 서고 있으며, MSDN 매거진의Data Points칼럼을 포함해 알려진 많은 기술 서적에 대한 기사를 쓰고 있다. 줄리아는 버몬트(Vermont)에서 남편 리치(Rich), 거대한 샘슨(Sampson) 함께 살고 있으며 Vermont.NET User Group 운영하고 있다. www.thedatafarm.com/blog에서 그녀의 블로그를 읽을 있고 트위터 주소는 @julielerman이다.

 

로완 밀러(Rowan Miller)

 

워싱턴 시애틀에 본사를 마이크로소프트에서 ADO.NET 엔티티 프레임워크 프로그램 관리자로 일하고 있다. 미국으로 가기 전에는 호주에 있는 태즈메이니아(Tasmania) 작은 주에서 살았었다. 로완은 기술 컨퍼런스 http://romiller.com 블로그에서 만날 있다. 또한 기술적인 활동 외에 스노우보드, 산악 자전거, 승마, 암벽 등반 다양한 활동에도 열정적이다. 그러나 그의 삶에서 가장 중요한 것은 예수님을 따르는 것이다.

 

 

 

역자소개

 

 

최다은

 

어릴 때 게임을 좋아하여 직접 만들어보고 싶다는 꿈이 개발자로 이어지게 되었으며, 2010년부터 HOONS 닷넷 실버라이트 시삽을 맡고 있다. 현재는 IT와 비즈니스를 접목한 컨설팅 분야에 관심을 가지고 관련분야의 길을 모색하고 있다. 공부하며 탐구하는 삶에 재미를 느끼며, 다양한 번역 작업에도 관심이 있다. 여행을 다니며 별을 보는 것을 좋아하여 밤하늘을 사진으로 담아내는 아마추어 천문 사진작가로써의 소박한 꿈도 가지고 있다.

 

김상우

 

현재 건설업전문 ERP 솔루션업체인 굿센테크날러지의 ERP사업팀에서 R&D와 유지보수조직을 총괄하고 있으며, 2011년에 HOONS 닷넷 커뮤니티에서 WPF 시샵으로 활동하였고 MS(Microsoft) Window Azure Solution build Program 최우수 파트너에 선정되었던 Cloud ERP 노무관리 시스템 구축의 PM을 담당했다.

 

 

 

감수자 소개

 

 

박경훈

 

국내 최대의 닷넷 개발자 커뮤니티인 HOONS 닷넷을 10여년 동안 운영해오면서, 또한2005년부터 지금까지 Microsoft Visual C# MVP로 활동해오면서 프로그래밍 서적 10여권을 번역 및 집필했고 수많은 세미나와 컨퍼런스들을 기획/진행하면서 닷넷 개발자들에게 닷넷 기술들과 함께 새로운 열정을 전하는 데 노력해왔다. 극동방송의 테마 CCM 진행자로 1년 동안 활동했으며, 지난 2년 동안은 영국에서 캠든소프트를 설립하여 모바일 앱 제작 도구 개발에 매진하기도 했다. 현재 런던대학교 킹스칼리지 대학원에서 소프트웨어에 대한 새로운 학문들의 이론을 공부하고 있다.

 

 

 

목차

 

 

PART 1 Code First

 

CHAPTER 1 코드 퍼스트에 온 것을 환영합니다

 

- 코드 퍼스트를 시작하기 전에 엔티티 프레임워크로 모델링하기

- 코드 퍼스트의 시작

- 닷넷의 배포 시기와 코드 퍼스트

- v코드 퍼스트 작성하기

- DbContext로 개체 관리하기

- 데이터 레이어와 도메인 클래스 이용하기

- 클래스에서 데이터베이스 얻기

- 설정 작업

- 데이터 베이스 생성 또는 지정하기

- 코드 퍼스트가 지원하지 않는 기술

- 이 책에서 배우는 것

 

 

CHAPTER 2 코드 퍼스트 처음으로 살펴보기

 

- 도메인 클래스로 가기 위해 EF 소개하기

- 예제에서 조각을 전체로 통합하기

- 설정에 따른 규칙 재정의하기

- 데이터베이스 초기화에 영향을 주는 모델 변경방법 이해하기

- 플루언트 API로 코드 퍼스트 설정하기

- 요약

 

 

CHAPTER 3 프로퍼티 어트리뷰트 규칙과 구성 사용하기

 

- 코드 퍼스트로 프로퍼티 어트리뷰트 작업하기

- 매핑 키

- 생성된 데이터베이스 프로퍼티 설정하기

- 낙관적 동시성에 대해 TimeStamp RowVersion 필드 구성하기

- 동시성에 대해 타임스탬프가 아닌 필드 구성하기

- 유니코드가 아닌 데이터베이스 타입에 매핑하기

- 십진법의 정밀과 스케일에 영향 주기

- 코드 퍼스트에서 복합 타입으로 작업하기

- 복합 타입 프로퍼티 설정하기

- 요약

 

 

CHAPTER 4 관계 규칙과 구성 사용하기

 

- 다중성 작업하기

- 외래 키로 작업하기

- 내비게이션 프로퍼티 역작업

- 캐스케이드 삭제 작업하기

- 다대다 관계 탐색하기

- 단방향 내비게이션을 가지는 관계로 작업하기

- 일대일 관계 작업하기

- 요약

 

 

CHAPTER 5 데이터베이스 매핑 규칙과 구성 사용하기

 

- 데이터베이스 테이블 및 스키마 이름에 클래스 이름 매핑하기

- 데이터베이스 칼럼으로 프로퍼티 이름 매핑하기

- 여러 엔티티를 하나의 테이블로 매핑하는 작업: 테이블 분할

- 여러 테이블에 하나의 엔티티 매핑하기

- 데이터베이스에 매핑된 타입 제어하기

- 프로퍼티의 매핑과 접근성 이해하기

- 프로퍼티가 모델에 포함되지 않도록 작업하기

- 상속 계층 매핑하기

- 추상 기본 클래스로 작업하기

- 관계 매핑하기

- 요약

 

 

CHAPTER 6 데이터베이스 위치, 생성 과정 및 시드 데이터 제어하기

 

- 데이터베이스 위치 제어하기

- 데이터베이스 초기화 작업하기

- 시드 데이터로 데이터베이스 이니셜라이저 사용하기

- 데이터베이스 스키마에 더 많은 영향을 주는 데이터베이스 초기화 사용하기

- 요약

 

 

CHAPTER 7 고급 개념

 

- 테이블이 아닌 데이터베이스 개체에 매핑하기

- 규칙 제거하기

- 모델 캐싱 제어하기

- EdmMetadata 테이블로 작업하기

- ObjectContext로 코드 퍼스트 사용하기

- 요약

 

 

CHAPTER 8 코드 퍼스트의 차기 버전

 

- 코드 퍼스트 마이그레이션

- 엔티티 프레임워크 파워 툴

 

 

PART II DbContext

 

CHAPTER 9 DbContext API 소개하기

 

- 프로젝트에 DbContext API 추가하기

- DbContext API의 주요 기능

- BreakAway 모델로 작업하기

- DbContext 인스턴스 리소스 해제 확인하기

 

 

CHAPTER 10 DbContext로 쿼리하기

 

- LINQ로 엔티티에 쿼리 작성하기

- 모든 데이터 쿼리하기

- 정렬, 필터, 그 외 더 많은 작업에 LINQ 사용하기

- 싱글 개체 찾기

- 로컬 데이터 쿼리하기

- 관련 데이터 로딩하기

- 탐색 속성 컬렉션에 대한 쿼리하기

 

 

CHAPTER 11 엔티티의 추가, 변경, 삭제하기

 

- 싱글 엔티티들로 작업하기

- 관계 정의하기

- 변경 추적

- 스냅샷 변경 추적 사용하기

- 변경 추적 프락시 활성화와 사용법

- 변경 추적 없이 엔티티들 조회하기

 

 

CHAPTER 12 N-Tier 응용프로그램을 포함하는 비연결 엔티티들로 작업하기

 

- 비연결 그래프의 간단한 작업

- N-Tier 과제 탐구하기

- DbContext가 싱글 엔티티의 상태를 설정하기 위해 응답하는 방법

- 엔티티 그래프에서 다중 엔티티에 대한 상태 설정

- 상태를 추적하기 위한 일반적인 접근방법

- 개별적으로 수정된 속성 추적하기

 

 

CHAPTER 13 변경 추적 API

 

- 싱글 엔티티의 추적 정보와 기능 변경하기

- 상태 속성 활용하기

- 현재, 원래, 데이터베이스 값으로 작업하기

- 개별 속성들로 작업하기

- 데이터베이스로부터 엔티티 새로 고치기

- 다중 엔티티의 변경 추적 정보와 동작

- 응용프로그램 시나리오에서 변경 추적 API 사용하기

 

 

CHAPTER 14 밸리데이션 API로 유효성 검사

 

- 유효성 검사 정의와 사용: 개요

- GetValidationResult를 사용한 싱글 개체 검증

- ValidationAttribute 데이터 애노테이션으로 속성 규칙 지정하기

- 유효성 검사 결과 세부사항 확인하기

- ValidationAttributes 탐구하기

- 개별 속성 유효성 검사

- 타입 수준의 유효성 검사 규칙 지정하기

- EF가 유효성 검사를 결합하는 방법

- 다중 개체 유효성 검사

- 변경사항 저장 시 유효성 검사

 

 

CHAPTER 15 사용자 정의 유효성 검사

 

- ValidateEntity 재정의하기

- ValidateEntity를 활용하는 그 외 방법 고려하기

- SaveChanges 사용 시 데이터 업데이트하기

- 유효성 검사가 일어날 때 SaveChanges 재정의하기

- ValidateEntity IDictionary 매개 변수 사용하기

- ValidateEntity에서 유효성 검사되는 엔티티 관리하기

 

 

CHAPTER 16 고급 시나리오에서 DbContext 사용하기

 

- ObjectContext DbContext 간 이동하기

- SqlFunctions에 노출된 SQL 서버 연산자 활용하기

- DbSet으로 파생된 타입 쿼리하기

- 인터페이스 속성 제한 이해하기

- DbContext와 자동화 테스트 고려하기

- IDbSet과 테스트에서 데이터베이스 영향 감소하기

- DbContext에서 데이터베이스 직접 접근하기

- 응용프로그램에서 여러 대상 컨텍스트 제공하기

 

 

CHAPTER 17 엔티티 프레임워크의 차기 버전

 

- 엔티티 프레임워크의 버전 번호 이해하기

- 엔티티 프레임워크 5.0

 

 

 

이 책의 구성

 

 

Chapter 1 코드 퍼스트에 온 것을 환영합니다

 

1장은 코드 퍼스트에 대해 처음부터 끝까지 수준 높은 미리 보기를 제공한다. 이 샘플 코드는 연습용이 아니다. 또한 독자가 기대하는 기술에 올바르게 접근할 수 있도록 코드 퍼스트에서 지원하지 않는 기술을 논의하는 것으로 마무리한다.

 

 

Chapter 2 코드 퍼스트 처음으로 살펴보기

 

2장에서는 바로 코드로 연습해볼 수 있다. 또한 기본 동작 일부를 보기 위해 간단한 클래스로 작업하면서 두 가지 메커니즘, 즉 데이터 애노테이션과 플루언트 API로 간단한 구성을 수행하는 작업을 코드 퍼스트로 해볼 수 있는 (또는 그냥 따라 읽어볼 수 있도록) 기회를 제공한다.

 

여러분은 코드 퍼스트가 기본 동작을 사용하기 위해 자동으로 데이터베이스를 생성하는 방법을 볼 것이다. 또한 이어지는 네 장에 걸쳐 코드 퍼스트가 생성하는 기본 데이터베이스를 다룰 것이며, 6장에서는 기존 데이터베이스로 작업하는 방법과 데이터베이스를 좀 더 효율적으로 관리하는 방법을 배울 것이다.

 

 

Chapter 3 프로퍼티 어트리뷰트 규칙과 구성 사용하기

 

3장은 코드 퍼스트 규칙과 구성에 대해 좀 더 깊게 들어가는 세 장 중 도입에 해당한다. 여러분은 어트리뷰트(예를 들어, 문자열 길이)를 추정해 만드는 코드 퍼스트 규칙과 이 규칙이 개념 모델과 데이터베이스에 해석되는 방법을 배울 것이다.

 

또한 모델과 데이터베이스의 결과를 제어하기 위해 데이터 애노테이션 및 플루언트 API를 사용해 구성을 수행하는 방법도 배울 것이다.

 

 

Chapter 4 관계 규칙과 구성 사용하기

 

4장에서는 클래스 간의 관계 및 모델과 데이터베이스에 있는 관계를 어떻게 코드 퍼스트가 추정하는지 배울 것이다. 코드 퍼스트 규칙은 클래스가 이들 간에 관계를 맺는 시기에 대한 가장 일반적인 시나리오를 유추할 수 있다.

 

우리는 코드 퍼스트가 클래스 간의 미묘한 차이를 추정하는 작업과 데이터 애노테이션이나 플루언트 API를 다시 구성함으로써 사용자가 원하는 작업을 코드 퍼스트에게 정확히 알리는 방법을 자세히 살펴볼 것이다.

 

 

Chapter 5 데이터베이스 매핑 규칙과 구성 사용하기

 

5장에서는 클래스를 데이터베이스에 매핑하는 방법에 초점을 두었다. 이 정보는 특히 사용자가 기존 데이터베이스에 클래스를 매핑할 때 유용할 것이다. 테이블 이름이나 칼럼 이름, 타입과 같은 간단한 매핑 작업이라도 큰 차이를 만들 수 있다.

 

여러분은 클래스 간에 정의된 상속 계층을 가질 경우 데이터베이스에 작업하는 기본 매핑 및 Table Per Hierarchy, Table Per Type, Table Per Concrete Type이 데이터베이스에 매핑을 유도하는 방법을 배울 것이다. 또한 여러 테이블에 하나의 엔티티를 매핑하는 방법, 반대로 하나의 테이블에 여러 엔티티를 매핑하는 방법을 배울 것이다.

 

 

Chapter 6 데이터베이스 위치, 생성 과정 및 시드 데이터 제어하기

 

6장에서는 기본 데이터베이스 생성 동작에서 한 단계 나아간 개념을 만나보게 될 것이다. 커넥션 스트링 또는 코드 퍼스트 API의 일부 낮은 레벨의 코드로 작업을 수행하면서 코드 퍼스트가 데이터베이스 이름과 위치를 제어하는 방법을 배울 것이다. 또한 커넥션 같은 다른 작업을 제어하기 위한 몇 가지 유용한 정보를 찾을 수 있을 것이다.

 

 

Chapter 7 고급 개념

 

7장에서 여러분은 몇 가지 고급 기술을 수행하는 방법을 알아보기 위해 코드 퍼스트를 더 깊게 파고들 것이다. 여러분은 이 작업을 제어하면서 모델 동기화 작업에서 데이터베이스를 유지하기 위해 코드 퍼스트가 수행하는 방법을 보게 될 것이다.

 

또한 기본 모델 캐싱 방법 및 동일한 응용프로그램 인스턴스에서 여러 데이터베이스 공급자를 대상으로 지정하는 등의 문제를 해결하기 위해 재정의하는 방법을 배울 것이다. 그 외 고급 주제들도 다룬다.

 

Chapter 8 코드 퍼스트의 차기 버전

 

이 책은 엔티티 프레임워크 4.2 버전을 기반으로 하는 코드 퍼스트의 기능을 다루기 위해 집필되었다. 이 글을 쓸 당시, 많은 Community Technical Previews는 향후 코드 퍼스트 배포에서 얻을 수 있는 일부 기능을 설명했다. 8장은 이러한 향후 배포에서 사용 가능한 정보를 공유하고 있다.

 

 

Chapter 9 DbContext API 소개하기

 

9장에서는 높은 수준의 DbContext API를 전반적으로 개관한다. 우리는 왜 엔티티 프레임워크 팀이 DbContext API 만들기를 결정하고 사용하기 쉽게 만들었는지 배울 것이다. 예제 코드를 보겠지만, 이 장에서는 다루지 않을 것이다.

 

 

Chapter 10 DbContext로 쿼리하기

 

10장에서는 엔티티 프레임워크의 기능을 이용해서 데이터베이스로부터 데이터를 가져오는 법을 배울 것이다. 우리는 어떻게 키로 엔티티를 찾고 주어진 타입의 모든 엔티티들을 로딩할 수 있는지 배울 것이다. LINQ를 사용해서 어떻게 데이터를 정렬하고 필터링하는지도 배울 것이다. 또한 관계된 데이터를 로딩하는 여러 가지 전략도 살펴볼 것이다.

 

 

Chapter 11 엔티티의 추가, 변경, 삭제하기

 

데이터를 쿼리하는 방법을 배웠으니, 이 장에서는 변경하고 데이터베이스에 저장하는 법을 다룰 것이다. 새로운 데이터를 추가하는 방법뿐만 아니라 기존 데이터를 변경하고 삭제하는 방법을 배우고 SaveChanges 메서드를 이용해 저장하는 방법도 배울 것이다.

 

 

Chapter 12 N-Tier 응용프로그램을 포함하는 비연결 엔티티들로 작업하기

 

12장에서는 엔티티 프레임워크를 이용해 엔티티들이 컨텍스트에 의해 관리되지 않는 동안 엔티티들에 만들어진 변경사항을 지속할 수 있는지 알아볼 것이다. 이 상황은 서버 컴포넌트가 데이터를 가져오고 이것을 클라이언트 응용프로그램으로 반환하는 N-Tier 응용프로그램에서 가장 일반적이다. 이 클라이언트 응용프로그램은 데이터를 수정하고 저장하기 위해 서버로 돌려보낸다. 이런 상황을 해결하는 다양한 접근방법을 배우고, 이런 것들을 구현하기 위해 어떻게 변경 추적 API를 사용하는지 배울 것이다.

 

 

Chapter 13 변경 추적 API

 

변경 추적 API 12장에서 처음 소개되었는데, 13장에서는 변경 추적기의 나머지 기능을 살펴보는 데 집중할 것이다. 우리는 어떻게 엔티티 프레임워크가 엔티티 인스턴스들의 상태를 유지시키는 정보에 액세스할 수 있는지 배울 것이다. 또한 데이터베이스로부터의 엔티티 새로 고침을 포함하는 변경 추적 API로 수행되는 기능도 알아볼 것이다. 예제를 살펴보면서 어떻게 변경 추적 API가 일반적인 응용프로그램의 요구사항을 해결하는지 알아볼 것이다.

 

 

Chapter 14 밸리데이션 API로 유효성 검사

 

14장에서는 DbContext를 통합하고, 데이터베이스로 보내지기 전에 데이터에 대한 변경사항을 검사하는 새로운 밸리데이션 API를 소개한다. 밸리데이션 API가 기존 닷넷에 포함된 유효성 검사 기능을 활용하는 방법을 다룰 것이다. 또한 SaveChanges 파이프라인으로 통합되는 방법과 수동으로 유효성 검사를 발생시키는 방법을 배울 것이다. 유효성 검사 규칙 설정 방법과 데이터가 이런 규칙들을 위반했을 때 유효성 검사가 어떻게 에러를 알아내는지도 배울 것이다.

 

 

Chapter 15 사용자 정의 유효성 검사

 

15장에서는 14장에 선보인 밸리데이션 API의 고급 기능들을 살펴볼 것이다. 로직을 사용자 정의하는 방법과 검사될 엔티티들을 결정하는 로직을 포함한 엔티티들을 유효성 검사하는 방법을 배울 것이다. 우리는 이러한 고급 기능들로 칼럼의 유일성을 검증하는 것과 같은 컨텍스트와 상호 작용하는 유효성 검사를 작성하게 된다. 또한 검증 이외의 작업에 밸리데이션 API를 사용할 때의 위험성을 알려준다.

 

 

Chapter 16 고급 시나리오에서 DbContext 사용하기

 

16장에서는 DbContext API에서 사용 가능한 고급 기능들을 살펴볼 것이다. 우리는 단위 테스트를 위한 기술과 어떻게 데이터베이스를 접속하지 않고 작성할 수 있는지 배울 것이다. 또한 엔티티 프레임워크의 파이프라인을 우회하는 방법과 필요할 때 데이터베이스와 직접 상호 작용하는 방법도 살펴볼 것이다. DbContext API에서 가능한 기능을 벗어날 경우, 어떻게 기본 ObjectContext API를 사용하는지도 알아볼 것이다. 또한 우리의 완전한 전체 모델의 서브셋과 상호 작용할 수 있게 해주는 더 작은 범위의 컨텍스트를 생성하는 것에 대해 알아볼 것이다.

 

 

Chapter 17 엔티티 프레임워크의 차기 버전

 

2부는 엔티티 프레임워크 4.3에서 사용 가능한 DbContext API의 기능을 중심으로 쓰였다. 2부를 쓸 당시, 다음에 출시될 DbContext API의 특정 기능들을 시연하는 몇몇 프리뷰가 가능했다. 17장에서는 이와 같은 향후 출시에 대한 가능한 정보를 공유할 것이다.

 

 

 

출판사 리뷰

 

 

마이크로소프트의 주요 데이터 액세스 기술인 ADO.NET 엔티티 프레임워크는 《Entity Framework Programming(OReilly) 1판》에서 다룬 엔티티 프레임워크의 첫 번째 버전과 닷넷 프레임워크 3.5의 일부분으로 두 가지 주요한 출시를 했다. 2010년에 닷넷 4가 출시되었는데, 이것은 엔티티 프레임워크의 차기 버전인 엔티티 프레임워크 4를 포함한다. 완전히 개정된 《Entity Framework Programming 2판》은 비주얼 스튜디오 2010에서 엔티티 프레임워크를 어떻게 사용하는지 독자들에게 알려주는 데 주력했다.

 

닷넷 4가 배포되었을 때, 엔티티 프레임워크 팀은 엔티티 프레임워크의 핵심 기술인 엔티티 데이터 모델 구축의 대안을 제공하기 위해 “코드 퍼스트”라는 새로운 에디션을 이미 한창 작업하고 있었다. 코드 퍼스트는 비주얼 디자이너를 사용하지 않고도 기존 클래스에 모델을 생성할 수 있다. 동시에 팀은 엔티티 프레임워크를 사용하기 쉽게 만들기 위해 모든 역량을 동원했다. 그들은 엔티티 프레임워크에서 가장 일반적으로 사용되는 기능과 작업에 초점을 맞춘 DbContext API라는 새로운 API를 만들었다.

 

1부의 주 목적은 비즈니스 도메인의 클래스를 기반으로 모델을 만들고 구성하기 위해 코드 퍼스트를 사용하는 방법을 독자에게 알리는 것이다. 코드 퍼스트는 클래스에서 모델을 유추하는 작업의 대부분을 수행하지만, 사용자는 코드 퍼스트로 생성하는 모델에 꽤 많은 영향을 미칠 수 있다.

 

1부에서 여러분은 기본에 따라(일명 규칙) 그리고 프로퍼티, 클래스, 관계 및 (코드 퍼스트로 데이터베이스를 생성하거나 기존 데이터베이스를 사용하는 여부에 따라) 매핑하는 데이터베이스를 이해하여 구성을 수행하는 방법을 배울 것이다. 이런 일련의 지식을 통해, 여러분은 새로운 소프트웨어 프로젝트를 구축하는 작업에서 기존 클래스나 새로 생성한 클래스를 활용하면서 엔티티 프레임워크의 이점을 누릴 수 있을 것이다.

 

2부는 DbContext API의 기능 사용법을 독자에게 알려주기 위해 최선을 다하고 있다. DbContext 클래스 외에도, 변경 추적하고 동시성 충돌을 처리하는 API를 발전시킨 기능을 수행하는 DbSet과 이미 닷넷에 있는 유효성 검사 기능을 통합한 유효성 검사 API도 설명하고 있다. 여러분은 개별 개체든 개체의 그래프와 관련된 데이터든 상관없이 새로운 API를 사용해 쿼리하고 데이터를 업데이 트하는 방법을 배울 것이다. 또한 변경 추적 기능과 유효성 검사의 이점을 활용하는 법과 API에서 제공하는 고급 기능을 활용한 수많은 샘플과 장점들을 확인할 것이다.

 

Trackback 0 | Comment 0

 

 

이제 시작이야! 키넥트 프로그래밍

 

 

저자: 자렛 웹, 제임스 애쉴리

역자: 김태경, 정해권

 

출간예정일: 20121211()

정가: 27,000

페이지: 387p

 

판형: 190 x 245

ISBN: 978-89-94774-26-8 (93560)

 

원서정보: Beginning Kinect Programming with the Microsoft Kinect SDK

 

 

 

책 소개

 

 

이 책을 읽는 데 딱 30분만 투자해도 여러분은 키넥트 프로그래밍을 할 수 있는 기본 지식과 능력을 익힐 수 있을 것이다. 1장의 시작하기를 따라 진행하다 보면 SDK과 툴들을 쉽게 설치할 수 있고, 그 이후 장들을 통해 3D 비전, 스켈레톤 트래킹, 오디오 처리, 음성 인식과 제스처 인식 등을 쉽게 익힐 수 있다. 또한 MS에서 제공하는 SDK과 써드 파티 라이브러리들의 조합을 통해 여러 효과를 내는 방법도 알아볼 것이고, 다양한 예제들을 통해 플레이어의 움직임에 반응하는 간단한 게임들을 살펴보면서 기본적인 개념에 대해 알아볼 것이다.

 

이 책과 함께 여러분은 아래와 같은 내용을 배울 수 있다:

 

- 개발 환경 구축하기

- 키넥트 센서를 이용해서 데이터 스트림 관리하기

- 인터랙티브한 어플리케이션에 스켈레톤 트레킹 적용하기

- 키넥트 센서로 음성 인식 구현하기

- 키넥트 센서로 PC에서 작동하는 게임 만들기

- 3D 프로그래밍을 위한 다양한 수학 공식 활용하기

 

《이제 시작이야! 키넥트 프로그래밍》은 미디어아트, 인터랙티브 게임, 3D 모델링, 오피스 자동화 등 여러 분야에 키넥트를 적용할 수 있도록 여러분에게 혁신적인 아이디어를 제공할 것이다.

 

소스코드 다운로드

http://www.apress.com/9781430241041

 

독자 대상

초급

 

 

 

추천사

 

 

세상에서 가장 빨리 팔린 제품으로 기네스북에 오른 전자 제품이 바로 키넥트다. XBOX 360용으로키넥트가 출시되었을 때 키넥트 자체가 세상에 던지는 충격은 대단했다. 세 개의 센서가 만들어내는 데이터를 이용해서 ‘사람을 이해하는 기계’로서 키넥트는 기존의 어떤 물건과도 다르면서도 또 충분히 혁신적이었다.

 

이 키넥트 충격은 게임업계를 넘어서서 UX, NUI 등 다양한 분야에서도 집중적인 관심을 받게 되었는데, 학술적으로나 상업적으로 사용할 수 있는 개발툴킷의 정식버전의 출시는 업계와 학회의 열렬한 환영을 받았다. 이렇게 키넥트가 많은 이들의 열정을 이끌어 낼 수 있었던 이유는 사람이 특별하게 준비된 행동이나 센서를 부착하지 않고도 컴퓨터와 인터랙션할 수 있는 가능성을 많은 분야에서 찾을 수 있게 되어서일 것이다. 물론 이미 오픈 소스 기반의 프레임워크가 제공되고 있었지만, 그럼에도 불구하고 공식 발표된 개발툴킷은 공식이라는 그 이유만으로도 활용과 기술지원에 대한 충분한 이유가 된다.

 

그런 면에서 이번에 번역된 본 개발서는 UX NUI를 연구하는 학회뿐만 아니라 수많은 프로 개발자들과 업체들에게 훌륭한 시작점이 될 것이라고 믿어 의심치 않는다. 특히 이번에 번역한 역자들은 이전에도 WPF Silverlight와 같이 Microsoft의 기술에 대한 경험과 활동이력을 가지고 있기에 더더욱 이 책의 결과물에 두터운 신뢰가 간다.

 

키넥트는 아날로그적인 감성을 가진 인간을 디지털로 구성된 컴퓨터와 연결해주는 멋진 기술이다.국내의 여러 전시회에서 키넥트를 사용하고 있는 사례를 쉽게 찾아볼 수 있을 정도로 이미 충분한 관심을 받고 있다. 다만 간단한 소개 자료를 제외하고는 모두 영문으로 되어있고 또 이마저도 인터넷에 단편적으로 펼쳐져 있어서 이를 참조해서 결과물을 만드는 데 많은 시행착오를 겪으며 개발해온 것도 사실이다. 그런 면에서 본서는 키넥트에 관심을 가지고 있는 모든 이에게 정말 고마운 첫 시작을 열어줄 것이다. , 이제 아폴로 13호를 타고 달나라에 도착한 암스트롱의 말처럼 이 책을 통해서 새로운 세상을 꿈꾸는 모든 이에게 위대한 Hello World를 만들어보기로 하자. 마지막으로, 번역이라는 어려운 길을 선택한 역자들에게 깊은 감사를 드린다.

 

- 한국마이크로소프트 개발자 및 플랫폼 사업총괄, 김영욱 부장

 

 

 

저자소개

 

 

자렛 웹 (Jarrett Webb)

 

상상력이 풍부하고 역동적이며 상호작용하고 몰입도 있는 인터페이스를 다양한 멀티 터치 환경과 키넥트를 활용하여 만들고 있다. 현재 텍사스의 오스틴에 거주하고 있다.

 

제임스 애쉴리 (James Ashley)

 

15년 동안 마이크로소프트의 기술을 이용한 소프트웨어를 개발해왔다. 최근에는 www.imaginativeuniversal.com이라는 블로그를 운영하고 있다. 그리고 2년 동안 Atlanta XAML이라는 모임을 운영하는 것을 도왔고 아틀란타에서 reMIX 컨퍼런스를 기획하였다. 현재는 Razorfish 사의 Emerging Experiences Group에서 Presentation Layer Architect로 근무하면서 최신 기술들을 응용하여 구현하기 불가능할 것만 같은 다양한 애플리케이션에 도전하고 있다. 그는 아내와 세 아이들(소피아, , 사샤)과 함께 조지아의 아틀란타에 살고 있다.

 

 

 

역자소개

 

 

김태경

 

PRO WPF IN C# 2008》의 역자이며, 현재 모바일 플랫폼에 관심을 가지고 공부하고 있다.

 

정해권

 

인디애나 주립대에서 컴퓨터 사이언스를 공부했고 현재 클라우드 기반의 글로벌 모바일 메신저 서비스를 개발 및 운영하고 있다.

 

 

 

목차

 

 

CHAPTER 1. 시작하기

 

키넥트 탄생 이야기

배경

마이너리티 리포트

마이크로소프트의 비밀 프로젝트

Microsoft Research(MSR)

키넥트 해킹 경쟁

Kinect for Windows SDK

하드웨어 살펴보기

SDK 설치를 위한 하드웨어, 소프트웨어 요구사항

Step-By-Step 설치하기

키넥트 Visual Studio 프로젝트의 구성요소

키넥트 SDK 샘플 애플리케이션

Kinect Explorer

Shape Game

Record Audio

Speech 샘플

정리하기

 

 

CHAPTER 2. 애플리케이션 개발하기

 

키넥트 센서

연결된 센서 발견하기

센서 시작하기

센서 정지시키기

컬러 이미지 스트림

이미지 스트림 성능 향상시키기

간단한 이미지 조작하기

스냅샷 얻어오기

객체 모델로 컬러 이미지 스트림 살펴보기

데이터 획득하기: 이벤트 방식과 폴링 방식

정리하기

 

 

CHAPTER 3. 깊이 이미지 프로세싱

 

키넥트의 눈으로 바라보기

깊이 측정하기

개선된 깊이 이미지

나아진 그레이 스케일 음영처리

깊이 이미지에 색 입히기

간단한 깊이 이미지 프로세싱

히스토그램

참고사항

깊이값과 플레이어 인덱스

수치 측정하기

깊이 이미지와 비디오 이미지 정렬하기

깊이 Near 모드

정리하기

 

 

CHAPTER 4. 스켈레톤 트래킹

 

스켈레톤 얻어오기

스켈레톤 객체 모델

SkeletonStream

SkeletonFrame

Skeleton

Joint 119

Kinect the Dots

사용자 인터페이스

손 트래킹

퍼즐 그리기

퍼즐 풀기

게임 확장하기

공간과 변환

공간 변환

거울을 통해 보기

SkeletonViewer 유저 컨트롤

정리하기

 

 

CHAPTER 5. 어드밴스드 스켈레톤 트래킹

 

사용자 상호작용

WPF 입력 시스템의 간략한 이해

사용자 상호작용 감지하기

Simon Says

Simon Says, UI를 디자인하라”

Simon Says, “기반을 구축하라”

Simon Says, “게임 플레이 기반을 추가하라”

새 게임 시작하기

Simon Says 발전시키기

Simon Says 다시 보기

깊이 기반의 사용자 상호작용

포즈

포즈 감지하기

포즈에 반응하기

Simon Says에 포즈 적용하기

Simon Says 정리하기

정리하기

 

 

CHAPTER 6. 제스처

 

제스처 정의하기

NUI

제스처는 어디에서 오는가?

제스처 구현하기

알고리즘을 사용한 인식

뉴럴 네트워크

표본기반 인식

흔히 사용되는 제스처 인식하기

손 흔들기(Wave)

기본적인 손 트래킹

호버 버튼(Hover Button)

푸시 버튼(Push Button)

자석 버튼(Magnet Button)

스와이프(Swipe)

자석 슬라이드(Magnetic Slide)

수직 스크롤(Vertical Scroll)

유니버설 일시정지(Universal Pause)

제스처의 미래

정리하기

 

 

CHAPTER 7. 음성

 

마이크 배열 기초

MSR 키넥트 오디오

음성 인식

오디오 캡처

사운드 스트림 작업하기

잡음 제거하기

음향 반향 제거하기

빔 트래킹으로 지향성 마이크 구현하기

음성 인식

정리하기

 

 

CHAPTER 8. 중급 과정 맛보기

 

이미지 조작 헬퍼 메서드

Coding4Fun Kinect Toolkit

확장 메서드 만들기

근접 감지

간단한 근접 감지 구현하기

깊이 데이터로 근접 감지 구현하기

근접 감지 개선하기

모션 감지하기

영상 저장하기

얼굴 감지하기

홀로그램

살펴봐야 할 라이브러리

정리하기

 

 

APPENDIX. 키넥트 수학

 

측정 단위

비트 조작

비트 필드

비트 논리합(Bitwise OR)

비트 논리곱(Bitwise AND)

비트 논리 부정(Bitwise NOT) / 보수연산(Complement)

비트 시프트(Bit Shifting)

기하학과 삼각법(Geometry and Trigonometry)

 

 

 

이 책의 구성

 

 

Chapter 1: 시작하기

 

여러분은 당장이라도 키넥트를 이용하여 머릿속에 그렸던 인터페이스를 현실로 구현하고, 애플리케이션을 위한 아키텍처 디자인을 하고 싶을 것이다. 하지만 그보다 먼저 알아야 할 것이 있다. 1장에서는 Kinect for Windows SDK가 나오기까지의 오랜 역사를 설명하고 있다. 그리고 SDK 사용시 필요한 라이브러리와 툴들을 다운로드하고 설치할 수 있도록 친절하게 안내할 것이다.

 

 

Chapter 2: 애플리케이션 개발하기

 

2장에서는 키넥트를 처음 접하는 여러분이 애플리케이션을 만들어볼 수 있도록 안내할 것이다. 2장이 끝날 때쯤에는 키넥트 SDK를 이용하여 더 복잡한 애플리케이션을 만들 수 있는 기초가 완성될 것이다. 그리고 키넥트에서 이미지 스트림을 통해 데이터를 얻어와 실시간으로 이미지를 화면에 보여주는 애플리케이션을 만들어볼 것이다. 여기에 소개되는 코드는 이후에 소개할 샘플들의 기초가 될 것이다.

 

 

Chapter 3: 깊이 이미지 프로세싱

 

깊이 스트림은 키넥트 기술의 핵심이다. 3장에서 나오는 코드들을 통해 깊이 스트림을 자세히 알아볼 것이다. 즉 키넥트가 제공하는 데이터에 대해 알아보고, 이 데이터를 어떻게 사용하는지 알아볼 것이다. 예제에서는 사용자들을 인식하고, 간단한 트릭을 통해 사용자의 실루엣에 색을 입혀 깊이 정보를 시각적으로 보이게 할 것이다.

 

 

Chapter 4: 스켈레톤 트래킹

 

키넥트 SDK는 깊이 스트림에서 얻은 데이터를 이용하여 사람의 형태를 구별해낼 수 있었다. 바로 이것이 스켈레톤 트래킹이다. 여러분은 어떻게 스켈레톤 트래킹 데이터를 얻는지, 데이터가 어떠한 의미를 갖는지, 어떻게 사용해야 하는지 배우게 될 것이다. 여러분은 관절과 뼈를 트래킹하여 게임을 만들어보면서 재미를 느낄 것이다.

 

 

Chapter 5: 어드밴스드 스켈레톤 트래킹

 

단순히 아바타를 생성하고 스켈레톤을 생성하는 것보다 더 다양한 스켈레톤 트래킹의 응용 예에 대해 알아볼 것이다. 스켈레톤 데이터는 휘발성이고, 예측하기 힘들다는 특성을 지니고 있다. 5장에서는 데이터를 스무딩 처리하여 좀 더 멋진 애플리케이션을 만들 수 있는 팁과 트릭을 소개할 것이다. 이 장에서는 깊이 이미지뿐만 아니라 실시간으로 얻는 RGB 이미지를 조합하여 더 나은 결과를 만들 것이다. 깊이 이미지와 RGB 실시간 이미지를 통해 생성된 데이터를 이용하여 증강 현실 애플리케이션을 만들어볼 것이다.

 

 

Chapter 6: 제스처

 

키넥트 개발의 다음 단계는 스켈레톤 트래킹 데이터를 이용하여 제스처를 인식하는 것이다. 제스처 인식은 여러분의 애플리케이션이 더 자연스럽게 상호작용할 수 있도록 도와줄 것이다. 6장에서는 NUI를 소개하고 어떻게 애플리케이션 개발에 적용 가능한지 알아볼 것이다. 키넥트는 워낙 새로운 기술이기 때문에 잘 확립된 제스처 라이브러리와 도구들이 아직도 부족한 상황이다. 이 장에서는 어떻게 제스처를 정의하고, 어떻게 기초적인 제스처 라이브러리를 만드는지 안내할 것이다.

 

 

Chapter 7: 음성

 

키넥트는 세상을 보는 기능 이상을 제공하는 센서이다. 세상을 듣는 기능도 제공하는 센서이기 때문이다. 키넥트는 마이크 배열을 갖고 있어 소리를 감지하고 오디오 프로세싱을 할 수 있도록 도와준다. 그럼으로써 여러분은 음성 명령을 이용할 수 있고, 더 발전시켜 제스처 인식과 조합하

여 여러분의 애플리케이션의 사용자 경험을 더 풍부하게 할 수 있다. 7장에서는 Microsoft Speech

Recognition SDK에 대해 알아보고, 어떻게 키넥트의 마이크 배열과 조합하여 사용할 수 있는지 알아볼 것이다.

 

 

Chapter 8: 중급 과정 맛보기

 

8장에서는 키넥트를 사용하여 할 수 있는 더 복잡한 작업에 대해 알아볼 것이다. 그리고 다양한 라이브러리와 툴을 이용하여 키넥트에서 생성된 데이터를 조작하여 발전된 키넥트 애플리케이션을 만드는 방법을 알아볼 것이다.

 

 

Appendix A: 키넥트 수학

 

키넥트를 이용하여 개발할 때 필요한 수학 지식과 공식을 소개할 것이다. 실용적인 정보를 제공하여 개발에 도움을 줄 것이다.

 

 

Trackback 1 | Comment 0

Objective-C 2.0(오브젝티브-C 2.0) 상세보기

비제이퍼블릭의 오브젝티브-C 2.0:아이폰과 맥 OS X 개발을 위한 Objective-C의 [부록]에 다른 언어에 익숙해져 있는 많은 프로그래머들이 문법이나 개념이 다른 오브젝티브-C를 새롭게 배우는데 조금이나마 도움이 될 수 있도록 각 언어와 오브젝티브-C 언어를 대략적으로 설명을 해 놓은 부분이 있습니다.

이미 책이 출간이 되기전에도 pdf 파일로 1장과 함께 다운로드 가능하시도록 제공도 해드렸습니다.

[다른 언어에서 오브젝티브-C로: PDF 다운로드]

그러나 말 그대로 부록으로서의 역할만 할뿐이지 다른 언어의 개발자들에게 만족할만한 충분한 정보를 제공해 드리지 못하는 것이 내심 아쉽기도 했습니다. 그러던 중, 며칠 전 웹서핑을 하다가 우연히 다음과 같은 자료를 발견하였습니다.

이 자료는 Pierre Chatelier라는 분이 그의 웹사이트(http://pierre.chachatelier.fr/programmation/objective-c.php)에서 공개하고 있는 문서로서, C++과 오브젝티브-C 언어의 교각 역할을 하기위해 쓰여졌다고 합니다. 다음은 소개(Introduction) 부분에서 필요한 부분만 간단히 번역해 보았습니다.

이 문서는 C++과 오브젝티브-C 언어의 징검다리 역할을 하기 위해 작성되었다. 현재까지의 많은 오브젝티브-C 도서들은 오브젝티브-C 언어를 이용하여 개체 모델을 가르치고 있고, C++ 언어와 오브젝티브-C 언어의 컨셉을 비교하며 배우기를 원하는 C++ 고급 개발자들만을 대상으로 쓰여진 책은 없는 것으로 알고 있다.
먼저, 오브젝티브-C는 코코아 프로그래밍을 받쳐주는 언어라고 하기보다는 장애물에 더욱 가깝지 않을까 싶다. 오브젝티브-C는 굉장히 다른 컨셉의 언어라서 쉽게 접근하기가 쉽지 않다. 필자 또한 오브젝티브-C 언어와 그것이 제공하는 많은 유용한 컨셉들을 활용할 수 있기까지 어느 정도의 시간이 걸렸다.
이 문서가 오브젝티브-C 언어의 습득을 단념하지 않고, 또한 잘못된 이해로 인해 이 언어의 특징을 잘못 사용하는 경우가 생기지 않도록 개발자들에게 도움이 되었으면 한다. 이 문서는 아주 짧고 간결한 참고서의 역할을 할뿐이다.
C#은 C++보다 오브젝티브-C의 컨셉과  더욱 가까우므로, C#과 오브젝티브-C와의 비교를 위해서는 또 다른 문서가 필요할 것이다. C# 개발자들은 확실히 다른 언어의 개발자들보다 더욱 빨리 오브젝티브-C 언어를 배울 수 있다.

이 문서는 Aaron Vegh에 의해 영문으로 다시 번역이 되었으며 문체가 매우 간결하여 이해하기 쉽게 쓰여졌습니다. 필요하신 분들은 참고하시길 바랍니다.


Objective-C 2.0(오브젝티브-C 2.0)
카테고리 컴퓨터/IT
지은이 마크 달림플 (비제이퍼블릭, 2009년)
상세보기

Trackback 0 | Comment 0

퍼블릭's Blog is powered by Daum & tistory