본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

개정판 | 헤드 퍼스트 C# 상세페이지

컴퓨터/IT 개발/프로그래밍

개정판 | 헤드 퍼스트 C#

모던한 객체지향 C# 가이드! .NET과 유니티로 배우는 실전 프로그래밍 지침서
소장종이책 정가42,000
전자책 정가20%33,600
판매가33,600
개정판 | 헤드 퍼스트 C# 표지 이미지

개정판 | 헤드 퍼스트 C#작품 소개

<개정판 | 헤드 퍼스트 C#> 상상을 초월하는 객체지향 C# 학습법

직관적인 설명과 다채로운 구성으로 생생하게 체험하는 C# 프로그래밍



재치 넘치는 설명과 틀에 박히지 않은 구성으로 복잡한 개념도 쉽게 이해할 수 있습니다.

친숙한 대화체 스타일과 풍부한 시각자료, 궁금증을 유발하는 스토리가 있어 배운 내용이 머릿속에 오래 남습니다. C#의 핵심 기능을 친절하게 풀어 설명하고, 현업에서 실제로 활용할 수 있는 전문가의 팁을 소개하는 등 원칙에 충실하면서도 실용적인 학습 환경을 제공합니다.



70개 이상의 연습 문제를 해결하며 독자가 학습에 적극적으로 참여할 수 있습니다.

지루한 이론 대신 흥미진진한 실습을 중심으로 연습 문제와 퀴즈를 직접 풀며 C# 프로그래밍에 대한 이해를 높일 수 있습니다. 개념을 학습한 뒤에는 〈유니티 연구실〉에서 유니티 게임 프로젝트를 실습하며 C#을 즐겁게 익힐 수 있는 기회를 제공합니다. 유니티 활용법과 게임 개발에 대한 통찰력은 덤!



어떤 환경에서든 누구나 따라 할 수 있는 완벽한 C# 프로그래밍 안내서입니다.

맥OS 환경에서도 실습할 수 있도록 〈Visual Studio for Mac 학습자 가이드〉를 제공합니다. 또한 C#과 유니티, .NET 프레임워크와 비주얼 스튜디오에 관한 유용한 지식과 활용법을 소개함으로써 초보자부터 개발자까지 다양한 수준의 독자를 아우릅니다.


출판사 서평

모던한 객체지향 C# 가이드!

.NET과 유니티로 흥미롭게 배우는 실전 프로그래밍!



다음 세 가지 질문에 “예"라고 대답할 수 있다면 이 책은 바로 당신을 위한 것입니다!



? C#과 유니티를 사용한 게임 프로젝트에 관심이 있습니까?

? 무미건조한 글공부보다는 직접 실습해 보는 쪽을 선호합니까?

? 기술만을 강조하는 지루한 강의보다는 즐겁게 대화를 나누며 C#을 배우고 싶습니까?



『헤드 퍼스트 C#(4판)』은 .NET 프레임워크와 유니티를 활용한 C# 프로그래밍을 다룹니다. 이 책을 읽고 나면 C#의 클래스와 객체를 완벽하게 이해하고, 상속, 캡슐화, 추상화, 다형성 등 객체지향 프로그래밍의 원리를 마스터할 수 있습니다. 유니티 게임 프로젝트와 실용적인 연습 문제를 풀어 보며 C# 프로그래밍을 이해하고 자신감을 키워 보세요.



예제 파일 다운로드

→ www.hanbit.co.kr/src/11160

→ https://github.com/head-first-csharp/fourth-edition


저자 프로필

앤드류 스텔만 Andrew Stellman

  • 학력 1995년 Carnegie Mellon University Carnegie Mellon University 컴퓨터과학 학사
    Columbia University in the City of New York 석사
  • 경력 Bank of America Software Consultant
    O'Reilly Media Author
    Stellman & Greene Consulting Partner
    2013년 Goldman Sachs Vice President

2017.01.06. 업데이트 작가 프로필 수정 요청


저자 소개

앤드류 스텔만 저자

메이저 투자 은행의 부사장으로 재직하며 실시간 백엔드 시스템을 설계했다. 마이크로소프트, 전미경제연구소, MIT의 소프트웨어 팀을 관리하고 그들을 컨설팅하며 훌륭한 프로그래머들과 협업했다.

최근작
『Head First Agile : 개념부터 시험 대비까지, 가장 애자일다운 안내서』(2019)
『Head First PMP : 체계적인 프로젝트 관리를 위한 국제 공인 학습법 (개정3판, PMBOK® 지침서 5판 시험대비용)』(2014)


제니퍼 그린 저자

철학을 전공한 독특한 이력이 있다. 온라인 서비스 업체를 비롯하여 회계, 미디어 등 다양한 분야의 소프트웨어 테스팅을 담당했고, 그 후로 소프트웨어 개발자와 테스터, PM을 관리하는 일을 했다.

최근작
『Head First Agile : 개념부터 시험 대비까지, 가장 애자일다운 안내서』(2019)
『Head First PMP : 체계적인 프로젝트 관리를 위한 국제 공인 학습법 (개정3판, PMBOK® 지침서 5판 시험대비용)』(2014)


이재윤 감수

다양한 분야에 관심이 많은 개발자. 하루하루 호기심을 충족하기 위해 노력 중이다. 카카오를 거쳐 현재는 미국계 스타트업에서 일하고 있다.


정영수 감수

읽고 배우기를 좋아하는 개발자. 네이버를 거쳐 현재는 미국계 테크 스타트업에서 일하고 있다.


이수겸 역자

책을 통해 세상을 배웠고, 프로그래밍도 그중 하나다. 한국과 미국에서 소프트웨어 엔지니어로 각각 10여 년을 보냈고, 현재는 로블록스에서 백엔드 엔지니어로 일하고 있다.

목차

이 책에 쏟아진 찬사

헤드 퍼스트 시리즈에 쏟아진 찬사

오라일리의 다른 책

지은이 소개

옮긴이의 말



Chapter 00 들어가며 | 이 책을 읽는 방법



__이 책의 독자

__이 책이 이렇게 된 이유

__이 책의 구성

__여러분의 두뇌를 정복하는 방법

__일러두기

__테크니컬 리뷰어

__감사의 글



Chapter 01 C#으로 개발 시작하기 | 멋진 프로그램을 만들어 봅시다!



__왜 C#을 배워야 하나요?

__C# 코드 작성과 생태계 탐험에 필요한 도구, 비주얼 스튜디오

__비주얼 스튜디오에서 첫 프로젝트 만들기

__C#으로 게임 만들기

__게임 설계하기

__1단계: 비주얼 스튜디오에서 WPF 프로젝트 생성하기

__2단계:XAML을 사용해서 창 디자인하기

__게임 화면 디자인하기

__XAML 속성을 통해 창 크기와 제목 지정하기

__XAML 그리드에 행과 열 추가하기

__행과 열 크기를 똑같이 조정하기

__그리드에 TextBlock 컨트롤 추가하기

__이제 코드를 작성할 준비가 됐습니다

__게임 초기화 메서드 추가하기

__SetUpGame( ) 메서드 구현하기

__프로그램 실행하기

__새 프로젝트를 소스 제어 시스템에 추가하기

__게임 완성을 위한 마우스 클릭 이벤트 작성하기

__마우스 클릭에 반응하는 TextBlock 만들기

__TextBlock_MouseDown( ) 메서드 채우기

__컨트롤 마우스 클릭 이벤트에 연결하기

__타이머 추가해서 게임 완성하기

__게임에 타이머 기능 추가하기

__디버거로 예외 추적하기

__게임 완성하기

__소스 제어 시스템의 코드 갱신하기



Chapter 02 C#의 매력에 빠져 보기 | 명령문, 클래스, 코드



__콘솔 앱 구성 파일 자세히 살펴보기

__동일한 네임스페이스에 2개의 클래스 두기

__앱을 구성하는 최소 단위, 명령문 알기

__데이터를 다루기 위해 변수 사용하기

__변수를 다루는 새 메서드 만들기

__메서드에 연산자를 사용하는 코드 추가하기

__디버그를 사용해 변수 값의 변화 관찰하기

__변수에 연산자 사용하기

__조건을 검사하는 if 문

__특정 작업을 반복하는 반복문 알기

__코드 조각 기능으로 반복문 작성하기

__UI 역학을 다루는 컨트롤 알아보기

__컨트롤을 실험하기 위한 WPF 애플리케이션 만들기

__앱에 TextBox 컨트롤 추가하기

__TextBlock의 값을 바꾸는 C# 코드 추가하기

__숫자 입력만 허용하는 이벤트 처리기 추가하기

__Slider를 그리드의 아래쪽 행에 추가하기

__C# 코드를 추가해 컨트롤 작동시키기



유니티 연구실 #1 유니티로 C# 탐험하기



__유니티는 강력한 게임 디자인 도구입니다

__유니티 허브 다운로드하기

__유니티 허브를 사용해 새 프로젝트 생성하기

__유니티 레이아웃 조정하기

__씬은 3D 환경입니다

__유니티 게임 오브젝트로 구성된 게임

__게임 오브젝트를 움직이는 이동 기즈모

__게임 오브젝트의 컴포넌트를 보여 주는 인스펙터

__구체 게임 오브젝트에 머티리얼 추가하기

__구체 회전시키기

__툴 보기와 씬 기즈모로 씬 카메라 움직이기

__창의성을 발휘하세요!



Chapter 03 객체를 소개합니다 | 이해하기 쉬운 코드 만들기



__재사용되는 유용한 코드 짜기

__매개 변수를 받고 값을 반환하는 메서드

__카드 뽑기 앱 만들기

__PickRandomCards 콘솔 앱 만들기

__PickSomeCards( ) 메서드 마무리하기

__CardPicker 클래스 마무리하기

__애나가 만드는 게임 알아보기

__고전 게임의 종이 프로토타입 만들기

__WPF 버전으로 카드 뽑기 앱 만들기

__쌓는 형태로 컨트롤을 배치하는 컨테이너 StackPanel

__CardPicker 클래스 재사용하기

__Grid와 StackPanel을 사용해서 메인 창에 컨트롤 배치하기

__카드 뽑기 데스크톱 앱의 UI 배치하기

__객체를 사용해 애나의 문제 풀어 보기

__클래스를 사용해 객체 생성하기

__클래스로부터 만든 새 객체, 인스턴스

__애나를 위해 가져온 해결책, 객체

__필드를 사용해 인스턴스의 상태 기록하기

__고마운 기억 공간, 힙

__프로그램의 마음에는 무엇이 있나?

__읽기 어려운 코드

__직관적인 클래스와 메서드 이름 사용하기

__두 사람의 상호작용을 위한 클래스 만들기

__객체를 쉽게 초기화하는 C# 코드

__C# 대화형 창을 사용해서 C# 코드 실행하기



Chapter 04 타입과 참조 | 참조 이해하기



__오언은 도움이 필요합니다!

__다양한 타입의 데이터가 존재하는 캐릭터 시트

__데이터의 종류를 결정하는 변수의 타입

__정수를 저장할 수 있는 여러 C# 타입들

__문자열을 다뤄 봅시다

__코드에 직접 기록되는 값, 리터럴 알아보기

__변수는 데이터를 담는 컵

__다양한 크기의 타입 알아보기

__5파운드짜리 주머니에 10파운드짜리 데이터 넣기

__캐스팅을 사용해 값 변환하기

__자동 변환이 일어나는 경우 알아보기

__매개 변수 타입과 호환되는 메서드 호출 인수

__오언의 능력치 실험 돕기

__C# 컴파일러를 사용해 문제의 코드 찾기

__참조 변수를 사용해 객체에 접근하기

__다중참조와 부작용

__참조를 사용해 서로 대화하는 객체

__여러 값을 저장하는 배열 알아보기

__참조 변수를 포함하는 배열

__null: 참조가 가리키는 객체가 없습니다

__슬로피 조의 샌드위치 가게에 오신 것을 환영합니다!



유니티 연구실 #2 유니티에서 C# 코드 작성하기



__게임 오브젝트에 C# 스크립트 작동 추가하기

__게임 오브젝트에 C# 스크립트 추가하기

__구체를 회전시키는 C# 코드 작성하기

__중단점 설정하고 게임 디버깅하기

__디버거를 사용해 Time.deltaTime 살펴보기

__Y축 위치를 표시하는 원기둥 추가하기

__클래스에 회전 각도와 속도를 나타내는 필드 추가하기

__Debug.DrawRay를 사용해 3D 벡터의 작동 방식 살펴보기

__게임을 실행해 씬에서 광선 확인하기

__씬에서 공이 점 주위를 회전하도록 만들기

__유니티를 통해 회전과 벡터 자세히 살펴보기

__창의성을 발휘하세요!



Chapter 05 캡슐화 | 데이터 기밀 유지하기



__칼 데미지 계산하기

__데미지를 계산하는 콘솔 앱 만들기

__WPF 애플리케이션에서 데미지 계산기 디자인하기

__WPF 데미지 계산기의 코드 숨김 파일 작성하기

__오언의 칼 데미지 계산기에 대해 토론하기

__오류를 고쳐 봅시다

__Debug.WriteLine을 사용해 진단 정보 출력하기

__실수로 객체를 잘못 사용하는 경우

__캡슐화로 클래스의 데이터 기밀 유지하기

__캡슐화로 클래스의 메서드와 필드에 대한 접근 제어하기

__RealName 필드는 정말로 보호되고 있나요?

__private 필드와 메서드는 같은 클래스의 인스턴스로만 접근할 수 있습니다

__왜 캡슐화를 사용하느냐고요? 객체를 블랙 박스라고 생각해 봅시다

__캡슐화를 사용해 SwordDamage 클래스 개선하기

__캡슐화로 데이터를 안전하게 보호하기

__PaintballGun 클래스를 테스트하는 콘솔 앱 만들기

__속성으로 캡슐화를 쉽게 하기

__Balls 속성을 사용하도록 Main( ) 메서드 수정하기

__자동 구현 속성으로 단순한 코드 만들기

__private setter를 사용해 읽기 전용 속성 만들기

__탄창의 크기를 바꿔 봅시다

__매개 변수가 있는 생성자를 사용해서 속성 초기화하기

__new 키워드 사용 시 인수 지정하기



Chapter 06 상속 | 객체의 가계도



__다른 무기의 데미지 계산하기

__switch 문을 사용해 조건을 맞춰 보기

__하나만 더요. 단검의 데미지를 계산할 수 있을까요? 철퇴나 방망이는요?

__클래스에서 상속을 사용하면, 코드를 한 번만 작성해도 됩니다

__일반적인 요소에서 구체적인 요소로 클래스 모델 만들기

__동물원 시뮬레이터 설계해 보기

__기본 클래스를 확장하는 하위 클래스

__콜론을 사용해서 기본 클래스 상속하기

__하위 클래스는 메서드를 재정의하거나 상속한 멤버를 다른 것으로 교체할 수 있습니다

__하위 클래스에서만 구현되는 멤버

__디버거로 재정의의 작동 방식 이해하기

__앱을 만들어 virtual과 override 살펴보기

__하위 클래스는 기본 클래스의 메서드를 숨길 수 있습니다

__행위를 상속하기 위해 override 와 virtual 키워드 사용하기

__기본 클래스에 생성자가 있으면, 하위 클래스는 생성자를 호출해야 합니다

__오언의 작업을 마무리해 봅시다

__벌집 관리 시스템 만들기

__Queen 클래스: 여왕벌이 일벌을 관리하는 법

__UI: 디자인 화면에 XAML 추가하기

__벌집 관리 게임의 방향을 결정하는 피드백

__절대로 인스턴스화되지 않는 클래스

__의도적으로 완성되지 않은 추상 클래스

__어떤 클래스는 절대 인스턴스화되면 안 됩니다

__본체가 없는 추상 메서드 알아보기

__추상 메서드처럼 작동하는 추상 속성 작성하기



유니티 연구실 #3 게임 오브젝트 인스턴스



__유니티에서 게임을 만들어 봅시다!

__Materials 폴더에 새 머티리얼 생성하기

__임의의 씬 위치에 당구공 생성하기

__디버거를 사용해 Random.value 이해하기

__게임 오브젝트를 프리팹으로 만들기

__게임을 제어하는 스크립트 생성하기

__메인 카메라에 스크립트 연결하기

__Play 버튼을 눌러 코드 실행하기

__인스펙터 창을 사용해 게임 오브젝트 인스턴스 다루기

__물리 법칙을 통해 공이 겹치지 않게 하기

__창의성을 발휘하세요!



Chapter 07 인터페이스, 캐스팅, is | 약속을 지키는 클래스



__벌 클래스 계층 구조에 새 하위 클래스 추가하기

__캐스팅을 사용해 DefendHive 메서드를 호출할 수 있습니다

__인터페이스는 클래스가 구현해야 하는 메서드와 속성을 정의합니다

__인터페이스 연습하기

__인터페이스의 인스턴스는 만들 수 없지만, 인터페이스를 참조할 수는 있습니다

__인터페이스 참조는 보통의 객체 참조

__인터페이스를 사용해 객체의 작동 정의하기

__IWorder의 Job 속성은 핵입니다

__is를 사용해 객체의 타입 검사하기

__is를 사용해 하위 클래스의 메서드에 접근하기

__서로 다른 동물이 헤엄치거나 무리 사냥을 하도록 하려면 어떻게 해야 할까요?

__인터페이스를 사용해 동일한 작업을 수행하는 클래스 다루기

__is로 안전하게 클래스 계층 구조 탐색하기

__안전한 타입 변환을 위한 또 하나의 키워드: as

__클래스 계층 구조를 오르내리기 위해 업캐스팅과 다운캐스팅 사용하기

__CoffeeMaker를 Appliance로 업캐스팅하기

__Appliance를 다시 CoffeeMaker로 다운캐스팅하기

__인터페이스로도 업캐스팅, 다운캐스팅하기

__다른 인터페이스를 상속하는 인터페이스

__정적 멤버를 가지는 인터페이스

__인터페이스 메서드에 본체를 추가하는 기본 구현

__ScareAdults 메서드와 기본 구현 추가하기

__WPF 컨트롤을 자동으로 갱신하는 데이터 바인딩

__데이터 바인딩을 사용하도록 벌집 관리 시스템 수정하기

__다형성은 객체가 여러 형태를 가질 수 있음을 의미합니다



Chapter 08 열거형과 컬렉션 | 데이터 조직하기



__문자열은 데이터 분류에 적합하지 않습니다

__열거형은 유효한 값의 모음을 다룰 수 있게 해 줍니다

__열거형으로 숫자에 이름을 붙일 수 있습니다

__카드 한 벌을 만드는 데 배열을 사용할 수 있지만요...

__리스트로 아무거나 모아서 쉽게 저장하기

__배열보다 유연한 리스트

__신발장 앱 만들기

__모든 타입을 저장할 수 있는 제네릭 컬렉션

__컬렉션 이니셜라이저는 객체 이니셜라이저와 비슷합니다

__오리 리스트를 만듭시다

__리스트는 쉽지만 정렬은 까다롭습니다

__IComparable<Duck>을 사용해서 리스트 안 오리 정렬하기

__IComparer 사용해서 정렬 방법 지시하기

__비교자 객체 인스턴스 만들기

__ToString( ) 메서드를 재정의해서 객체가 스스로를 설명하게 하기

__Duck과 Card가 자신의 정보를 콘솔에 출력하도록 foreach 반복문 수정하기

__IEnumerable<T>를 사용해 리스트 전체를 업캐스팅하기

__사전을 사용해 키와 값 저장하기

__Dictionary 클래스 기능의 개요

__사전을 사용해 프로그램 만들기

__그 외의 컬렉션 타입들...

__큐는 선입선출입니다

__스택은 후입선출입니다



유니티 연구실 #4 사용자 인터페이스



__플레이어가 공을 클릭했을 때 점수 증가시키기

__게임의 두 가지 모드

__게임 모드 추가하기

__게임에 UI 추가하기

__UI에 점수를 표시하는 텍스트 구성하기

__게임을 시작하는 메서드를 호출하는 버튼 추가하기

__Play Again 버튼과 Score 텍스트 작동시키기

__게임의 코드 마무리하기

__창의성을 발휘하세요!



Chapter 09 LINQ와 람다 | 데이터 통제하기



__지미는 캡틴 어메이징의 광팬입니다

__LINQ를 사용해 컬렉션 쿼리하기

__LINQ는 어떤 IEnumerable<T> 참조로도 작동합니다

__LINQ 쿼리 문법

__LINQ 객체 다루기

__LINQ 쿼리를 사용해 지미의 앱 마무리하기

__var 키워드로 변수 타입 자동으로 추론하기

__LINQ 쿼리는 결과 값에 접근하기 전까지 실행되지 않습니다

__group 쿼리를 사용해 시퀀스를 여러 그룹으로 분리하기

__join 쿼리를 사용해 두 시퀀스의 데이터 합치기

__new 키워드로 익명 타입 생성하기

__지미의 만화 컬렉션 앱에 유닛 테스트 프로젝트 추가하기

__첫 유닛 테스트 작성하기

__GetReviews( ) 메서드의 유닛 테스트 작성하기

__유닛 테스트를 사용해서 경계 조건과 이상한 데이터 처리하기

__=> 연산자를 사용해 람다 식 만들기

__람다 시승하기

__람다를 사용해 Clown 리팩터링하기

__람다에서 조건문을 위한 ?: 연산자 사용하기

__람다 식과 LINQ

__LINQ 쿼리는 메서드 체이닝 형태로 작성할 수 있습니다

__=> 연산자 사용해서 switch 식 만들기

__Enumerable 클래스 살펴보기

__열거 가능한 시퀀스 직접 생성하기

__yield return 문을 사용해 직접 시퀀스 생성하기

__yield return 문을 사용해 ManualSportSequence 리팩터링하기



Chapter 10 파일 읽고 쓰기 | 한 개의 바이트도 놓치지 않을 거예요!



__.NET은 스트림을 사용해 데이터를 읽고 기록합니다

__서로 다른 스트림은 서로 다른 대상을 읽고 씁니다

__FileStream은 파일에 있는 바이트를 읽고 씁니다

__손쉬운 3단계: 텍스트를 파일에 쓰기

__스윈들러의 악마적 계획

__StreamReader를 사용해서 파일 읽기

__데이터는 여러 스트림을 거쳐 이동할 수 있습니다

__정적 File, Directory 클래스를 사용해 파일과 디렉터리 다루기

__IDisposable을 사용해 객체 확실히 닫기

__MemoryStream을 사용해 메모리에 데이터 스트림하기

__객체가 직렬화될 때 어떤 일이 일어나나요?

__객체의 상태는 정확히 무엇이고, 어떤 것이 저장되나요?

__JsonSeriallization을 사용해 객체 직렬화하기

__JSON은 특정한 C# 타입이 아닌 데이터만 포함합니다

__다음 화: 데이터를 깊게 파고들어 봅시다

__C# 문자열은 유니코드로 인코딩됩니다

__비주얼 스튜디오에서 유니코드는 잘 작동합니다

__.NET은 글자와 텍스트를 유니코드로 저장합니다

__C#은 데이터 전송을 위해 byte 배열을 사용할 수 있습니다

__BinaryWriter를 사용해 이진 데이터 기록하기

__BinaryReader를 사용해 데이터 다시 읽어 들이기

__16진수 덤프는 파일에 있는 바이트 값을 확인할 수 있게 해 줍니다

__StreamReader를 사용해 16진수 덤프 앱 만들기

__명령줄 인수를 사용하도록 16진수 덤프 앱 수정하기



유니티 연구실 #5 레이캐스팅



__새 유니티 프로젝트 생성하고 씬 뷰 구성하기

__카메라 구성하기

__플레이어 게임 오브젝트 생성하기

__유니티의 내비게이션 시스템을 소개합니다

__내비메시 설정하기

__플레이어가 자동으로 플레이 영역 이동하게 만들기



Chapter 11 객체의 죽음 | 캡틴 어메이징



__객체의 삶과 죽음

__가비지 컬렉션 클래스를 사용해 가비지 컬렉션 강제하기

__무언가를 할 마지막 기회, 종료자

__종료자는 정확히 언제 실행되나요?

__종료자는 다른 객체에 의존할 수 없습니다

__구조체는 객체처럼 보이지만...

__값은 복제되고, 참조는 할당됩니다

__구조체는 값 타입, 객체는 참조 타입입니다

__스택 vs 힙: 메모리에 대해서

__out 매개 변수를 사용해 한 개 이상 값을 반환하는 메서드 만들기

__ref 한정자를 사용해 참조로 전달하기

__선택적 매개 변수로 기본값 설정하기

__null 참조는 어떤 객체도 참조하지 않습니다

__null을 허용하지 않는 참조 타입은 NRE를 방지해 줍니다

__null 병합 연산자 ??로 null 값 다루기

__null을 허용하며 안전하게 처리할 수 있는 nullable 값 타입

__예전 같지 않은 ‘캡틴’ 어메이징

__기존 클래스에 새로운 작동을 추가하는 확장 메서드

__string 기본 타입 확장하기



Chapter 12 예외 처리 | 계속 불만 끄는 건 짜증 나죠



__16진수 덤프 앱은 명령줄에서 파일명을 읽어 들입니다

__예외가 발생하면 CLR이 예외 객체를 생성합니다

__모든 예외 객체는 System.Exception을 상속합니다

__덤프할 수 없는 파일도 있습니다

__위험한 메서드를 호출하면 어떤 일이 벌어지나요?

__try/catch 문으로 예외 처리하기

__디버거로 try/catch 흐름 추적하기

__항상 실행해야 할 코드가 있으면, finally 블록을 사용하세요

__System.Exception을 처리하는 catch-all 예외

__상황에 맞는 예외를 사용하세요

__정확한 예외 처리기를 만드는 데 도움을 주는 예외 필터

__최악의 catch 블록: catch-all과 주석

__임시 방편도 괜찮아요



유니티 연구실 #6 씬 내비게이션



__작업하던 유니티 프로젝트를 이어서 진행해 봅시다

__씬 뷰에 플랫폼 추가하기

__베이크 옵션을 사용해 Platform을 걸을 수 있는 오브젝트로 만들기

__내비메시에 계단과 경사로 포함시키기

__내비메시의 높이 문제를 고쳐 봅시다

__내비메시 장애물 추가하기

__장애물을 위아래로 이동시키는 스크립트 추가하기

__창의성을 발휘하세요!



Appendix Ⅰ ASP.NET Core Blazor 프로젝트 | Visual Studio for Mac 학습자 가이드



__왜 C#을 배워야 하나요?

__Visual Studio for Mac에서 첫 프로젝트 만들기

__C#으로 게임 만들기

__비주얼 스튜디오에서 Blazor WebAssembly 앱 생성하기

__브라우저에서 Blazor 웹 앱 실행하기

__이제 코드를 작성할 준비가 됐습니다

__이모지 리스트를 생성하고 앱에 표시하기

__동물 이모지의 순서 섞기

__디버거에서 게임 실행하기

__새 프로젝트를 소스 제어 시스템에 추가하기

__마우스 클릭 이벤트 작성하기

__마우스 클릭에 반응하는 버튼 만들기

__이벤트 처리기 테스트하기

__디버거로 예외 추적하기

__오류를 추적해 봅시다

__승리하면 게임을 초기화하는 코드 추가하기

__게임에 타이머 기능 추가하기

__내비게이션 메뉴 정리하기

__UI의 역학을 좌우하는 컨트롤

__새 Blazor WebAssembly 앱 프로젝트 생성하기

__슬라이더 컨트롤이 있는 페이지 만들기

__텍스트 입력 추가하기

__색상 선택기와 날짜 선택기 추가하기

__Blazor로 카드 뽑기 앱 만들기

__행과 열로 구성된 페이지

__슬라이더는 데이터 바인딩을 사용해 변수를 갱신합니다

__슬로피 조의 싸구려 샌드위치 가게에 오신 것을 환영합니다!





Appendix Ⅱ 코드 카타 | 숙련자와 참을성 없는 사람을 위한 코드 카타 가이드



찾아보기


리뷰

구매자 별점

0.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전