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

한빛출판네트워크

뇌를 자극하는 C# 5.0 프로그래밍

한빛미디어

집필서

절판

  • 저자 : 박상현
  • 출간 : 2014-08-19
  • 페이지 : 736 쪽
  • ISBN : 9788968481161
  • 물류코드 :2116
  • 초급 초중급 중급 중고급 고급
3.9점 (8명)
좋아요 : 57

 "C# 대표도서 『뇌를 자극하는 C# 4.0 프로그래밍』(2011)의 두 번째 판(版)"


'시작이 반'이라는 유명한 경구가 있다. 어떤 일을 하든, 일단 시작을 하면 절반을 끝낸 것과 같다는 말이고 다르게 해석하면 무슨 일이라도 시작이 가장 어렵다는 말이기도 하다. 프로그래밍도 시작이 가장 어렵다. 컴퓨터 프로그래밍을 처음 시작하는 사람은 프로그래밍 언어가 무엇인지, 어떤 이유로 탄생했고 현재 어떻게 쓰이고 있으며 어떻게 입문해야 하는지 알지 못한다.
이 책은 이런 관점에서 독자의 가려운 부분을 잘 긁어 준다. C# 언어의 탄생 배경부터 상세한 입문 과정까지 C#을 잘 설명해 주고 있다. 또한 문법 설명에만 치중하지 않고 프로그램의 동작원리도 충실하게 설명한다. 
이 책의 장점은 이것만이 아니다. C# 프로그램이 수행될 때 밑단에서 돌아가는 닷넷 프레임워크를 상세히 설명하며 이론을 설명한 후에는 반드시 예제 코드로 직접 실습할 수 있게 배려했다.
아주 쉽고 친절한 C# 프로그래밍 입문서를 만나보자.


뇌를 자극하는 C# 4.0 프로그래밍』(2011)에서 추가된 내용
★ 비동기 코드 패턴의 컴파일러 수준 지원(19장에서 다룹니다)
★ 호출자 정보 애트리뷰트(16장에서 다룹니다)

※ 비주얼 스튜디오 2013 익스프레스 에디션 기준으로 설명합니다.

 

 

【이 책이 제시하는 핵심 내용】
C#으로 프로그래밍에 입문하는 입문자가 늘고 있다. C#은 배우기 쉬우면서도 강력한 성능을 발휘하는 언어이기 때문이다. 닷넷 프레임워크가 지원하는 언어가 C#이고, 유니티 게임에서도 C#이 사용되고 있다. 이 책은 C# 대표 입문서로 인정받고 있는 『뇌를 자극하는 C# 4.0 프로그래밍』(2011)의 개정판이다. 'C# 입문서로는 으뜸'이라는 서평이 결코 과장된 것이 아님을 실제로 체험해보자.

 


【이 책의 특징과 장점】
 - 『뇌를 자극하는 C# 4.0 프로그래밍』(한빛미디어, 2011)개정판
 - 프로그래밍 경험이 전혀 없는 독자의 눈높이에 맞춘 설명으로 누구나 쉽게 C#을 배울 수 있다.
 - C#의 기초부터 다루고 있어서 C# 5.0 버전뿐 아니라 다른 버전의 입문도 가능하다.
 - 닷넷 프레임워크에 대한 설명도 충분히 다루고 있어서 이 책 한 권으로 C#을 배울 수 있다.
 - 책에 수록된 예제의 다운로드와 묻고 답하기를 제공한다. http://brain.hanb.co.kr/csharp

 


【어떤 독자를 위한 책인가?】

이 책은 어떤 독자를 위한 책일까요? (다음 질문에 "예"라고 답할 수 있다면)
① 프로그래밍 경험이 없습니다.
② 다른 언어 입문서를 읽은 적이 있지만 실전 경험은 없습니다.
③ 번역서를 읽다 무슨 말인지 몰라 헤맨 적이 있습니다.
④ (어렵고, 재미 없어서) 프로그래밍 책을 끝까지 읽어본 적이 없습니다.

 

 

[Notice] Visual Studio 2015 Express 다운로드에 대한 안내 말씀

 

마이크로소프트에서는 Visual Studio 2013 Express 제공을 중지하였고, Visual Studio 2015 Express로 제공하고 있습니다.

아래 링크에서 Visual Studio 2015 Express를 다운로드 받을 수 있습니다. 이 버전으로 책의 실습이 모두 가능합니다.

 

https://www.visualstudio.com/ko/post-download-vs/?sku=xdesk&clcid=0x409&telem=ga#

 

고맙습니다.

한빛미디어 드림.

 

박상현 저자

박상현

한화시스템에서 방위 분야의 프로그래머로 일하고 있습니다. 최근까지는 방공 무기체계에 탑재되는 소프트웨어를 개발해 왔습니다. 컴퓨터 하드웨어와 소프트웨어 모두를 사랑하는 경력 17년차 엔지니어입니다.

 

대표 저서 (한빛미디어)

『뇌를 자극하는 파이썬 3』(2016)

『뇌를 자극하는 C# 5.0 프로그래밍』(2014)

『뇌를 자극하는 알고리즘』(2009)

 

1장 프로그래밍을 시작합시다
    1.1 프로그래밍 언어의 역사
    1.2 비주얼 스튜디오 익스프레스 설치하기


2장 처음 만드는 C# 프로그램
    2.1 Hello, World!
    2.2 첫 번째 프로그램 뜯어보기
    2.3 CLR에 대하여
    연습문제


3장 데이터 보관하기
    3.1 데이터에도 종류가 있다
    3.2 변수
    3.3 값 형식과 참조 형식
    3.4 기본 데이터 형식
    3.5 상수와 열거 형식
    3.6 Nullable 형식
    3.7 var: 데이터 형식을 알아서 파악하는 똑똑한 C# 컴파일러
    3.8 공용 형식 시스템
    연습문제


4장 데이터를 가공하는 연산자
    4.1 C#에서 제공하는 연산자 둘러보기
    4.2 산술 연산자
    4.3 증가 연산자와 감소 연산자
    4.4 문자열 결합 연산자
    4.5 관계 연산자
    4.6 논리 연산자
    4.7 조건 연산자
    4.8 비트 연산자
    4.9 할당 연산자
    4.10 연산자의 우선순위
    연습문제


5장 코드의 흐름 제어하기
    5.1 분기문
    5.2 반복문
    5.3 점프문
    연습문제


6장 메소드로 코드 간추리기
    6.1 메소드란? 
    6.2 return에 대하여
    6.3 매개 변수에 대하여
    6.4 참조에 의한 매개 변수 전달
    6.5 출력 전용 매개 변수
    6.6 메소드 오버로딩
    6.7 가변길이 매개 변수
    6.8 명명된 매개 변수
    6.9 선택적 매개 변수
    연습문제


7장 클래스
    7.1 객체 지향 프로그래밍과 클래스
    7.2 클래스의 선언과 객체의 생성
    7.3 객체의 삶과 죽음에 대하여: 생성자와 소멸자
    7.4 정적 필드와 메소드
    7.5 객체 복사하기: 얕은 복사와 깊은 복사
    7.6 this 키워드
    7.7 접근 한정자로 공개 수준 결정하기
    7.8 상속으로 코드 재활용하기
    7.9 기반 클래스와 파생 클래스 사이의 형식 변환, 그리고is 와 as
    7.10 오버라이딩과 다형성
    7.11 메소드 숨기기
    7.12 오버라이딩 봉인하기
    7.13 중첩 클래스
    7.14 분할 클래스
    7.15 확장 메소드
    7.16 구조체
    연습문제


8장 인터페이스와 추상 클래스
    8.1 인터페이스의 선언
    8.2 인터페이스는 약속이다
    8.3 인터페이스를 상속하는 인터페이스
    8.4 여러 개의 인터페이스, 한꺼번에 상속하기
    8.5 추상 클래스: 인터페이스와 클래스 사이
    연습문제 


9장 프로퍼티
    9.1 public 필드의 유혹
    9.2 메소드보다 프로퍼티
    9.3 자동 구현 프로퍼티
    9.4 프로퍼티와 생성자
    9.5 무명 형식
    9.6 인터페이스의 프로퍼티
    9.7 추상 클래스와 프로퍼티
    연습문제


10장 배열과 컬렉션, 그리고 인덱서
    10.1 All for one, one for all 
    10.2 배열을 초기화하는 세 가지 방법 
    10.3 알아두면 삶이 윤택해지는 System.Array
    10.4 2차원 배열 
    10.5 다차원 배열 
    10.6 가변 배열 
    10.7 컬렉션 맛보기
    10.8 인덱서 
    10.9 foreach가 가능한 객체를 만들기
    연습문제


11장 일반화 프로그래밍
    11.1 일반화 프로그래밍이란?
    11.2 일반화 메소드
    11.3 일반화 클래스
    11.4 형식 매개 변수 제약시키기
    11.5 일반화 컬렉션
    11.6 foreach를 사용할 수 있는 일반화 클래스
    연습문제


12장 예외 처리하기
    12.1 예외에 대하여
    12.2 try~catch로 예외 받기
    12.3 System.Exception 클래스
    12.4 예외 던지기
    12.5 try~catch와 finally 
    12.6 사용자 정의 예외 클래스 만들기 
    12.7 예외 처리 다시 생각해보기 
    연습문제 


13장 델리게이트와 이벤트
    13.1 델리게이트란? 
    13.2 델리게이트는 왜, 그리고 언제 사용하나요? 
    13.3 일반화 델리게이트 
    13.4 델리게이트 체인 
    13.5 익명 메소드 
    13.6 이벤트: 객체에 일어난 사건 알리기 
    13.7 델리게이트와 이벤트 
    연습문제 


14장 람다식
    14.1 람다식, 너는 어디에서 왔니?
    14.2 처음 만드는 람다식
    14.3 문 형식의 람다식
    14.4 Func와 Action으로 더 간편하게 무명 함수 만들기
    14.5 식 트리
    연습문제


15장 LINQ
    15.1 데이터! 데이터! 데이터!
    15.2 LINQ의 기본: from, where, orderby, select
    15.3 여러 개의 데이터 원본에 질의하기 
    15.4 group by로 데이터 분류하기 
    15.5 두 데이터 원본을 연결하는 join
    15.6 LINQ의 비밀과 LINQ 표준 연산자
    연습문제


16장 리플렉션과 애트리뷰트
    16.1 리플렉션
    16.2 애트리뷰트
    연습문제


17장 dynamic 형식
    17.1 dynamic 형식 소개
    17.2 COM과 .NET 사이의 상호 운용성을 위한 dynamic 형식
    17.3 동적 언어와의 상호 운용성을 위한 dynamic 형식
    연습문제


18장 파일 다루기
    18.1 파일 정보와 디렉토리 정보 다루기
    18.2 파일을 읽고 쓰기 위해 알아야 할 것들 
    18.3 이진 데이터 처리를 위한 BinaryWriter/BinaryReader 
    18.4 텍스트 파일 처리를 위한 StreamWriter/StreamReader 
    18.5 객체 직렬화하기


19장 스레드와 태스크
    19.1 프로세스와 스레드
    19.2 Task와 Task , 그리고 Parallel
    19.3 async 한정자와 await 연산자로 만드는 비동기 코드


20장 WinForm으로 만드는 사용자 인터페이스
    20.1 도대체 무슨 일이 일어나고 있는 걸까?
    20.2 C# 코드로 WinForm 윈도우 만들기
    20.3 Application 클래스
    20.4 윈도우를 표현하는 Form 클래스
    20.5 폼 디자이너를 이용한 WinForm UI 구성
    20.6 사용자 인터페이스와 비동기 작업


21장 네트워크 프로그래밍
    21.1 네트워크 프로그래밍에 앞서 알아둬야 할 기초
    21.2 TcpListener와 TcpClient 
    21.3 흐르는 패킷


22장 가비지 컬렉션
    22.1 가비지 컬렉터를 아시나요 
    22.2 개처럼 할당하고 정승처럼 수거하라 
    22.3 세대별 가비지 컬렉션 
    22.4 가비지 컬렉션을 이해했습니다. 우리는 뭘 해야 하죠?

기초적인 부분, 즉 변수, 배열, 클래스 등에 대한 내용은 잘 설명하고 있습니다.

그러나 중반부에 들어가면 복잡하고 난해한 설명이 이어집니다.

우여곡절 끝에 해당 내용들을 이해하게 되었지만, 이 책이 큰 도움이 되었다고는 말 못하겠습니다.

프로그래밍에 처음 입문하는 분들께 입문서로는 추천하지 않습니다.

왜 국내에는 이름만 입문서인 책들 뿐일까요.

정말 아쉽습니다.

책 사서 읽어보시면 아시겠지만 오타 많습니다.
(한빛 홈페이지 뇌자극 c# 5.0 게시판 들어가서 보세요. 오타 정정하는 글 많이 보일거에요)
예제 소스가 있으면 소스 뒤에 설명이 없습니다.
그리고 입문자 책이라고 보기엔 약간 부족한게 많아요.
설명이 부족해서 이해하기 힘든면이 있습니다.
왠지 다른 책들을 짜집기해서 만든것 같은 느낌도 듭니다.
저는 이 책 사고나서 보다가 뭔가 부족한 감이 있어서 다른 씨샾책 한권 더 구입했습니다.. 그다지 추천하고싶지는 않네요,.

[프롤로그]

C# 이란 언어..

사실 C#이란 언어를 처음 접했을 ‹š는 대학교 3학년!!

한참 전공공부에 메달려 있었을 때..

개발 동아리에 들어가 열심히 학부생들을 위해 홈페이지를 만들 때였다.

그때 한참 객체지향을 공부하다 우연히 C#의 존재를 알게 되었고..

멘토였던 선배한테서 C#의 편리함을 듣고 입문서로 공부했던 책이 바로

한빛 미디어의 "Head First C#"이라는 책과 자북의 "소설같은 C#"이였다.

둘다 입문서로써 괜찮은 편이었고, 이 책들을 통해 처음으로 C#에 입문하여 한참 사용하다

대학원에 들어온 이후로는 많이 사용하지 않았다...

그래서 그렇게 굳어버린 내 C#에 대한 지식들을 깨울 필요성을 느껴..

이 "뇌를 자극하는 C# 5.0 프로그래밍"이라는 책을 읽어 보았다..


[이 책의 장단점]

-장점-

1. 목차가 아주 알차다는 생각이 들게하는 책..

2. 정말 이책은 친절한 책이다..

3. 이책은 참 깔끔한 책이다..


-단점-

1. 다양한 예제가 좀 부족하다는 것..

2. 다양한 컴포넌트를 이용한 예제와 설명이 부족하다는 것..


[이 책의 서평을 마치며..]

이 책을 다 읽고 나서 느낀점은 입문서로써는 공부하기 좋은 서적이다.. 라는 생각이다.

아마 c#에 대해서 아직 익숙하지 않거나 어느정도 익숙한데 다음 단계로 자신의 C# 개발 지식들을

조금이라도 높일려는 사람에게 적당한 서적일 것 같다는 생각이 든다.

C#은 언제나 배워보고 싶은 언어 중에 하나였다. 마땅히 배워볼 기회가 없어서인지 더 궁금했던 언어이기도 했다. 뇌를 자극하는 시리즈는 자바를 배울 때 독자의 입장에서 많이 생각했던 책으로 기억하고 있다. 이번 뇌를 자극하는 C#도 좋은 인상을 줄거라 생각하며 읽기 시작했다.

책의 순서가 어떻게 진행되는지 로드맵을 통해서 큰 숲을 먼저 독자에게 보여준다. 각 챕터에는 간단한 설명과 난이도를 표시하고 있다. C#을 구성하는 요소를 대략적으로 확인할 수 있다. 난이도 표시는 온라인 게임의 퀘스트와 같은 인상을 주기 때문에 한 챕터를 마칠 때마다 성장하는 기분이 들 수도 있다.

교재는 사용자가 자칫 실수를 하거나 자칫 잘 못 생각할 수 있는 부분까지도 신경써서 설명했다. 책을 읽다 보면 저자에게 개인 과외를 받는 인상을 받는다. 글만으로는 설명이 다소 부족한 부분은 충분한 그림으로 독자의 이해를 돕는다. 일부 페이지는 전부 그림으로 채워져 있는 부분도 있을 정도로 독자가 쉽게 이해할 수 있도록 배려했다. 델리게이트와 람다식에 대해서는 처음 접한 용어였지만, 책의 내용을 몇 번 읽어봄으로써 비교적 쉽게 이해할 수 있었다.

프로그래밍 서적은 독자로 하여금 직접 실습해 볼 수 있도록 코드를 제공한다. 코드의 중요한 부분에는 따로 설명을 달아 책을 앞뒤로 옮겨가며 부족한 부분을 찾아보려 하는 수고를 덜어준다. 코드 마지막 부분에는 간단한 실행 결과를 보여줌으로써 제대로 된 결과인지를 확인할 수 있도록 했다. 코드를 조금씩 개선해나가면서 프로그래밍의 재미를 느낄 수 있다. 뇌를 자극하는 시리즈 답게 단순하게 기본적인 개념을 익힌 뒤 기본적인 예제를 따라하는 수준이 아니라 독자로 하여금 여러 생각을 할 수 있도록 질문한다. 그로인해 조금씩 C#에 대한 실력을 키워나갈 수 있도록 구성되어 있다.

[프롤로그]

이번에 소개할 책은 <한빛미디어>에서 새롭게 출간된
<뇌를 자극하는 C# 5.0 프로그래밍>이라는 책입니다.

프로그래머가 아닌 제가 이 책을 선택한 이유는 작년에 잠시 배웠던 Unity라는 프로그램때문입니다.
Unity는 스마트폰 게임개발에 관심을 가지고 있는 분들은 한번쯤 들어봤을 게임 개발 엔진입니다.
작년에 Unity를 배울 기회가 있었는데, 그 때 Unity도 C# 프로그래밍이 필요하다는 사실을 처음 알았습니다.

프로그래밍도 공부를 해본 적이 거의 없지만...
그래도 한번 시작해보자라는 마음에, 입문자의 입장으로 이 책을 선정하게 되었습니다.


[프로그래밍 입문자를 위한 최적의 선택, 전작의 명성을 잇는 C# 5.0 의 초중급도서의 강자]


프로그래밍에 대해 아무것도 모르는 저같은 입문자도 별 거부감없이 책이 읽혔습니다.
딱딱하지 않게 저자가 옆에서 얘기하듯 구어체로 기술된 부분도 마음에 들었고,
단순히 코딩 예제 뿐 아니라, 왜 이러한 코딩이 되는건지... 컴퓨터 상에서는 어떻게 인식을 하는지에 대해,
원리와 개념을 이해시켜주려는 저작의 노력이 엿보이는 책이었습니다.


특히, 처음 책을 시작하는 부분에 있는 "C# 공부 로드맴"이 정말 인상적이었습니다.

단순히 목차에 따른 공부가 아닌, 각 단원별로 어떻게 연결이 되는지와 난이도가 표시되어 있어서,
독자로 하여금 어떻게 따라가야 하는 가에 대한 염려를 한번에 떨쳐낼 수 있게 합니다.



많은 프로그래밍 입문서들이 코딩 예제에 대한 설명을 글(TEXT)로만 하는 경향이 많습니다.

하지만, 이 <뇌를 자극하는 C# 5.0 프로그래밍>은 하나하나 도식으로 함께 설명을 해주어서
이해하기가 한결 수월했습니다.

특히, 정말 기초적인 프로그래밍 문법을 설명하는 데 그치지 않고,
중급실력까지는 마무리할 수 있도록 상위 개념들에 대해서도 개념을 잡도록 도와줍니다.

예를 들어, 델리게이트 같은 개념을 "사장과 비서"의 실제 생활에 비유해서 설명한 부분은 참 기억에 남습니다.
마지막 단원의 ".NET 프레임워크를 이용한 프로그래밍 파일다루기" 에서는 스레드와 태스크 , Winform으로 만드는 사용자 인터페이스 등
고급 개념에 대해서도 다루고 있어, 정말 이책만 잘 마무리하면, 중급이상의 실력은 잘 갖출 수 있도록 하는 최상의 안내서인 것 같습니다.


예전에 그래픽 공부를 할 때 구매했던 책들도 가능하면 안 버리는 이유가 바로 저 색인입니다.
이 책도 책의 내용을 완전히 제것으로 만든 이후에도 한동안 곁에 두고 활용할 것 같습니다.
정말 색인이 보기 쉽게, 찾기 쉽게 잘 정리가 되어 있어, 한번 본 다음부터는 필요한 부분만 집중에서 볼 수 있도록 되어 있습니다.



[총평]
이 책을 읽기 전에 <​뇌를 자극하는 C# 4.0 프로그래밍>에 대한 이야기를 많이 들었다.
대체로 평가가 좋았었는데, 이 책을 읽어보니, 평가가 좋을 수 밖에 없겠구나하고 공감이 되었다.

다른 프로그래밍책과 확연히 다른 점은 "이 책은 내가 프로그래밍에 재미를 붙일 수 있게"하였다는 점이다.
어렵지 않다...라는 막연한 자신감과 함께 좀더 공부해보고 싶다..라는 생각을 들게했다.

저자의 설명은 논리적이고, 저자의 문체는 이야기 방식이어서 딱딱하지 않았다.
사실 맨 마지막 부분인 .NET 프로그래밍은 아직 나에게는 이해하기 어려운 부분이지만...
책을 반복해서 읽어보고 싶은 그런 느낌을 주는 책이다.

▶ 1부 : 전반적인 책 구성 및 첫 인상
C# 5.0이 나오기 전에 기존에는 "뇌를 자극하는 C# 4.0 프로그래밍" 도서가 존재했었다.
그래서 개정판인 C# 5.0에서는 어떤 부분들이 많이 달라졌는지 상당히 궁금하기도 하고, 기대되기도 했었다.
다른 도서들에서도 볼 수 있는 것과 같이 본 도서에도 <학습 로드맵>이라는 항목에서 "기초 구문 익히기, 객체 지향 프로그래밍 이해하기, 고급 문법 익히기, .NET 프레임워크를 이용한 프로그래밍" 4가지 챕터를 소개하면서 각 챕터당 "★"표시로 난이도를 표시해주는 부분을 볼 수 있었다. 챕터와 각 챕터 하위에 속하는 내용들에 대해서 학습 순서를 간단히 표기해줌으로써 독자로 하여금 전체적 내용에 대해 난이도를 스스로 평가해 볼 수 있는 좋은 잣대를 제공해 주고 있다.


▶ 2부 : 책에서 기술되고 있는 내용구성 평가
본인이 한빛미디어에서 출간된 책을 개인적으로 아주 선호하는 이유가 여러가지가 있지만 몇가지로 꼽을 수 있다.
우선 학습하는 독자로 하여금 단순 내용만 전달하는 것이 아니라 "이 내용을 배워야 하는가? 무엇이 중요한가? 어떻게 응용될 수 있는가?"라는 질문을 할 수 있게끔 유도할 수 있는 구성을 해놓았다.
첫째, 책에서 소개되는 소스코드 본문에서 중요한 코드에 대해서 부가적인 설명을 해줌으로써 함수 선언, 코드의 실행 결과가 어떻게 실행되는지 쉽게 파악할 수 있다.
둘째, 각 챕터에서 본론으로 들어가기전 대화체 형식을 사용하여 중요 개념을 그림으로 쉽게 설명해놓았다.


▶ 3부 : 전반적인 책에 대한 개인적 소감 및 느낀 점
현재 본인이 대학원 연구실에서 C#으로 만들어진 로봇제어기 S/W 분석을 하는중이라 그런지 몰라도 본 서적(뇌를 자극하는 C# 5.0 프로그래밍)을 학습하면서 굉장히 많은 혜택을 보았다.
특히 C나 C++에서 볼 수 없었던 Delegate, Property 같은 부분에 대해서 학습 및 코딩을 어떻게 진행해야 되는지 몰라 상당히 많은 애를 먹었다.
하지만 본 서적리뷰를 진행하면서 어려운 개념을 그림으로 제시하면서 대화체 형식으로 설명해나가는 1:1 지도형식과 소스코드본문에서 이해가 어렵거나 부가적인 해설이 필요한 부분에 대해서 설명을 해줌으로써 독자가 어렵다고 느낄만한 부분을 고려하여 집필한 느낌을 받을 수 있었다.

사실 이전 4.0버전에 비해 많이 바뀐 부분은 없지만, 이제 C#을 공부하는 사람들은 이 버전으로 공부하기 바랍니다. 오타도 많지 않고 국내서라 읽기도 편합니다.

컴퓨터를 배우면서 처음에는 C를 접했고 점점 많은 언어를 접하기 시작했다.

C다음 C++ 다음에 C#이 될줄 알았지만 Java 그다음에 C#을 갈줄 알았지만 Javascript그 다음에 C#를 갈줄 알았지만 WOW(월드 오브 워크래프트)때문에 Lua…


간단하게 만져볼 수 있었던 언어는 많았지만 서로 포팅 가능할 정도로 연습한 것들은 위의 것이 전부다.




드디어 돌고 돌아 마침내 C#레퍼런스 북을 만지게 된 이날이 왔다!!


역시 처음 언어를 시작할때는 ‘한글’로 된 레퍼런스 북이 좋다. 이 책. 전 판인 ‘뇌를 자극하는 C# 4.0 프로그래밍’보다 책이 좀 작다. 4.0 -> 5.0으로 넘어가면 좀더 커져야 되는거 아닌가 내용도 추가 됬을텐데..



C는 프로그램을 배우는 사람이라면 알다시피 다음버전인 C++과는 어느정도 호환이 되지만 C#과는 전혀 호환이 되지 않는다. 제작자 본인도 아쉬워하지만 계보를 따르자면 많은 기존 언어들의 장점을 넣은 진보된 언어다.
2027861890.jpg


그림 : C# 너는 어디쯤 왔니? 이 뒤에 수많은 언어들이 존재하지만 들어보기만 했을뿐 만져본적도 없다.




대부분의 상위권 언어들은 C를 기반으로 한 언어를 채택하고 있고(자바는 VM이 C로 제작됬으니) 뒤이어 스크립트 언어들이 따르고 있다.


1. 책을 소개하기에 앞서 C# 4.0 -> 5.0은 책의 버전이 높아진게 아니다!




"뇌를 자극하는 C# 5.0 프로그래밍"의 5.0은 책의 버전을 말하는게 아니라 레퍼런스와 라이브러리를 추가한 C#에서 지원하는 언어적 기능이 늘었다는것을 의미한다. C#은 상당히 진보된 언어적 패러다임을 가지는데 기존에 가독성 좋고 간단하게 지원하는 기능이 많은 언어들의 장점들을 합쳐서 인지 간단한코딩에서도 대부분의 기능을 동작하게 할 수 있다. 또한 무의미한 코드를 줄이기 위해 람다(Lamda)함수를 지원하였는데 가독성은 조금 떨어지지만 사용하면 코드가 좀더 간편해지는걸 느낄 수 있따. 하지만 역시나 너무 복잡한 코딩은 같이 일하는사람의 난독증을 유발시킬수 있으니 주의해야겠다.


신기하게 생각했던 get, set, ???,은 2.0에서 추가되었고 5.0에선 비동기 메서드를 지원한다. 사실 스크립트 언어인 javascript가 부러웠던것은 간단하게 비동기를 구현할수 있다는것이었는데 C#은 자체 라이브러리로 안전하게 사용하게 만들었다. 대단한걸?


당연하게도 책에는 위에 변경사항들이 모두 포함되있다.


목차


1장 프로그래밍을 시작합시다
1.1 프로그래밍 언어의 역사
1.2 비주얼 스튜디오 익스프레스 설치하기

2장 처음 만드는 C# 프로그램
2.1 Hello, World!
2.2 첫 번째 프로그램 뜯어보기
2.3 CLR에 대하여
연습문제

3장 데이터 보관하기
3.1 데이터에도 종류가 있다
3.2 변수
3.3 값 형식과 참조 형식
3.4 기본 데이터 형식
3.5 상수와 열거 형식
3.6 Nullable 형식
3.7 var: 데이터 형식을 알아서 파악하는 똑똑한 C# 컴파일러
3.8 공용 형식 시스템
연습문제

4장 데이터를 가공하는 연산자
4.1 C#에서 제공하는 연산자 둘러보기
4.2 산술 연산자
4.3 증가 연산자와 감소 연산자
4.4 문자열 결합 연산자
4.5 관계 연산자
4.6 논리 연산자
4.7 조건 연산자
4.8 비트 연산자
4.9 할당 연산자
4.10 연산자의 우선순위
연습문제

5장 코드의 흐름 제어하기
5.1 분기문
5.2 반복문
5.3 점프문
연습문제

6장 메소드로 코드 간추리기
6.1 메소드란?
6.2 return에 대하여
6.3 매개 변수에 대하여
6.4 참조에 의한 매개 변수 전달
6.5 출력 전용 매개 변수
6.6 메소드 오버로딩
6.7 가변길이 매개 변수
6.8 명명된 매개 변수
6.9 선택적 매개 변수
연습문제

7장 클래스
7.1 객체 지향 프로그래밍과 클래스
7.2 클래스의 선언과 객체의 생성
7.3 객체의 삶과 죽음에 대하여: 생성자와 소멸자
7.4 정적 필드와 메소드
7.5 객체 복사하기: 얕은 복사와 깊은 복사
7.6 this 키워드
7.7 접근 한정자로 공개 수준 결정하기
7.8 상속으로 코드 재활용하기
7.9 기반 클래스와 파생 클래스 사이의 형식 변환, 그리고is 와 as
7.10 오버라이딩과 다형성
7.11 메소드 숨기기
7.12 오버라이딩 봉인하기
7.13 중첩 클래스
7.14 분할 클래스
7.15 확장 메소드
7.16 구조체
연습문제

8장 인터페이스와 추상 클래스
8.1 인터페이스의 선언
8.2 인터페이스는 약속이다
8.3 인터페이스를 상속하는 인터페이스
8.4 여러 개의 인터페이스, 한꺼번에 상속하기
8.5 추상 클래스: 인터페이스와 클래스 사이
연습문제

9장 프로퍼티
9.1 public 필드의 유혹
9.2 메소드보다 프로퍼티
9.3 자동 구현 프로퍼티
9.4 프로퍼티와 생성자
9.5 무명 형식
9.6 인터페이스의 프로퍼티
9.7 추상 클래스와 프로퍼티
연습문제

10장 배열과 컬렉션, 그리고 인덱서
10.1 All for one, one for all
10.2 배열을 초기화하는 세 가지 방법
10.3 알아두면 삶이 윤택해지는 System.Array
10.4 2차원 배열
10.5 다차원 배열
10.6 가변 배열
10.7 컬렉션 맛보기
10.8 인덱서
10.9 foreach가 가능한 객체를 만들기
연습문제

11장 일반화 프로그래밍
11.1 일반화 프로그래밍이란?
11.2 일반화 메소드
11.3 일반화 클래스
11.4 형식 매개 변수 제약시키기
11.5 일반화 컬렉션
11.6 foreach를 사용할 수 있는 일반화 클래스
연습문제

12장 예외 처리하기
12.1 예외에 대하여
12.2 try~catch로 예외 받기
12.3 System.Exception 클래스
12.4 예외 던지기
12.5 try~catch와 finally
12.6 사용자 정의 예외 클래스 만들기
12.7 예외 처리 다시 생각해보기
연습문제

13장 델리게이트와 이벤트
13.1 델리게이트란?
13.2 델리게이트는 왜, 그리고 언제 사용하나요?
13.3 일반화 델리게이트
13.4 델리게이트 체인
13.5 익명 메소드
13.6 이벤트: 객체에 일어난 사건 알리기
13.7 델리게이트와 이벤트
연습문제

14장 람다식
14.1 람다식, 너는 어디에서 왔니?
14.2 처음 만드는 람다식
14.3 문 형식의 람다식
14.4 Func와 Action으로 더 간편하게 무명 함수 만들기
14.5 식 트리
연습문제

15장 LINQ
15.1 데이터! 데이터! 데이터!
15.2 LINQ의 기본: from, where, orderby, select
15.3 여러 개의 데이터 원본에 질의하기
15.4 group by로 데이터 분류하기
15.5 두 데이터 원본을 연결하는 join
15.6 LINQ의 비밀과 LINQ 표준 연산자
연습문제

16장 리플렉션과 애트리뷰트
16.1 리플렉션
16.2 애트리뷰트
연습문제

17장 dynamic 형식
17.1 dynamic 형식 소개
17.2 COM과 .NET 사이의 상호 운용성을 위한 dynamic 형식
17.3 동적 언어와의 상호 운용성을 위한 dynamic 형식
연습문제

18장 파일 다루기
18.1 파일 정보와 디렉토리 정보 다루기
18.2 파일을 읽고 쓰기 위해 알아야 할 것들
18.3 이진 데이터 처리를 위한 BinaryWriter/BinaryReader
18.4 텍스트 파일 처리를 위한 StreamWriter/StreamReader
18.5 객체 직렬화하기

19장 스레드와 태스크
19.1 프로세스와 스레드
19.2 Task와 Task, 그리고 Parallel
19.3 async 한정자와 await 연산자로 만드는 비동기 코드

20장 WinForm으로 만드는 사용자 인터페이스
20.1 도대체 무슨 일이 일어나고 있는 걸까?
20.2 C# 코드로 WinForm 윈도우 만들기
20.3 Application 클래스
20.4 윈도우를 표현하는 Form 클래스
20.5 폼 디자이너를 이용한 WinForm UI 구성
20.6 사용자 인터페이스와 비동기 작업

21장 네트워크 프로그래밍
21.1 네트워크 프로그래밍에 앞서 알아둬야 할 기초
21.2 TcpListener와 TcpClient
21.3 흐르는 패킷

22장 가비지 컬렉션
22.1 가비지 컬렉터를 아시나요
22.2 개처럼 할당하고 정승처럼 수거하라
22.3 세대별 가비지 컬렉션
22.4 가비지 컬렉션을 이해했습니다. 우리는 뭘 해야 하죠?

역시나 GUI부분과 네트워크 프로그래밍이 마지막에 있는 좋은 책. 많은 사람들이 저부분을 읽지 않겠지만 편집상 어쩔수 없이 뒤로 가야한다는걸 머리론 이해하지만 마음이 가면 알아서 찾겠지?


그나마 책이 좀 작은게 위안이 되는데. 그래도 내용이 뺴곡한건 마찬가지다. 책은 줄었는데 4.0버전에 있던 내용은 어떻게 다 들어간건지 편집의 마술이다. 종이 사용 절감! 환경 보호!




2. 책의 속을 파헤쳐보자


일단 내용자체의 설명이 나쁘거나 한점은 없다 압도적인 양의 예제에 이걸 언제 다 실행시켜 볼까 하는 생각은 들지만. 예제를 모두 실행해보는데 20시간 정도 걸린것 같다. 예제가 너무 얌전하니까. 쓰는법은 익히겠느데 어디다 써야될지는 모르겠고. 이걸 이용해서 무언가를 만들다 보면 뻥 터지는건 이 책이 아니라 MSDN과 Stackoverflow가 가르쳐줄꺼다.


탄탄한 실용 예제 그리고 예상되는 문제점들을 잘 정리한게 이 레퍼런스 북의 장점이다.


그리고 프로그래머라면 좋아할만한 깨알같은... 예제가 많다

다만 문제는 Delegate와 Lamda부턴데...


Lamda 챕터가 지나고 난뒤 Lamda를 이용한 코딩이 보이기 시작한다. 하지만 이게 레퍼런스북을 보는 사람이라면 알겠지만 처음 봤을때는 가독성이 떨어진다. 다시 이 코드를 이해하기 위해 책을 뒤로 펼쳐야 하는것도 그렇고. Lamda는 분명 효율적이고 좋은 식이지만 연관되지 않은 각각의 챕터는 분리되어야 된다고 생각한다. Delegate를 사용한 식들은 좀더 편한 레퍼런스를 제공하지만 Delegate가 어떻게 이용되는지 써야되는데.. 그게 없네. 후반에 중요한 레퍼런스를 설명하니 만큼 이부분은 조금 간단하게 풀어써주었으면 한다. 갑자기 여러가지 복합적인 개념을 접목시키기엔 예제를 보아도 정확히 이해하지 좋아보이진 않는다.




3. 마무으리


좋은책


제 점수는요... 5.0만점에 4.5? 레퍼런스북으로 충분히 기능을 하고 오역이나 오탈자도 적다. 책이 작아져 무게도 감소했으니 전투력은 감소했지만 충분히 하나 벽장에 넣어두고 보기엔 좋은책. 다만 C#6.0이 나온다면...

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
뇌를 자극하는 C# 5.0 프로그래밍
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
뇌를 자극하는 C# 5.0 프로그래밍
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
뇌를 자극하는 C# 5.0 프로그래밍
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실