메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

이것이 C#이다(3판)

단계별 학습으로 탄탄한 기본기를 다져줄 C# 입문서

한빛미디어

집필서

판매중

  • 저자 : 박상현
  • 출간 : 2023-05-04
  • 페이지 : 792 쪽
  • ISBN : 9791169210928
  • 물류코드 :11092
  • 구판정보 :이 도서는 <이것이 C#이다(개정판)>의 개정판입니다. 구판 정보 보기
  • 초급 초중급 중급 중고급 고급
4.9점 (10명)
좋아요 : 3

전문가로 레벨업! C# 프로그래밍 완전 정복

 

 

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

 

 

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

박상현 저자

박상현

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

엔지니어로 일하면서 『이것이 자료구조+알고리즘이다 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 가비지 컬렉션을 이해했습니다. 우리는 뭘 해야 하죠? 

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

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

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

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

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

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

 

 

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

 

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

 

이 책이 필요한 독자

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

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

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

 

이 책에서 다루는 내용

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

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

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

 

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

요즘 코딩코딩 하는데, 교육만 많지 실제 뭔가 만들어서 결과물을 내어주는 것들이 잘 없습니다.

상술인거죠.

코딩 배워놓으면 좋다~ 라고 하지만

그 코딩으로 뭔가 하나 만들어 보는게 거의 없는데...

제가 C를 포기(?) 한것이 그러한 이유 입니다.

한참 윈도우 사용하는데 C로 열심히 *로 삼각형 그리고 해봤자...

그래서 이걸로 뭘 할 수 있는데~ 이거 왜 하는데~ 라는 생각만...

그러다, <이것이 C#이다>를 접하게 되었습니다.

 

탄탄한 기본기를 다져줄 C# 입문서 랍니다.

하~

입문서라... 어디 한번 봅시다. 입문서가 맞는지~

 

오~

입문서 맞군요.

동영상 강좌에 소스 및 Q&A 커뮤니티까지...

입문자의 가장 힘든점은, 하다가 안될때 물어볼 곳이 없다는 것이죠.

저자와 함께한다니 더 든든합니다.

 

입문서답게 학습로드맵을 제시 합니다.

학습 로드맵을 보고 순차적으로 따라 하면 될 것 같네요.

알고 있는 부분은 해당 부분으로 바로 넘어가도 될것 같고...

중간중간에 난이도도 나와 있으니 내가 못 따라가는건지 난이도가 높은건지 바로 확인 가능하네요~

 

입문서 답습니다.

836페이지까지...

그래서 책의 종이가 좀 얇습니다.

지금도 보시다시피 뒷면이 보이는 편입니다.

하지만 836페이지나 되지만 두껍지는 않습니다.

836페이지나 된다는건~ 입문자를 위한 모든걸 다 담고 있다는 뜻이겠죠?

 

이렇게 각 챕터마다 학습목표가 간략히 나와 있습니다.

이러한 내용은 강의 하시는 분들에게 딱 좋을 것 같네요~

저도 책 쓸때 이러한 부분 참고해야 겠습니다.

 

C#의 입문서 뿐만 아니라 프로그램을 처음 접하는 분들을 위해서도 좋았던것 같습니다.

컴퓨터의 시작과 프로그래밍의 시작을 간략히 소개하는데 있을건 다 있습니다.

 

<여기서 잠깐>이라는 부분은 상당히 유용한것 같습니다.

전체 흐름과는 상관이 없지만 알고 가면 좋은것들을 따로 묶어 둬서 프로그래밍에 대한 주변 지식을 쌓는데 큰 도움이 됩니다.

 

미니컴퓨터가 얼마나 미니인지도 알려주는...

아이스브레이킹 하기 좋은 혹은 잘난체 하기 좋은~ ^^;

 

이 책이 또 맘에 드는 부분중 하나가...

저렇게 중간중간에 볼드체로 독자 혹은 학생이 직접 물어보는 듯한 말투로 독자가 궁금했던 내용을 미리 물어봅니다.

그리고 그것에 대해 답변을 하죠.

실제 강의드는 느낌으로~

 

사소하게 프로그램 다운로드 위치가 바뀌었을때 어떻게 해야 하는지도 안내 합니다.

실제 초보자들은 책에 나와 있는 내용 그대로 했음에도 불구하고 시간이 지나면서 링크들이 바뀌는 것에 대해 대처를 하기 힘든데, 어떻게 해야하는지 안내해줌으로써 이 책이 두고두고 시간이 지나도 유용하다는 것을 알려줍니다.

 

역시나 프로그램에서 Hello World!가 빠질수 없죠~

 

소스도 이렇게 친절히 안내하고 있습니다.

줄번호까지 포함되어 있습니다.

 

아~ Hello World가 저때 시작되었구나~

누군가는 시작했을거라 생각 했는데~ 또하나 아는체 할게 생겼습니다. ^^;

 

좌·절·금·지

솔찍히 프로그램이 쉬운건 아닙니다.

특히나 초반에는 제가 앞서 언급한것처럼 그래서 이걸로 뭐 할 수 있는데?

Hello World 출력하는게 뭐~

라는 생각에 쉽게 포기하는 경우도 많죠~

이렇게 중간중간에 힘을 주는 부분도 잊지 않았습니다.

 

오래전부터 사용해왔던 세미콜론...

왜 없어지지 않았는지도~

저는 쓰는게 좋던데...

다른 분들은 불편하신지...

물론, 저는 한문장에 몰아쓰는건 하진 않습니다.

오히려 보기 힘들어요~

 

이렇게 해당 소스의 실행결과도 보여줍니다.

위 소스를 실행하게 되면 어떤 결과가 어떻게 나오는지도 알아야 내가 한게 맞는지 틀렸는지도 알겠죠?

 

대부분의 연산자가 거의 동일하고 일부 몇몇 연산자가 다르거나 처음본것들이네요~

조건부 연산자나 병합 연산자는...

 

역시나 산술연산자는 다를게 없다는...

 

"인터페이스는 약속이다"

정말 많이 들어 왔던 인터페이스에 대해서도 알기 쉽게 설명해주죠~

 

배열의 경우도 사용법은 다 비슷비슷 하네요~

입문서 답게 초기화 하는 방법들을 다 알려 줍니다.

상황에 맞게 사용 하면 되겠죠?

 

아~

윤택해지는 ...

점점 어려워집니다. ^^;

여기까지 왔다면 저정도는 괜찮을려나요?

 

일반화 프로그래밍~

프로그램을 거의 독학으로 하다시피해서 이런 부분은 좀 어렵네요~

특히나 객체지향은 거의 포기~ ^^;

 

아~ 트리...

자료구조와 알고리즘에서 열심히 했죠~

쉽게 설명 부탁드려요~ ^^;

 

뭔가 시스템에 파일을 저장도 할 수 있고, 폴더 등도 다룰 수 있습니다.

그러면 데이터를 저장하거나(데이터베이스 전에 파일 등으로...) 사진이나 여러 미디어 파일을 다룰 수 도 있을 것 같네요.

 

하하하~

교수님들 좋을 듯 하네요~

이런 퀴즈까지 있으니 잘 활용하면 좋을듯 합니다.

 

서두에 말씀드린것처럼 텍스트로 뭔가 학습만 하면, 그래서 이걸로 뭐하는데~

요즘 손에서 손가락으로 까딱까딱 하기만 해도 다양한걸 할 수 있는 프로그램을 사용해온 사람들에게, 간단하게나마 윈도우 프로그램을 만들어 보는 챕터도 있습니다.

 

또한, 인터넷 시대에 당연히 네트워크를 통해 서버나 다른 PC간의 통신도 되어야 겠죠?

 

챕터의 끝은 "가비지 컬렉터"가 위치 합니다.

요즘 프로그램들은 잘 만들어져 있다보니 이러한 것을 대부분 자동으로 진행하지만 이것 역시 알아두어야 하는것이고 상황에 따라서 직접 작업해야 할 수도 있습니다.

 

효율적인 코드를 위해서 어떤것들을 지키면 좋은지도 이야기 해줍니다.

독학으로 할때 이런 팁을 알 수 없죠~ ^^;

 

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

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

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

첫번째, 두번째는 공감합니다.

프로그램을 처음 접하는 사람도 충분히 볼 수 있는 책이고,

이미 다른 프로그램을 다루던 사람도 충분히 볼 수 있습니다.

세번째는... 음...

게임 자체를 이야기 하는게 아니라서~

게임을 만들기 위해 기반을 다지는 것 정도로만~

하지만, 게임 만드시는 분이 이 책의 내용을 모르고서는 힘들듯 하네요.

코딩이라는걸 해볼까? 해보고 싶다? 라는 분들 적극 추천합니다.

뭐 이것저것 언어들 이야기 하고들 있지만, 기본 베이스부터 실질적인것까지 자세히 잘 나와 있습니다.

적극 추천!!!

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

C#은 많은 곳에서 활용되고 있다. 나만해도 다른 프로그래밍 언어는 몰라도 C#은 계속 배워오고 있는데, 시작은 유니티로 게임 개발을 하고 싶어서였다. 프로그래밍 역사를 잘 아는 것은 아니지만 C에서 C+, C++ 그리고 C#에 이르기까지 다른 언어와 비교해 C#은 좀 더 폭넓게 쓰이면서 그 중에선 쉬운 언어의 느낌이다.

한빛미디어에서 출판한 <이것이 C#이다(3판)>는 새로운 C# 입문서다. 시중에 이미 많은 C# 책들이 있지만 그럼에도 계속해서 새로운 프로그래밍 입문 서적이 나오는 것은, 같은 프로그래밍 언어라 하더라도 계속해서 업그레이드가 되기 때문이고, 이 책은 개정판으로 C# 7.2버전을 반영하고 있다.

<이것이 C#이다>는 대부분의 프로그래밍 서적이 그렇듯, 꽤나 두껍게 구성되어 있다. 총 22개의 챕터로 구성되어 있는데, 크게 보자면 기본 문법과 고급문법, 그 이후의 라이브러리로 나눌 수 있다. 책의 대상 독자는 입문자이지만, C#을 어느 정도 알고 있지만 조금 더 깊이 배우고자 하는 사람에게도 도움이 된다. 다른 C# 책들에 비해 넓은 부분을 다루고 있는데, 그로 인해 C#으로 무엇까지 표현할 수 있는지 인지할 수 있다는 점이 장점이다.

구성이나 내용이 특별하달 것은 없지만, 짜임새 있는 구성, 그리고 무엇보다 좋았던 것은 각 챕터의 필요성에 대해 구어체로 친절하고 자연스럽게 설명한다는 점이다. 옛날에 프로그래밍을 배웠을 때 힘들었던 점은 이걸 왜 하나하나 외우고 있어야 하는가에 대한 부분이었는데, 각 장에 들어서면 그 장에서 배울 것들이 왜 필요한지 설명하고 예제로 들어가 좀 더 배움에 의미가 부여되었다.

앞에서 얘기한 것처럼 책의 두깨는 두껍지만 폭 넓은 내용을 다루고 있기 때문에 지루하다는 느김은 아니다. 필요한 부분에 대해 적절히 예제가 있기 때문에 하나하나 시도해보기도 좋고, 무엇보다 구어체로 되어 있어 마치 이야기를 듣는 것 같은 자연스러운 진행이 좋다.

많은 C#책들이 있지만, 아직 책을 구입하지 않았다면, 이번에 최신 버전을 반영하여 출판된 <이것이 C#이다>를 추천한다. 기본뿐만 아니라, 고급, 심화된 내용까지 다루기 때문에 입문자, 초심자에서 더 나아가기에도 좋은 역할을 하리라 생각한다

 

2023년 05월에 출간된 따끈따끈한 한빛미디어 출판사의 <이것이 C#이다>에 대한 리뷰를 진행하겠습니다. C# 입문자가 쉽고 빠르게 학습할 수 있는 책으로 이 책은 최근에 출시된 C# 11.0을 반영한 개정판입니다.

필자는 한빛미디어의 <이것이 OOO다> 시리즈에 대한 좋은 느낌이 있어 <이것이 C#이다>의 첫인상도 나쁘지 않습니다. 지난 번에 2판에 대해서도 리뷰를 했었는데, 3판에서도 좋은 기회를 주셔서 리뷰를 진행할 수 있었습니다.

<이것이 C#이다>는 약 800여 페이지로 구성되어 있어 휴대하며 읽기는 어려울 것 같습니다. 분철하거나 전자책으로도 출간되어 있으므로 전자책 뷰어가 있으면 전자책으로 만나보는 것도 좋을 것 같습니다. 참고로 필자도 전자책으로 봤습니다.

 

한빛미디어 평가단에 참가하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다.

 

이 책의 매력 포인트

C#은 마이크로소프트사의 'Andres Hejisberg'님이 디자인한 전 세계적으로 많은 사랑을 받는 범용 프로그래밍 언어입니다. <이것이 C#이다>는 C# 입문서로서의 역할을 충실히 이행한 책으로 C#에서 제공하는 대부분의 기능을 맛볼 수 있습니다.

이 책은 간략히 요약한 프로그래밍 언어의 역사부터 시작합니다. 다른 책에서 보기 힘든 내용으로 프로그래머로 진로를 정했다면 상식 수준에서 알아야 할 내용이라고 생각합니다. 이뿐만 아니라, 이 책의 주인공인 C#의 역사도 간단히 소개합니다. 약 800페이지에서 다루는 C#에 대한 내용은 기본 개념부터 C#의 특징, 객체지향 프로그래밍, 컬렉션, 지네릭, 람다식, LINQ, 리플렉션, 스레드, 태스크 등 C#에서 지원하는 기능 대부분을 소개합니다(물론 이 책 한 권으로 C#의 모든 것을 알 수는 없습니다).

또 다른 장점으로는 입문서에 알맞게 동영상 강의를 무료로 제공하고 있습니다. 동영상은 C#을 학습하는 데 적지 않은 도움을 줄 것으로 생각합니다만, 동영상만 보는 것을 추천하지 않습니다. 이 책을 읽으면서 저자의 노하우가 듬뿍 담겨 있는 인상을 받았습니다. 단순히 글만으로 이해가 어려운 부분에서는 그림 등의 도구를 활용하여 독자의 이해 폭을 넓혀주고, 설명에 충실한 예제 코드를 제공하여 C#에서 어떻게 활용하는지 실습할 수 있습니다. 이뿐만 아니라, 간단한 퀴즈와 다양한 연습 문제들을 통해 스스로 이해하는 수준을 가늠할 수 있도록 배려하고 있습니다.

만약 C#을 독학하는 분들은 사견이지만, 이 책에서 제시하는 문제를 모두 풀어보는 것을 권장합니다. 분명 큰 효과를 얻으실 수 있을 것입니다. <이것이 C#이다>는 C# 입문자용을 위한 책이지만, 책의 두께만큼 마음을 다잡지 않고서는 끝까지 완주하기 어려운 책입니다. 하지만 뜻을 품고 끝까지 완주한다면 C#에 대한 이해뿐만 아니라 그 이상을 얻을 수 있는 책이라고 확신합니다.

 

마치면서

C#은 마이크로소프트사의 주요 프로그래밍 언어로 자리잡고 있습니다. 이 책은 교육용 교재로 적합하지만, 학습 로드맵과 동영상 강의를 제공하고 있으므로 자습하기에도 나쁘지 않습니다. 개인적으로 혼자 자습하는 것보다는 스터디 그룹을 활용하는 것이 더 효과적일 것 같습니다. 또한, 저자가 네이버 커뮤니티를 운영하고 있으므로 잘 이해가 되지 않거나 어려운 내용에 대해 저자와 소통할 수 있는 창구도 마련되어 있습니다.

<이것이 C#이다>는 최신 C# 11 명세를 반영하여 작성되어 있습니다. 개인적으로 C#은 매우 매력적인 프로그래밍 언어라고 생각합니다. 만약 C#에 대해 관심이 있으시다면, <이것이 C#이다>를 활용하여 C#의 매력이 흠뻑 빠져보시길 바랍니다.

C#은 개인적으로는 참 아픈 손가락입니다. 한 때 주 언어로 사용했던 언어이었지만 이런저런 사정으로 python으로 이주 한 뒤에도 돌아오고싶던 언어입니다. 학부생 시절 C#을 시작할 때도 시작한 책이자 필요할 때마다 찾아본 책이 11.0 버전까지 반영한 상태로 개정된 소식은 굉장히 반가웠습니다. 언어의 인기가 미묘해서 다른 언어들 책이 다양한 것도 아니었지만 그 중에서도 가장 많이 봤던 책입니다. 메이저 업데이트들이 어느 정도 쌓이면 꾸준히 개정을 해줘서 벌써 3번째 개정판입니다.

국내에서는 공장이나 asp.net 레거시 위주로 사용되고 있어 인기가 덜 한것이 사실입니다. MS에서 발표당시에 약속했던 크로스 플랫폼이 몇 해 전 파편화 되어있던 .net 프로젝트들이 합쳐지면서 드디어 리눅스, MacOs 등을 지원하기 시작했습니다. 대규모 처리 등 닷넷의 퍼포먼스 활용을 위해선 윈도우 종속이 아직 크긴 하지만 다시한번 도약할 포텐셜을 가지게 되었습니다.

22년 스택오버플로우 트렌드 언어 top5에도 들었을만큼 사용자와 관심으 꾸준한 언어입니다. 국내에선 java에 밀려 공장 기계들이나 유니티 개발자들 위주로 사용되고 있지만, 웹이 아닌 윈도우용 어플을 제작하거나 하는 등의 용도로는 충분한 쓰임이 있습니다. 또 윈도우 api를 사용하기엔 다른 언어보다 MS에서 직접 관리하다 보니 수월한 편입니다.

습득 난이도 자체도 높지 않은 편입니다. 저자분도 3번째 개정을 내실 정도로 C# 서적에 잔뼈가 굵으신 분이라 말 그대로 믿고 볼 수 있는 책입니다. 학교 수업이나 구상 중인 프로젝트를 구현하실 떄 언어의 최신버전이 꼭 필요한 경우는 사실 거의 없습니다. 하지만 표준을 익혀 두고 쓰지 않는 것과 몰라서 쓰지 못하는 것에 차이는 크기 때문에 오랜만에 다시 C#이 필요하거나 시작하려고 하신다면 현재 C# 책 중에는 가장 추천 하는책입니다.


한빛미디어 2023 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.

 

001_002.png

 

위의 표와 그림은 프로그래밍 언어의 순위를 나타내는 TIOBE Index( https://www.tiobe.com/tiobe-index/ )의 2023년 6월 결과이다. Python이 작년에 이어 1위를 유지하고 있고, C와 C++이 그 뒤를 근소한 차이로 쫓고 있다. 1990년대 후반부터 급속히 확산되어 2020년 이전까지 독보적인 1위를 차지했던 (물론 C와 순위 경쟁에서 밀린 적도 있지만…) Java는 점차 그 순위가 내려가고 있다. Rating 수치가 보자면 Python, C, C++, Java는 언제라도 1위가 될 수 있을 정도로 그 격차가 크지 않다. 5위에는 오늘 이야기하고자 하는 C#이 자리하고 있다. Rating 변동을 나타내는 그림을 보면 C#의 인기가 점차 오르고 있음을 알 수 있다. 

C#은 마이크로소프트의 .NET 프레임워크를 사용하여 다양한 서비스를 보다 쉽게 개발할 수 있다. .NET 클래스 라이브러리는 콘솔, 데스크탑, 웹, 모바일 등에서 동작하는 어플리케이션을 개발할 수 있는 막강한 API를 제공하고 있다. C#은 .NET에 최적화된 언어로 개발자의 생산성 향상에 큰 도움이 되며, 처음 시작하는 개발자들이 배우기도 쉬운 언어에 속한다. 

 

003.png

 

“이것이 C#이다. 3판”은 C#을 위한 최고의 입문서라 할 수 있다. 2판을 접한 적이 있는 필자는 당시에도 내용과 구성에 좋은 평가를 준 기억이 있는데, 2년만에 새롭게 돌아온 3판은 더 새로워진 모습과 알찬 구성으로 2판의 명성을 이어가고 있다.

전체 22개의 챕터로 구성된 이 책은 크게 세 부분으로 나누어 볼 수 있다. 1에서 10장까지는 C#의 기본에 대해 찬찬히 다루고 있다. 프로그래밍 언어를 다루는 책이라면 꼭 있어야만 할 것 같은 프로그래밍 언어의 역사로 시작해서 첫 프로그램인 Hello World! 만들어 보기, 데이터 형식과 기본 문법을 쉬운 언어와 차분한 문장으로 초심자의 긴장을 풀어주고 있다. 11장부터 17장까지는 기본기가 갖춰진 개발자들이 심기일전하여 고급 프로그래밍 기법을 익힐 수 있도록 일반화 프로그래밍, 예외 처리, 대리자와 이벤트, 람다식, LINQ, 리플랙션과 애트리뷰트, Dynamic 형식에 대한 내용을 적절한 깊이와 세심한 예제로 소개하고 있다. 이어지는 18장부터는 .NET 클래스 라이브러리에 대해 다루고 있는데, 스레드와 태스크, WinForm으로 사용자 인터페이스 만들기, 네트워크 프로그래밍, 가비지 컬렉션을 소개하고 있다. 

 

004_5_6.png

 

 이 책은 ‘!여기서 잠깐’, ‘VITAMIN QUIZ’, ‘연습문제’ 코너를 통해 자칫 지루해 질 수 있는 내용 전개에 활력을 주고 있으며, 유용한 정보 전달 및 독자 스스로 생각해보고 문제를 풀어 볼 수 있도록 하고 있다. 

 

007_8.png

 

또한, 한빛 미디어 유튜브 채널(https://www.youtube.com/playlist?list=PLVsNizTWUw7GN8wPRhclbKuQa9aI9Cj2V) 에서 저자의 직강 동영상을 찾을 수 있으며, 네이버 카페 (https://cafe.naver.com/thisiscsharp)에는 예제 코드 및 C# 관련 최신 기술을 비롯한 다양한 자료도 준비되어 있다.

 

C#의 기초에서부터 최신 C# 11 버전의 내용까지 다루고 있는 “이것이 C#이다. 3판”은 C#을 처음 접하는 개발자를 위한 입문서이자 보다 높은 생산성과 고급 기법을 익히고 싶은 중급 개발자에게도 적극 추천한다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

[똑똑한 도서소개] 한빛미디어, 이것이 C#이다 (3판)


글 / 사진 : 서원준 (news@toktoknews.com


 

 


본 포스팅은 한빛미디어 나는 리뷰어다 서평단을 통해서 도서를 제공받아 진행하였으며 도서소개 성격이 강합니다. 


먼저 언급하고 넘어가야 할 부분이 있다. 책을 받고 바로 실습을 하려고 했다. 그런데 시점이 이상했다. 카매라 고장을 막 해결하려고 하던 차에 책이 와버린 것. 결국 해당 도서 실습은 당연히 뒤;로 넘어가게 되었다. 필자 입장에서는 프로그래밍과 코딩을 배우고 싶었다. 그러나 첫 걸음만 땐 채로 서평을 등록하게 되어 아쉽다. 


6월이 이제 막바지다. 서울국제도서전도 끝났고 본격적으로는 하반기에 대한 설계를 해야 할 시점이다. 필자로서는 앞으로를 위해서라도 읽고 싶었던 책을 다 읽고 내용을 잘근잘근 씹어서 내 것으로 만들어 내야 한다. 올 여름은 그래서 중요한 것이다. 


 

 

 

 

 

 

 

 

 

 

 

 

 

 


최근 컴퓨터 프로그래밍 책 시장이 자바, 파이썬, 머신러닝, 딥러닝 등으로 재편되면서 C언어에 대한 관심이 점점 멀어지는 분위기이다. 그런데 파이썬은 현재에는 인기 있지만 앞으로 파이썬보다 훨씬 진보된 프로그래밍 툴이 나와서 인기를 끌게 되면 바로 기억에서 서서히 지워질 가능성이 있다. 


그러나 C언어 만큼은 프로그래밍 언어 중 아직 건재한, 몇 되지 않는 프로그래밍 언어이며 조서 시장에서도 그 인기가 꾸준한 것으로 알려져 있다. 이번에 살펴볼 “이것이 C#이다” 는 1판, 2판 출판될 때마다 인기를 모았던 화제의 책으로 이번에 출간된 책은 3판이다. 


“이것이 C#이다” 는 필자가 파이썬 도서를 실습할 때 썼던 비주얼 스튜디오를 썼다. 비쥬얼 스튜디오는 프로그래밍을 제작할 때 있어야 되는 소프트웨어로 코딩에 처음 입문하는 분, 소프트웨어 언어를 처음 접하시는 분, 윈도우 사용에 익숙하지만 프로그래밍은 초보딱지를 떼지 못하는 분들에게 유용한 프로그래밍 제작 툴이다. 


“이것이 C#이다” 란 책은 프로그래밍 초보자에서 전문가로 레벨 업 시켜주는 책으로 C# 프로그래밍을 완전 정복할 수 있도록 해 준다. 이 책은 C#의 기본, 고급 문법과 더불어 기초 클래스 라이브러리까지 다룬 책으로 한빛미디어의 “이것이 시리즈” 중 하나다. 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


도서소개를 마치면서


총 22개 장으로 되어 있는 “이것이 C#이다” 는 앞서 배운 내용을 활용하면서 단계별로 학습할 수 있도록 구성한 점이 특징이다. 입문자의 눈높이에 맞춰 핵심 문법을 배우고 익히며 프로그래밍 동작 원리를 학습할 수 있도록 구성되어 있는 책이다. 이 책으로 C# 과 그 인접 프로그래밍에 대한 이해가 쉬워지길 기대한다. 

 

 

B6673972966_l.jpg

 

 

C#은 마이크로소프트에서 개발한 객체지향 프로그래밍 언어입니다. C#은. NET 프레임워크의 주요 언어 중 하나로 사용되며, Windows, 웹 애플리케이션 개발에 주로 사용되고 있습니다. 오늘 추천드릴 도서는 바로 이러한 C#의 입문서인 <이것이 C#이다.> 입니다.

 

책의 구성은 총 18장으로 무려 848페이지나 차지합니다. 저도 이전에 Window Form으로 다양한 메신저들을 개발한 프로젝트 경험이 있어 조금 더 친숙하게 다가왔지만, 입문서가 500장 정도 내외라고 생각했던 저에게는 매우 부담감이 큰 숫자였습니다. 그러나 실제로 보다 보면 오히려 연습문제, 실습 예제, 비타민 퀴즈 등 다양한 방법을 이용해서 조금 더 쉽게 설명하고 이를 기억시키려는 덕분인지 각 파트를 쉽게 진행할 수 있었습니다.

 

책의 구성은 이렇습니다. 1장부터 6장까지는 C#의 기초부터 언어를 알면 짚고 넘어가야 할 연산자와 배열, 방법을 배우며 프로그래밍의 기초를 시작하는 단계를 거칩니다. 다음 7장부터 12장까지는 다른 C에서는 볼 수 없었던 자바를 닮은 클래스, 추상화, 예외처리를 배우며 객체지향 프로그래밍에 이해하도록 돕습니다.

 

13장부터 17장까지는 본격적으로 머리가 아파오는 람다식, 리플랙션 등 고급화 프로그래밍을 배우며 생산성을 높이는 방법을 습득하고, 마지막 18장부터 22장까지는 이제 직접적으로 파일 입출력을 사용해 실습하거나 C#의 꽃인 네트워크 연결을 통한 메신저 구현, 스레드 활용 프로그래밍을 해 보는 등 .NET 환경을 이용하여 다양한 실습을 진행할 수 있습니다.

 

책을 읽고 나서 느낀 점은, 이거 완전 종합선물 세트라는 느낌입니다. 전공에서 했던 C# 수업을 이 책 하나에 잘 압축시켜 놓은 것 같았습니다. 학교에서 배울 수 있는 모든 부분이 해당 책 안에 모두 담겨 있어 한 번 더 복습한다는 느낌으로 책을 읽었으며, 심지어 배우지 못했던 정보들까지 다양하게 받아 갈 수 있었습니다. 특히 LINQ라는 기능을 통해 C#에서도 SQL처럼 사용하여 데이터를 다룰 수 있다는 점을 알았던 것이 가장 인상 깊었습니다.

 

당연하게도 한빛미디어 공식 유튜브에서 강의 영상을 제공하고 있고, 카페 내에서도 소스 코드와 Q&A를 제공하고 있습니다. C#의 입문서를 찾거나 윈도우에서 강력하게 돌아가고 싶은 애플리케이션을 개발하고 싶으시다면 이 책을 추천합니다.

 


<< 이 글은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. >>

한빛에서 도서 서평단을 모집한다고 해서 지원하였다.

한빛 책들은 물리보다는 Programming에 치중 하는 경향이 있는듯 한데,

C# 이다라는 책이 당첨 되었다.

역시나 프로그래밍쪽 전공 수준은 아니라서.. 어려웠다.

하지만.. 유투브 강의를 들으니 내용이 훨씬 쉽게 이해가 되었다.

20230625_091250.jpg

요즘은 책 비지니스가 책만 파는 비지니스 아닌 것 같다.

 

이런 책 보면.. 딱 궁금한건.. C, C++ 이랑.. 뭐가 다른 거야? 가 젤 궁금했는데..

유투브 1장에서 설명이 있었다.

이 유투브 없었으면 책에 이런 내용 없다고 투덜대는 리뷰를 했을 꺼 같다.

하나 깨달은건.. C 와 같은 명칭만 같지.. 전혀 다른 코드 ;;;;;

그리고 오히려 가깝다고 하면 Java 란 말이... 헉.. 했다.

물론 자세히 프로그래밍 할 일이 없는 나로썬 이걸 느끼진 못했다.

(누가 좀 갈쳐주시면, 한빛 미디어 포인트로 책 사드릴께 ㅠㅠ)

다만, C와 C++이 객체 지향.. 프로그래밍에서 차이가 확실히 있다.

객체라는 말도 이해 잘하면.. 당신은 내가 보기엔.. 꽤 프로그래머로 감 있는 것이다. 볼랜드 C++ 했었는디 ㅠㅠ 정말 97년에 어려웠다. 사실 학생들 중 컴퓨터라는 걸 갖고 있는 사람이 절반 이하였다.

C++ 객체 지향이 C#에서도 나오드라..

게임으로 따지면.. 캐릭터라는 걸로.. 1. 류 2.켄 3. 블랑카 4. 달심 <-- 이렇게 정하는게 클래스다. 다만.. 속성에서 달심은 팔이 늘어나는 타격 판정을 주는게 나머지 3명이랑 달라진다. (나도 이거 감 잡는건 학원에서 공부 했다. 제길.. 국내 대학의 프로그램 수업은.. 정말.. 요즘은 다를 려나? )

20230625_084609.jpg

 

보기 좋은 구성, 배우겠다고 보면 알차게 설명도 일일이 되어 있다.

199X년도 판 '볼랜드C++을 알아보자' 이런거랑 비교하면 위에 저건 설명이 잘 되어있다고 감히 말한다. (타사 책을 비난의 의도는 없다. 18년이 지난 뒤에 다시 읽어보니 그래도 아... 이 부분의 설명이 잘 되어 있다라는 교수말이 감은 왔으나.. 이미 난 졸업 쿨럭 ;;;)

프로그램의 차이를 모르는 유저가 볼땐 꼼꼼히 보면 설명이 있는 부분을 많이 캐치 할 수 있다는 점이 이 책의 장점 같다. 작가는 좀 더 재밌게 책을 구성할 순 있으나. 편집지나 다른 에디터를 통해서 논리적 구성이 이상하다고 태클을 많이 먹었을꺼 같다. 초반 변수 IF문 반복문 이야기는 빠지지 않는거 보면... 그래도 내 변수 선언 해봤다 카시는 유저는 SKIP 하자.

C 때문에 If 문 break, For문은 이공계 라면.. 요즘 프로그래밍 수업 필수라.. 이 정도까지 알꺼라고 봐서, 한번 훓으면 될듯하다. 나도 hello world 나올때 ***app 같은 표현이 가장 낯설다. void main 에 Void가 문 뜻인지 알아도 당신은 중수인거 같다. 처음엔 그냥 저런 표현이 있지 뭐 하고 써야 하는 것 같다.

참고로 유투브에서 작가님이 잘 설명해 주시드라.

유투브에서 어셈블리와 포트란 C 개념을 설명을 주시는데 그 부분은 매우 유용함

책 안 사봐도 프로그래밍 어렵다는 분들은 소양 정도로 1장은 봐둘만 하다고 봅니다. [C# 기초 강의] Ch 01. 프로그래밍 언어의 역사와 C#의 등장 - YouTube

C#은 아니더라도.. 컴퓨터 프로그래밍의 역사를 다이제스트로 알려주시니 한번 봐둡시다. 개인적으로 8장까지가 초보지 그 이후 부분은 왜? 이걸 알아야... 유투브로 거기까지 가서 이해되면 다시 review 를.. 시도 해볼까 합니다. 사실.. 짧은 지식의 한계도 있고 ㅠㅠ 난 C 에서도 구조체 이상 다뤄본적도 없어서 ㅠㅠ 아키텍쳐 개념 들어가면 어렵다고 말씀 드림. 내가 컴퓨터의 사고를 이해하는게.. 쉽지 않음.

유투브에는 언급이 잘되어 있을지도 모르지만, 9장부터 왜 저걸 알아야 하지? 에 대한 내 동기부여가 너무 낮다는 ㅠㅠ 그냥.. 프로그래밍 책 어려워요가 느껴집니다. 대학교 프로그래밍 수업 가면 잠깐 프로그램 까는 법 갈쳐 주고.. 숙제가 뜨는데.. 그 숙제들을 풀기위한 방법을 9장 이후의 스킬들이 뜻하는 거 아닐까 함. 프로그램 관련 분야 직장이시면, 저 9장 이후의 스킬들이 프로그램 문법에 맞춰서 해줘야 제대도된 app 되던 상용 프로그램이 되는거 아닌가? 짐작만 함.

총평 : 초보에서 중급용 책인거 같다. 9장 이상 내용 잘 이해되시는 분은 블로그 추천 주셔도 됨. C#은 C++ 플러스 개념인듯 하지만, JAVA++ 이다. ㅠㅠ (C 추종자 아닙니다.용량 커지고 그러믄, C보다 C++ 같은 개념으로 프로그램 안 짜면..

추가 캐릭 넣는 것도 어려울 것 같다는 생각을 해보기 했습니다)

P.S 이 책 보고 충격 먹고 난 C에 대해서 뭘 알지? 라는 생각이 들어서 혼자공부하기 시리즈 C를 사보기로 했다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

객체지향 프로그래밍의 개념을 알고 싶거나 생산성을 높여줄 고급 문법이 궁금하거나 이론측면에서 메모리 관리방법의 내부동작 등이 궁금하다면 반드시 이 책을 봐야 한다.

이 책은 해외 스타트업을 운영중인 박상현 저자의 3판이다. 워낙에 이것이 시리즈가 좋은 책들이 많은데 이 책도 그러한 책 중에 하나이다. 한가지 아쉬운 점은 구판과 비교했을 때 크게 달라진 점은 없다.

이 책을 통해 얻어갈 것이 가장 많고 책을 보고 "내 개발실력이 향상되는구나"라고 느끼기에 가장 좋은 대상 독자는 C#은 전혀 안 해봤는데 다른 언어는 해 본 독자이다. 즉 프로그래밍 언어를 처음하는 독자는 1~7장 정도까지만 따라갈 수 있을 정도이다.

그렇다고는 해도 1~7장 정도만 해도 사실 대학교 과정에서 배울 수 있는 내용을 뛰어넘는 양질의 내용을 담고 있다. 매우 좋은 내용들이 많지만 한 가지만 예를 들면, 생성자와 소멸자를 명시적으로 사용해야 하는 경우와 일반적인 경우에 대한 자세한 이유까지 친절하게 소개를 해준다.

그리고 읽다보면 어떤 부분을 진행하고 있고 어떤 부분은 어디서 진행될 예정이고 어떤 부분은 앞장의 어디에서 나왔는지 친절하고 재미있게 다루고 있어 독자의 속마음을 꿰뚫고 있다는 느낌을 받을 수 있다.

내용은 기초 구문이 1~6장이고 객체지향이 7~12장이고 고급문법이 13~17장에서 다루고 있고 .NET프레임워크에 대해서 18~22장에서 다루고 있다.

솔직하게 이야기해서 리플렉션과 어트리뷰트와 대리자와 이벤트의 관계 및 프로퍼티와 읽기전용에 대해 어떤 차이가 있는지 내부에서 구동되는 속사정을 몰랐는 데 알 수 있었고 최신 c#문법이 얼마나 효율적인지 알게 되었다.

그리고 LINQ와 WinForm의 내용은 한 때 큰 열풍이었지만 전혀 코드를 작성해 본적이 없었는데 이 책을 통해 내용을 알게 되었다.

추가로 이 책의 다음 로드맵으로 UWP와 메타버스를 구현하는 C#의 코드가 있으면 하는 바램이 있다.

입문자는 난이도 별이 하나로 표시된 1~3, 5, 8, 9, 12, 20장을 먼저 해보면서 쉽게 구현을 따라해봐야 흥미를 잃지 않을 수 있다. 특히 람다식은 봐도 잘 모를 확률이 높으므로 나중에 도전해보기를 추천한다.

최신의 파이썬만큼 C#의 인기가 높지는 않지만 20년전부터 꾸준히 사랑받아왔고 코딩패러다임을 많이 담고 있으므로 파이썬의 고급 코딩을 위해서 이 책을 반드시 일독하기를 추천한다.

이 서평은 한빛미디어 <나는 리뷰어다> 서평단 활동으로 도서를 제공받아 작성하였습니다.

오늘은 이 책에 대해서 리뷰를 시작해보겠습니다.

 

 

이 책의 저자인 박상현님은 검색 엔진 포털, 통신 장비, 반도체 공정 자동화, 무기체계 등 다양한 도메인에 걸쳐 소프트웨어를 개발해 왓습니다.

 

 

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

 

 

예전에는 책을 보면 목차도 읽지 않았지만 요즘은 책 앞에 보면 이 책의 구성 가이드와 학습 방법을 꼭 살펴보고 있습니다.

 

 

마치 가전제품을 구매했는데 설명서를 읽지 않아서 제대로 작동하는 방법을 모른채 감으로만 사용한다고 할까요

 

 

특히 학습서를 볼 때는 책의 가이드라인을 충실히 따라서 진행하면 조금 더 학습 효과가 올라갈 것 같습니다.

 

 

동영상 강의와 실습예제 그리고 Q & A 사이트도 이용할 수 있어서 C# 에 대해서 기본부터 깊이 있는 부분까지도 공부할 수 있을거라고 생각합니다.

 

 

학습 로드맵을 살펴보면 1챕터부터 6챕터까지는 기초 구문을 배우게 되며 7챕터부터 12챕터까지는 객체지향 프로그래밍을 이해할 수 있습니다.

 

 

13챕터부터 17챕터까지는 고급 문법을 배우며 18챕터부터 22챕터까지는 .NET 프레임워크를 이용한 프로그래밍을 배울 수 있습니다.

 

저자는 1챕터에서 17챕터까지는 차례대로 공부하고 18챕터부터는 마음에 드는 부분부터 하나씩 골라 읽기를 권장해주고 있으니 참고하셔서 학습을 진행하시면 좋을 것 같습니다.

 

 

 

C# 의 역사

 

C 언에서 객체지향을 추구하는 C++ 언어로 발전이 되었으며 여기서 한발 더 나아가 탄생한 언어가 C#입니다.

 

 

++ 에 ++  더한 것이 # 인 것이죠

 

 

C# 이라는 이름은 C++을 계승한다는 의미로 붙여진 것이죠 하지만 C#d느 C++와는 여러가지 면에서 큰 차이를 보이고 있습니다.

 

 

1990년대말 마이크로소프트에서 .NET(닷넷) 버전을 발표했지만 대부분의 사람들의 관심을 끌지 못했습니다.

 

 

하지만 프로그래머들에게는 소중한 선물을 안겨주었는데 그것이 바로 .NET 클래스 라이브러리와 C# 프로그래밍 언어입니다.

 

 

 

Hello World!

 

대배분의 프로그래밍 언어를 처음 배울 때 시작하는 예제는 항상 Hello World 였던 것 같습니다.

 

 

C, C++, C#까지 모두 그랬던 것 같습니다.

 

 

새로 프로젝트를 시작하고 컴파일하면 Hello World 를 만날 수 있습니다

 

 

 

클래스

 

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

 

 

클래스를 이야기하려면 먼저 객체지향 프로그래밍 Object Oriented Programming 을 설명해야 합니다.

 

 

객체지향 프로그래밍은 OOP라고도 하는데 코드 내 모든 것을 객체 Object 로 표현하려는 프로그래밍 패러다임을 뜻합니다.

 

 

이 세상에서 객체라고 할만한 모든 것을 갖고 있는 것은 두가지가 있습니다.

 

 

바로 속성과 기능입니다.

 

 

객체 지향 프로그래밍을 시작하기 위해서는 객체가 가진 속성과 기능을 골라낼 수 있는 눈이 필요합니다.

 

 

클래스는 객체를 만들기 위한 청사진입니다.

 

 

 

예외처리하기

 

프로그래머에게 가장 끔찍한 경험이라면 고객이나 중요한 인사를 대상으로 자신이 만든 프로그램을 시연하다가 버그가 발견되는 경우일 것입니다.

 

 

C#은 프로그램이 비정상적인 상황을 만났을 때 이를 처리하는 예외 처리를 지원합니다.

 

 

예외처리는 프로그래머가 생각한 시나리오에서 벗어나는 사건 이것을 예외 Exeption 이라고 부릅니다.

 

 

그리고 예외가 프로그램 오류나 다운으로 이어지지 않도록 적절하게 처리하는 것을 예외 처리 Exception Handling 라고 합니다.

 

 

System.Exception 클래스는 모든 예외의 조상입니다.

 

 

C#에서 모든 예외 클래스는 반드시 이 클래스로부터 상속 받아야 합니다.

 

 

상속 관계로 인해 모든 예외 클래스들은 System.Exception 형식으로 간주할 수 있고 System.Exception 형식의 예외를 받는 catch 절 하나면 모든 예외를 다 받아낼 수 있습니다.

 

 

 

이책은 C#을 처음 접하는분들이나 중급정도의 스킬까지 향상을 원하는 분들에게 추천드리고 싶은 책입니다.

 

 

C#을 처음 배우는분들에게도 친절하게 잘 가이드가 되어 있어서 옆에 두고두고 궁금한게 있을 때마다 찾이볼 수 있도록 구성되어 있어서 참 좋은 것 같습니다.

 

 

단계마다 학습 목표를 원할히 해주고 있어서 C# 을 체계적으로 배울 수 있도록 구성된 점도 좋았던 것 같습니다.

 

 

C# 입문서로 어떤 책을 사야할지 고민하고 있는분들에게 추천드리고 싶은 책이었습니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
이것이 C#이다(3판)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
이것이 C#이다(3판)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
이것이 C#이다(3판)
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실