이것이 C#이다

고객평점
저자박상현
출판사항한빛미디어, 발행일:2018/07/01
형태사항p.786 B5판:24
매장위치컴퓨터부(B2) , 재고문의 : 051-816-9500
ISBN9791162240861 [소득공제]
판매가격 30,000원   27,000원  (인터넷할인가:10%)
포인트 1,350점
배송비결제주문시 결제
절판도서 및 품절도서 입니다 매장으로 문의바랍니다.
재고 0인 도서는 수량 부족으로 발송지연이 예상되니 주문 전 문의바랍니다.

책 소개

-. C#을 처음 접하는 입문자, 초급자
-. 대학이나 IT 학원의 윈도우 프로그래밍 관련 학부생, 수강생

- C# 7.2 버전으로 다시 집필한 『뇌를 자극하는 C# 5.0』의 전면개정판! 비주얼 스튜디오 2017 반영.
- C# 언어의 탄생 배경부터 상세한 입문 과정까지, C#의 전반적인 큰 틀을 설명합니다.
- 문법 설명에만 치중하지 않고 프로그램의 동작 원리도 충분히 다뤘습니다.
- C# 프로그래밍이 수행될 때 밑단에서 돌아가는 .NET 프레임워크도 상세히 설명합니다.
- 이론을 설명한 후에는 반드시 예제 코드로 직접 실습할 수 있게 구성했습니다.
- 단순히 지식전달보다는 독자 스스로 내용을 이해할 수 있도록 대화체로 서술했습니다.

제가 C#을 처음 만난 지가 엊그제 같은데 벌써 18년이 지났습니다. 그동안 놀라운 일이 많이 일어났어요. 그새 마이크로소프트의 CEO가 두 번이나 바뀌었습니다. 빌게이츠에서 스티브 발머로, 스티브 발머에서 사티아 나델라로요. 세상에, 윈도우에서 리눅스 애플리케이션을 운용할 수 있게 될 줄 누가 상상했겠어요? .NET의 오픈소스화도 생각지 못했던 일입니다. 변화는 C#에도 있었습니다. C#은 여러 차례 판올림을 거치면서 일반화, LINQ, 비동기 프로그래밍 기능 등을 더하며 7.x 버전에 이르렀죠. 활동 무대도 넓어졌습니다. 초기의 C#으로는 윈도우용 애플리케이션만 개발할 수 있었지만, 이젠 리눅스와 맥OS, 안드로이드와 iOS도 지원할 수 있게 되었습니다. 그뿐만이 아닙니다. C#은 이제 게임개발에 가장 많이 사용되는 언어 중 하나가 되었습니다.

빠르게 새로움을 더해가는 C# 덕분에 프로그래머로서의 기쁨은 커졌지만, 저자로서의 제 고민 또한 늘었습니다. 『이것이 C#이다』는 많은 독자에게 과분한 사랑을 받았던 『뇌를 자극하는 C# 프로그래밍』의 후속작입니다. 저는 『뇌를 자극하는 C# 프로그래밍』도 기본서로서는 너무 많은 내용을 담고 있는 것이 아닌가 하는 생각을 하고 있었기에 이번 판이 C#에 더해지는 기능을 모두 담음으로써 기본서로서의 가치가 훼손되지는 않을까 걱정했습니다. 그래서 프로그래밍을 처음 공부하는 독자의 부담을 고려하여 최신 C# 언어의 사양을 기존 22개 장에 조심스럽게 녹여 넣었습니다. 피치 못하게 책의 분량이 조금 늘긴 했지만 베개로 쓰기에는 꽤 얇아서 제 노력이 절반의 성공을 거뒀다고 자평하고 있습니다. 독자 여러분이 이 책으로 C#을 익혀 프로그래밍을 행복하게 즐기게 된다면 저는 완전한 성공을 선언할 수 있을 것 같아요.

C#의 장점 중 하나는 문법의 난이도가 높지 않다는 것입니다. 이 책은 모두 22개의 장으로 이루어져 있습니다. 1장부터 10장까지는 기초 문법을 다루고 있어서 쉽게 소화가 가능하고, 11장부터 17장까지는 앞에서 축적한 이해를 바탕으로 하는 고급 문법을 다룹니다. 그래서 1장부터 17장까지는 차례대로 공부하고, .NET 프레임워크의 활용을 다루는 18장부터 22장까지는 마음에 드는 부분부터 하나씩 골라 읽으면 좋습니다. 물론 처음부터 끝까지 순서대로 읽는 것도 좋은 방법입니다. 어떤 방법이든 여러분이 프로그래밍의 즐거움을 맛볼 수 있다면 저는 더할 나위 없겠어요.

『뇌를 자극하는 C# 프로그래밍』이 그랬던 것처럼, 이 책은 프로그래밍을 처음 시작하는 독자를 위해 만들어졌습니다. 전작에 대해 보내주신 피드백을 통해 생각보다 다양한 독자가 C#으로 프로그래밍을 시작하고 있다는 것을 알게 되었습니다. 독자의 대부분은 대학생이지만 새로 시작하는 프로젝트 때문에 C#을 공부하는 현직 개발자, 프로 못지않게 열심히 코딩하는 고등학생, 심지어 수감생활을 하며 프로그래밍을 공부하시는 분도 있었습니다.
이번에도 프로그래밍을 시작하는 분들에게 단단한 디딤돌이 되어주기를 바라는 마음으로 『이것이 C#이다』를 세상에 내놓습니다.
이 책과 함께 하는 모든 분들에게 프로그래밍의 즐거움이 함께 하기를 바랍니다.

2018년 한여름의 문턱에서 아내와 두 아들 윤성, 윤호에게 사랑한다는 말을 전하며...
지은이_박상현

작가 소개

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

대표 저서 (한빛미디어)
『뇌를 자극하는 파이썬 3』(2016)
『뇌를 자극하는 C# 5.0 프로그래밍』(2014)
『뇌를 자극하는 알고리즘』(2009)  

 

목 차

CHAPTER 1 프로그래밍을 시작합시다
__1.1 프로그래밍 언어의 역사
__1.2 비주얼 스튜디오 설치하기

CHAPTER 2 처음 만드는 C# 프로그램
__2.1 Hello, World!
__2.2 첫 번째 프로그램 뜯어보기
__2.3 CLR에 대하여
__연습 문제

CHAPTER 3 데이터 보관하기
__3.1 데이터에도 종류가 있다
__3.2 변수
__3.3 값 형식과 참조 형식
__3.4 기본 데이터 형식
__3.5 상수와 열거 형식
__3.6 Nullable 형식
__3.7 var: 데이터 형식을 알아서 파악하는 똑똑한 C# 컴파일러
__3.8 공용 형식 시스템
연습 문제

APPENDIX A 문자열 다루기
__A.1 문자열 안에서 찾기
__A.2 문자열 변형하기
__A.3 문자열 분할하기
__A.4 문자열 서식 맞추기

CHAPTER 4 데이터를 가공하는 연산자
__4.1 C#에서 제공하는 연산자 둘러보기
__4.2 산술 연산자
__4.3 증가 연산자와 감소 연산자
__4.4 문자열 결합 연산자
__4.5 관계 연산자
__4.6 논리 연산자
__4.7 조건 연산자
__4.8 널 조건부 연산자
__4.9 비트 연산자
__4.10 할당 연산자
__4.11 Null 병합 연산자
__4.12 연산자의 우선순위
연습 문제

CHAPTER 5 코드의 흐름 제어하기
__5.1 분기문
__5.2 반복문
__5.3 점프문
연습 문제

CHAPTER 6 메소드로 코드 간추리기
__6.1 메소드란?
__6.2 return에 대하여
__6.3 매개 변수에 대하여
__6.4 참조에 의한 매개 변수 전달
__6.5 메소드의 결과를 참조로 반환하기
__6.6 출력 전용 매개 변수
__6.7 메소드 오버로딩
__6.8 가변길이 매개 변수
__6.9 명명된 매개 변수
__6.10 선택적 매개 변수
__6.11 로컬 함수
연습 문제

CHAPTER 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 구조체
__7.17 튜플
연습 문제

CHAPTER 8 인터페이스와 추상 클래스
__8.1 인터페이스의 선언
__8.2 인터페이스는 약속이다
__8.3 인터페이스를 상속하는 인터페이스
__8.4 여러 개의 인터페이스, 한꺼번에 상속하기
__8.5 추상 클래스: 인터페이스와 클래스 사이
연습 문제

CHAPTER 9 프로퍼티
__9.1 public 필드의 유혹
__9.2 메소드보다 프로퍼티
__9.3 자동 구현 프로퍼티
__9.4 프로퍼티와 생성자
__9.5 무명 형식
__9.6 인터페이스의 프로퍼티
__9.7 추상 클래스와 프로퍼티
연습 문제

CHAPTER 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 인덱서
__10.10 foreach가 가능한 객체 만들기
연습 문제

CHAPTER 11 일반화 프로그래밍
__11.1 일반화 프로그래밍이란?
__11.2 일반화 메소드
__11.3 일반화 클래스
__11.4 형식 매개 변수 제약시키기
__11.5 일반화 컬렉션
__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으로 더 간편하게 무명 함수 만들기
__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 리플렉션
__16.2 애트리뷰트
연습 문제

CHAPTER 17 dynamic 형식
학습 목표
__17.1 dynamic 형식 소개
__17.2 COM과 .NET 사이의 상호 운용성을 위한 dynamic 형식
__17.3 동적 언어와의 상호 운용성을 위한 dynamic 형식

CHAPTER 18 파일 다루기
__18.1 파일 정보와 디렉토리 정보 다루기
__18.2 파일을 읽고 쓰기 위해 알아야 할 것들
__18.3 이진 데이터 처리를 위한 BinaryWriter/BinaryReader
__18.4 텍스트 파일 처리를 위한 StreamWriter/StreamReader
__18.5 객체 직렬화하기

CHAPTER 19 스레드와 태스크
__19.1 프로세스와 스레드
__19.2 Task와 Task[TResult], 그리고 Parallel
__19.3 async 한정자와 await 연산자로 만드는 비동기 코드

CHAPTER 20 WinForm으로 만드는 사용자 인터페이스
__20.1 도대체 무슨 일이 일어나고 있는 걸까?
__20.2 C# 코드로 WinForm 윈도우 만들기
__20.3 Application 클래스
__20.4 윈도우를 표현하는 Form 클래스
__20.5 폼 디자이너를 이용한 WinForm UI 구성
__20.6 사용자 인터페이스와 비동기 작업

CHAPTER 21 네트워크 프로그래밍
__21.1 네트워크 프로그래밍에 앞서 알아둬야 할 기초
__21.2 TcpListener와 TcpClient
__21.3 흐르는 패킷

CHAPTER 22 가비지 컬렉션
__22.1 가비지 컬렉터를 아시나요?
__22.2 개처럼 할당하고 정승처럼 수거하라
__22.3 세대별 가비지 컬렉션
__22.4 가비지 컬렉션을 이해했습니다. 우리는 뭘 해야 하죠?

역자 소개

01. 반품기한
  • 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
  • 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품 배송비
반품사유 반품 배송비 부담자
단순변심 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다.
상품의 불량 또는 오배송 고객 부담이 아닙니다.
03. 배송상태에 따른 환불안내
환불안내
진행 상태 결제완료 상품준비중 배송지시/배송중/배송완료
어떤 상태 주문 내역 확인 전 상품 발송 준비 중 상품이 택배사로 이미 발송 됨
환불 즉시환불 구매취소 의사전달 → 발송중지 → 환불 반품회수 → 반품상품 확인 → 환불
04. 취소방법
  • 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
  • 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
환불시점
결제수단 환불시점 환불방법
신용카드 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) 신용카드 승인취소
계좌이체 실시간 계좌이체 또는 무통장입금
취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준)
계좌입금
휴대폰 결제 당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소
전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준)
당일취소 : 휴대폰 결제 승인취소
익월취소 : 계좌입금
포인트 취소 완료 후, 당일 포인트 적립 환불 포인트 적립
06. 취소반품 불가 사유
  • 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
  • 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
  • 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
  • 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
  • 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
  • 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.

환불불가
상품군 취소/반품 불가사유
의류/잡화/수입명품 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우
계절상품/식품/화장품 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
가전/설치상품 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.)
자동차용품 상품을 개봉하여 장착한 이후 단순변심의 경우
CD/DVD/GAME/BOOK등 복제가 가능한 상품의 포장 등을 훼손한 경우
내비게이션, OS시리얼이 적힌 PMP 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우
노트북, 테스크탑 PC 등 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우