본문 바로가기

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

개정판 | 이것이 C#이다 상세페이지

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

개정판 | 이것이 C#이다

단계별 학습으로 탄탄한 기본기를 다져줄 C# 입문서
소장종이책 정가36,000
전자책 정가20%28,800
판매가28,800
개정판 | 이것이 C#이다 표지 이미지

개정판 | 이것이 C#이다작품 소개

<개정판 | 이것이 C#이다> 전문가로 레벨업! C# 프로그래밍 완전 정복





이 책은 C#의 기본, 고급 문법과 더불어 기초 클래스 라이브러리까지 다루고 있다. 총 22개 장으로, 앞서 배운 내용을 활용하면서 단계별로 학습할 수 있도록 구성했다. 입문자의 눈높이에 맞춰 친절하게 설명한 핵심 문법을 익히며 프로그래밍 동작 원리를 이해하고, 예제 코드로 실습을 진행하며 실력을 향상시킬 수 있다. 또한, [비타민 퀴즈]와 [연습문제]를 통해 배운 내용을 스스로 점검하고 부족한 부분을 보완할 수 있다.





『이것이 C#이다(3판)』으로 C# 프로그래밍의 기본기를 탄탄하게 다지고, 전문가로 성장해 보자!


출판사 서평

『이것이 C#이다(3판)』과 함께 프로그래밍의 세계로 떠나봅시다!





C#은 엔지니어의 생산성과 표현력을 향상시키는 방향을 유지하면서 꾸준히 여러 문법을 추가해 왔습니다. 언어의 발전과 더불어 .NET 생태계도 긍정적인 확장을 이뤘습니다. 기계 제어부터 웹, 클라우드, 게이밍, AI에 이르기까지 다양한 산업에서 사용하고, 윈도우뿐 아니라 맥OS와 리눅스에서도 개발과 배포가 가능해진 지 꽤 오랜 시간이 지났습니다. C#을 사용하는 전 세계의 개발자도 계속 늘었고요. 『이것이 C#이다(3판)』을 통해 이렇게 멋진 C#의 세계에 빠져봅시다.



1장부터 10장까지는 기본 문법을 다루고 있어 쉽게 소화할 수 있는 내용입니다. 11장부터 17장까지는 앞에서 축적한 지식을 이용해 익힐 수 있는 고급 문법을 다루며, 18장부터 22장까지는 .NET 클래스 라이브러리의 활용을 다룹니다. 이 책이 여러분에게 친절한 가이드가 되기를 바랍니다.



이 책이 필요한 독자

- 기초 문법부터 차근차근 C#을 배우고 싶다.

- 신규 프로젝트 때문에 C#을 공부해야 한다.

- 게임을 만들고 싶어 C#을 배우려고 한다.



이 책에서 다루는 내용

- C# 프로그래밍을 위한 기초 문법

- 객체지향 프로그래밍 소개

- 프로그래머의 생산성을 높여줄 고급 문법



- .NET 프레임워크 활용 방법과 메모리 관리 방법


저자 프로필


저자 소개

검색 엔진 포털, 통신 장비, 반도체 공정 자동화, 무기 체계 등 다양한 도메인에 걸쳐 소프트웨어를 개발해 왔다. 현재는 캘리포니아 소재 스타트업에서 소프트웨어 엔지니어로 근무 중이다.

엔지니어로 일하면서 『이것이 자료구조+알고리즘이다 with C 언어』(2022), 『그로킹 딥러닝』(2019)을 비롯하여 10여 권의 저서와 1권의 역서를 펴냈다

목차

Chapter 01 | 프로그래밍을 시작합시다

1.1 프로그래밍 언어의 역사

__컴퓨터의 시작, 프로그래밍의 시작

__포트란의 탄생

__초등학생도 프로그래밍할 수 있게 한 베이직

__유닉스의, 유닉스에 의한, 유닉스를 위한 C

__C+1 == C++

__더 나은 세상을 위한 C#

1.2 C#의 기본 파일과 환경 설정

__프로그램을 이루는 소스 파일과 프로젝트

__비주얼 스튜디오 환경 설정



Chapter 02 | 처음 만드는 C# 프로그램

2.1 Hello, World!

2.2 첫 번째 프로그램 뜯어보기

__using System;

__using static System.Console;

__namespace Hello { }

__class MainApp { }

__// 프로그램 실행이 시작되는 곳

__static void Main(string[ ] args) { }

__if(args.Length == 0) { }

2.3 CLR에 대하여

[연습문제]



Chapter 03 | 데이터 보관하기

3.1 다양한 데이터의 종류

3.2 변수

3.3 값 형식과 참조 형식

__스택과 값 형식

__힙과 참조 형식

3.4 기본 데이터 형식

__숫자 데이터 형식

[Vitamin Quiz 3-1]

[Vitamin Quiz 3-2]

__부동 소수점 형식

__문자 형식과 문자열 형식

[Vitamin Quiz 3-3]

__논리 형식

__object 형식

__박싱과 언박싱

__데이터 형식 바꾸기

3.5 상수와 열거 형식

__상수: 전 언제나 변하지 않을 거예요

__열거 형식: 여러 개의 상수를 정리해요

3.6 Nullable 형식

3.7 var: 데이터 형식을 알아서 파악하는 똑똑한 C# 컴파일러

3.8 공용 형식 시스템

3.9 문자열 다루기

__문자열 안에서 찾기

__문자열 변형하기

__문자열 분할하기

__문자열 서식 맞추기

[연습문제]



Chapter 04 | 데이터를 가공하는 연산자

4.1 C#에서 제공하는 연산자 둘러보기

4.2 산술 연산자

4.3 증가 연산자와 감소 연산자

4.4 문자열 결합 연산자

4.5 관계 연산자

4.6 논리 연산자

4.7 조건 연산자

4.8 null 조건부 연산자

4.9 비트 연산자

__시프트 연산자

__비트 논리 연산자

4.10 할당 연산자

4.11 null 병합 연산자

4.12 연산자의 우선순위

[연습문제]



Chapter 05 | 코드의 흐름 제어하기

5.1 분기문

__if, else, else if

__if 문 중첩해서 사용하기

__switch 문

__switch 식

5.2 반복문

__while

__do while

__for

__중첩 for

__foreach

__for 또는 while을 이용한 무한 반복 코드

5.3 점프문

__break

__continue

__goto

5.4 패턴 매칭

__선언 패턴

__형식 패턴

__상수 패턴

__프로퍼티 패턴

[Vitamin Quiz 5-1]

__관계 패턴

__논리 패턴

__괄호 패턴

__위치 패턴

__var 패턴

__무시 패턴

__목록 패턴

[연습문제]



Chapter 06 | 메소드로 코드 간추리기

6.1 메소드란?

6.2 return에 대하여

6.3 매개변수에 대하여

6.4 참조에 의한 매개변수 전달

6.5 메소드의 결과를 참조로 반환하기

6.6 출력 전용 매개변수

6.7 메소드 오버로딩

6.8 가변 개수의 인수

6.9 명명된 인수

6.10 선택적 인수

6.11 로컬 함수

[연습문제]



Chapter 07 | 클래스

7.1 객체지향 프로그래밍과 클래스

[Vitamin Quiz 7-1]

7.2 클래스의 선언과 객체의 생성

7.3 객체의 삶과 죽음에 대하여: 생성자와 종료자

__생성자

__종료자

7.4 정적 필드와 메소드

7.5 객체 복사하기: 얕은 복사와 깊은 복사

7.6 this 키워드

__나

__this( ) 생성자

7.7 접근 한정자로 공개 수준 결정하기

7.8 상속으로 코드 재활용하기

7.9 기반 클래스와 파생 클래스 사이의 형식 변환

7.10 오버라이딩과 다형성

7.11 메소드 숨기기

7.12 오버라이딩 봉인하기

7.13 읽기 전용 필드

7.14 중첩 클래스

7.15 분할 클래스

7.16 확장 메소드

[Vitamin Quiz 7-2]

7.17 구조체

7.18 튜플

[연습문제]



Chapter 08 | 인터페이스와 추상 클래스

8.1 인터페이스의 선언

8.2 인터페이스는 약속이다

[Vitamin Quiz 8-1]

8.3 인터페이스를 상속하는 인터페이스

8.4 여러 인터페이스, 한꺼번에 상속하기

[Vitamin Quiz 8-2]

8.5 인터페이스의 기본 구현 메소드

8.6 추상 클래스: 인터페이스와 클래스 사이

[연습문제]



Chapter 09 | 프로퍼티

9.1 public 필드의 유혹

9.2 메소드보다 프로퍼티

9.3 자동 구현 프로퍼티

__자동 구현 프로퍼티 뒤에서 일어나는 일

9.4 프로퍼티와 생성자

9.5 초기화 전용 자동 구현 프로퍼티

9.6 프로퍼티 초기화를 강제하는 required 키워드

9.7 레코드 형식으로 만드는 불변 객체

__레코드 선언하기

__with를 이용한 레코드 복사

__레코드 객체 비교하기

9.8 무명 형식

9.9 인터페이스의 프로퍼티

9.10 추상 클래스의 프로퍼티

[연습문제]



Chapter 10 | 배열과 컬렉션 그리고 인덱서

10.1 All for one, one for all

10.2 배열을 초기화하는 세 가지 방법

10.3 알아두면 삶이 윤택해지는 System.Array

10.4 배열 분할하기

10.5 2차원 배열

[Vitamin Quiz 10-1]

[Vitamin Quiz 10-2]

10.6 다차원 배열

10.7 가변 배열

10.8 컬렉션 맛보기

__ArrayList

__Queue

__Stack

__Hashtable

10.9 컬렉션을 초기화하는 방법

10.10 인덱서

10.11 foreach가 가능한 객체 만들기

[연습문제]



Chapter 11 | 일반화 프로그래밍

11.1 일반화 프로그래밍이란?

11.2 일반화 메소드

11.3 일반화 클래스

11.4 형식 매개변수 제약시키기

[Vitamin Quiz 11-1]

11.5 일반화 컬렉션

__List<T>

__Queue<T>

__Stack<T>

__Dictionary<TKey, TValue>

11.6 foreach를 사용할 수 있는 일반화 클래스

[연습문제]



Chapter 12 | 예외 처리하기

12.1 예외에 대하여

12.2 try~catch로 예외 받기

12.3 System.Exception 클래스

12.4 예외 던지기

12.5 try~catch와 finally

12.6 사용자 정의 예외 클래스 만들기

12.7 예외 필터하기

12.8 예외 처리 다시 생각해보기

[연습문제]



Chapter 13 | 대리자와 이벤트

13.1 대리자란?

13.2 대리자는 왜, 언제 사용하나요?

13.3 일반화 대리자

13.4 대리자 체인

13.5 익명 메소드

13.6 이벤트: 객체에 일어난 사건 알리기

13.7 대리자와 이벤트

[연습문제]



Chapter 14 | 람다식

14.1 람다식, 너는 어디에서 왔니?

14.2 처음 만나는 람다식

14.3 문 형식의 람다식

14.4 Func와 Action으로 더 간편하게 무명 함수 만들기

__Func 대리자

__Action 대리자

14.5 식 트리

14.6 식으로 이루어지는 멤버

[연습문제]



Chapter 15 | LINQ

15.1 데이터! 데이터! 데이터!

15.2 LINQ의 기본

__from

__where

__orderby

__select

15.3 여러 개의 데이터 원본에 질의하기

15.4 group by로 데이터 분류하기

15.5 두 데이터 원본을 연결하는 join

__내부 조인

__외부 조인

15.6 LINQ의 비밀과 LINQ 표준 연산자

[연습문제]



Chapter 16 | 리플렉션과 애트리뷰트

16.1 리플렉션

__Object.GetType( ) 메소드와 Type 클래스

[Vitamin Quiz 16-1]

__리플렉션을 이용해서 객체 생성하기

__형식 내보내기

16.2 애트리뷰트

__애트리뷰트 사용하기

__호출자 정보 애트리뷰트

__내가 만드는 애트리뷰트

[연습문제]



Chapter 17 | dynamic 형식

17.1 dynamic 형식 소개

__덕 타이핑

17.2 COM과 .NET 사이의 상호 운용성을 위한 dynamic 형식

17.3 동적 언어와의 상호 운용성을 위한 dynamic 형식



Chapter 18 | 파일 다루기

18.1 파일 정보와 디렉터리 정보 다루기

__예제 프로그램: 디렉터리/파일 정보 조회하기

__예제 프로그램: 디렉터리/파일 생성하기

18.2 파일을 읽고 쓰기 위해 알아야 할 것들

__System.IO.Stream 클래스

[Vitamin Quiz 18-1]

18.3 실수를 줄여주는 using 선언

18.4 이진 데이터 처리를 위한 BinaryWriter/BinaryReader

[Vitamin Quiz 18-2]

18.5 텍스트 파일 처리를 위한 StreamWriter/StreamReader

18.6 객체 직렬화하기

[Vitamin Quiz 18-3]



Chapter 19 | 스레드와 태스크

19.1 프로세스와 스레드

__스레드 시작하기

__스레드 임의로 종료하기

__스레드의 일생과 상태 변화

__인터럽트: 스레드를 임의로 종료하는 다른 방법

__스레드 간 동기화

[Vitamin Quiz 19-1]

[Vitamin Quiz 19-2]

19.2 Task와 Task<TResult> 그리고 Parallel

__System.Threading.Tasks.Task 클래스

__코드의 비동기 실행 결과를 주는 Task<TResult> 클래스

__손쉬운 병렬 처리를 가능케 하는 Parallel 클래스

19.3 async 한정자와 await 연산자로 만드는 비동기 코드

__.NET이 제공하는 비동기 API 맛보기



Chapter 20 | WinForm으로 만드는 사용자 인터페이스

20.1 도대체 무슨 일이 일어나고 있는 것일까?

20.2 C# 코드로 WinForm 윈도우 만들기

20.3 Application 클래스

__메시지 필터링

20.4 윈도우를 표현하는 Form 클래스

__Form에 정의된 이벤트와 이벤트 처리기 연결하기

__Form의 프로퍼티를 조절하여 윈도우 모양 바꾸기

__Form 위에 컨트롤 올리기

20.5 폼 디자이너를 이용한 WinForm UI 구성

__새 프로젝트 만들기

__Form

__GroupBox, Label, ComboBox, CheckBox, TextBox

__TrackBar, ProgressBar

__Button, Form, Dialog

__TreeView, ListView

20.6 사용자 인터페이스와 비동기 작업

__새 프로젝트 만들기

__CopySync( )/CopyAsync( ) 메소드 구현하기

__UI 구성하기



Chapter 21 | 네트워크 프로그래밍

21.1 네트워크 프로그래밍에 앞서 알아둬야 할 기초

__인터넷의 유래

__TCP/IP 스택

__TCP/IP의 주소 체계: IP 주소

__포트

__TCP/IP의 동작 과정

21.2 TcpListener와 TcpClient

21.3 흐르는 패킷

21.4 프로토콜 설계와 네트워크 애플리케이션 프로그래밍 예제

__파일 업로드 프로토콜

__파일 업로드 서버와 클라이언트 구현하기

__서버/클라이언트가 같이 사용할 클래스 라이브러리 만들기

__파일 업로드 서버 구현하기

__클라이언트 구현하기

__파일 업로드 시험하기



Chapter 22 | 가비지 컬렉션

22.1 가비지 컬렉터를 아시나요?

22.2 개처럼 할당하고 정승처럼 수거하라

22.3 세대별 가비지 컬렉션

22.4 가비지 컬렉션을 이해했습니다. 우리는 뭘 해야 하죠?

__객체를 너무 많이 할당하지 마세요

__너무 큰 객체 할당을 피하세요

__너무 복잡한 참조 관계는 만들지 마세요

__루트를 너무 많이 만들지 마세요

__작은 구멍이 댐을 무너뜨립니다


리뷰

구매자 별점

1.0

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

1명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

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

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

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

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



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

spinner
모바일 버전