본문 바로가기

출간 도서 소개

4. 바쁜 개발자들을 위한 C#



[제목]
바쁜 개발자들을 위한 C#

[부제]
빠르게 익히는 C# 핵심 개념

[원서명]
The C# Programming Yellow Book

저자: 롭 마일즈(Rob Miles)
출판사: 남가람북스
역자: 테크트랜스 그룹 T4
발행일: 2016-01-07
ISBN: 979-11-954845-3-9
가격: 22,000원
페이지: 456
판형: 182*232*19

[상세 페이지]

 

[책소개]
이 책은 영국의 헐 대학교(Hull University) 컴퓨터 공학과 Rob Miles 교수의 강의 자료를 바탕으로 구성되었습니다. 각종 문법이나 용어에 대해 깊이 있고 구체적으로 다루진 않지만, 유용한 실무 코드 예제를 사용해서 쉽고 빠르게 C# 언어에 대한 전반적인 내용을 다루고 있다는 것이 가장 큰 특징입니다.
이전에 C, C++ 혹은 Java 등 다른 프로그래밍 언어를 경험한 적이 있다면 가장 이상적인 독자입니다. 아니라면 많이 어렵겠지만 용기를 잃지 말고 쭉 읽어가길 바랍니다. 여기서 프로그래밍에 실질적으로 필요한 것들을 많이 배울 수 있습니다.

[출판사 리뷰]
많은 개발자들이 그 가치를 알아주는 C#은 .NET Framework에서 실행되는 다양한 응용 프로그램을 만들기 위해 디자인된 프로그래밍 언어입니다. C++, 자바와 비슷한 문법을 가지고 있으며 간결하고, 강력하며, 형식이 안전한 개체 지향적인 언어입니다. 이 책은 C# 프로그래밍을 위한 기본적인 내용을 제공하는 것 외에도 솔루션을 만드는 방법과 고급 프로그래밍에 대한 내용을 다룹니다.
이 책을 통해서 C#에 대한 전반적인 내용을 단순간에 살펴볼 수 있을 것이며, 기본부터 시작해서 고급 수준까지 가는데, 디딤돌이 될 수 있기를 바랍니다.

-이 책의 대상 독자-

이 책은 다음과 같은 선수 지식이 필요합니다.
* C/C++과 .Net 프레임워크에 대한 기본 지식
* 객체 지향 프로그래밍에 대한 지식
* 소프트웨어 엔지니어링에 대한 지식

다음과 같은 개발자를 대상으로 합니다.
* C/C++을 배운 후에 C#으로 확장하여 개발 경험을 쌓으려는 개발자
* C# 뿐만 아니라 프로그래밍에 대한 전반적인 지식을 얻으려는 개발자
* C#의 초급부터 고급까지 전반적인 내용을 짧은 시간 안에 습득하려는 개발자

-이 책의 구성-

이 책의 구성은 크게 다음과 같습니다.
1장: 컴퓨터와 프로그램
2장: 간단한 데이터 프로세싱
3장: 프로그래밍하기
4장: 솔루션 만들기
5장: 고급 프로그래밍
6장: 중요 용어 사전

이 책에 나오는 주요 소스 코드는 남가람북스 자료실 www.namgarambooks.co.kr에서 다운로드할 수 있습니다.
이 책의 원서명은 The C# Programming Yellow Book(Rob Miles 저)이며, 아마존에서 킨들판으로 판매하고 있습니다.

-개발 환경 설정-

마이크로소프트는 C# 프로그래밍이 가능한 통합 개발 환경을 다음과 같이 제공합니다.

Visual Studio (유료)
Visual Studio Express (무료)
Visual Web Developer(무료)

C# 프로그래밍을 공부하는 데 무료 버전을 사용해도 괜찮습니다. 무료 버전은 Visual Studio 공식 사이트(https://www.visualstudio.com/downloads/download-visual-studio-vs)에서 다운로드 가능합니다.
Mono(http://www.mono-project.com/)라는 오픈소스 버전인 Net 프레임워크를 사용하면 리눅스와 Mac에서도 사용 가능합니다.

[목차]

Chapter 01 컴퓨터와 프로그램
1.1 컴퓨터
1.1.1 컴퓨터와 관련된 서론부
1.1.2 하드웨어와 소프트웨어
1.1.3 데이터와 정보
1.2 프로그램과 프로그래밍
1.2.1 프로그래머란 무엇인가?
1.2.2 간단한 예제
1.3 프로그래밍 언어
1.4 C#
1.4.1 위험한 C
1.4.2 안전한 C#
1.4.3 C#과 객체지향
1.4.4 C#으로 동작하게 만들기
1.4.5 C# 프로그램 만들기
1.4.6 C# 프로그램은 무엇으로 구성되는가?

Chapter 02 간단한 데이터 처리
2.1 첫 번째 C# 프로그램
2.1.1 프로그램 예제
2.2 데이터 다루기
2.2.1 변수와 데이터
2.2.2 숫자 저장하기
2.2.3 텍스트(text) 저장하기
2.2.4 불린(Boolean) 방식을 사용하여 상태 저장하기
2.2.5 식별자(Identifiers)
2.2.6 변수에 값 대입하기
2.2.7 데이터 타입 변경하기
2.2.8 표현식에서 데이터 타입
2.2.9 프로그램과 패턴
2.3 프로그램을 만드는 요령
2.3.1 소설 같은 소프트웨어
2.3.2 프로그램 흐름(Program Flow) 제어하기
2.3.3 루프(반복문)
2.3.4 복합할당 연산자(operator shorthand)
2.3.5 잘 정돈된 출력
 
Chapter 03 프로그램을 만들 때 필요한 것들
3.1 메소드(Methods)
3.1.1 메소드의 필요성
3.1.2 메소드의 파라미터(매개변수)
3.1.3 반환값(Return Valules)
3.1.4 인수와 파라미터(Arguments and Parameters)
3.1.5 유용한 메소드
3.1.6 이름을 가지는 파라미터와 이름이 없는 파라미터
3.1.7 파라미터로 값을 전달하는 방식(Parameter Passing By Value)
3.1.8 참조(Reference)를 전달하는 방식(Parameter Passing By Reference)
3.1.9 결과를 위한 참조 전달 방식 (Passing Parameters as “out” references)
3.1.10 메소드 라이브러리
3.2 변수와 범위
3.2.1 범위와 블록(Scope and blocks)
3.2.2 중첩된 블록(Nested Blocks)
3.2.3 클래스 선언 아래에 있는 클래스 변수(Data Member in classes)
3.3 배열(Arrays)
3.3.1 배열은 왜 필요한가
3.3.2 배열 요소(Array Elements)
3.3.3 많은 데이터를 담는 배열
3.3.4 2차원 배열 만들기
3.3.5 배열과 룩업테이블(Arrays and Lookup Tables)
3.3.6 2차원 이상
3.4 예외와 에러(Exceptions and Errors)
3.4.1 예외와 Parse 메소드
3.4.2 예외 처리(Catching Exceptions)
3.4.3 예외 객체
3.4.4 중첩된 예외의 처리
3.4.5 Finally 절 추가하기
3.4.6 예외 처리
3.4.7 예외 처리의 기본 매너
3.5 Switch문
3.5.1 다중 결정하기
3.5.2 if문을 사용하여 선택하기
3.5.3 Switch문 사용하기
3.6 파일 사용하기
3.6.1 스트림과 파일
3.6.2 출력 스트림 만들기
3.6.3 스트림으로 저장하기
3.6.4 스트림 닫기(완료하기)
3.6.5 스트림과 네임스페이스(Streams and Namespaces)
3.6.6 파일 읽기
3.6.7 C#에서 파일 경로

Chapter 04 프로그램 제작 연습
4.1 사례: 친절한 은행
4.1.1 은행 시스템의 범위
4.2 열거형 타입(Enumerated Types)
4.2.1 열거와 상태(Enumeration and States)
4.2.2 enum 타입 만들기
4.3 구조체
4.3.1 구조체(Structures)란?
4.3.2 구조체 만들기
4.3.3 구조체 사용하기
4.4 객체, 구조체, 참조(Objects, Structures and References)
4.4.1 객체와 구조체
4.4.2 참조(reference)
4.4.3 참조 사용에 주의해야 하는 이유
4.5 객체를 이용해서 설계하기
4.5.1 객체 내 데이터
4.5.2 객체 내 데이터 보호
4.5.3 완전한 Account 클래스
4.5.4 테스트 주도 개발
4.6 정적 변수
4.6.1 클래스와 static
4.6.2 클래스에서 static을 이용한 변수 사용하기
4.6.3 클래스 내에서 static 메소드 사용하기
4.7 객체 생성
4.7.1 기본 생성자
4.7.2 생성자
4.7.3 생성자 오버로딩(overloading)
4.7.4 생성자 관리
4.7.5 생성자는 실패하면 안 된다.
4.8 객체에서 컴포넌트까지
4.8.1 컴포넌트와 하드웨어
4.8.2 컴포넌트와 인터페이스
4.8.3 C#에서 인터페이스 구현하기
4.8.4 인터페이스에 대한 참조
4.8.5 인터페이스 사용하기
4.8.6 다중 인터페이스 구현하기
4.8.7 Interfaces를 사용하여 설계하기
4.9 상속
4.9.1 부모 클래스 확장하기
4.9.2 오버라이딩 메소드
4.9.3 base 메소드 사용하기
4.9.4 대체 메소드 만들기
4.9.5 오버라이딩 멈추기
4.9.6 생성자와 계층 구조
4.9.7 추상(abstract) 메소드와 클래스
4.9.8 객체와 컴포넌트로 설계하기
4.9.9 패닉에 빠지지 말자
4.10 객체 사용 방법
4.10.1 객체와 ToString
4.10.2 객체와 이퀄(equal) 테스팅
4.10.3 객체와 this
4.11 strings과 chars의 강력한 기능
4.11.1 문자열 다루기
4.11.2 불변(immutable) 문자열
4.11.3 문자열 비교
4.11.4 문자열 편집
4.11.5 문자열 길이
4.11.6 대소문자
4.11.7 빈 문자열 제거
4.11.8 문자 명령어
4.11.9 StringBuilder를 사용하여 문자열 사용하기
4.12 프로퍼티
4.12.1 클래스에 선언되는 프로퍼티
4.12.2 Get과 Set 메소드 만들기
4.12.3 프로퍼티 사용하기
4.12.4 프로퍼티와 인터페이스
4.12.5 프로퍼티 문제점
4.12.6 위임 사용하기
4.13 은행 프로그램 만들기
4.13.1 배열로 계좌 저장하기
4.13.2 검색과 성능
4.13.3 해시 테이블(Hash Table)을 사용하여 계좌 저장하기
4.13.4 C# 해시 테이블 컬렉션 사용하기

Chapter 05 고급 프로그래밍 기법들
5.1 제네릭과 컬렉션(Generics and Collections)
5.1.1 ArrayList 클래스
5.1.2 List 클래스
5.1.3 Dictionary 클래스
5.1.4 제네릭 코드 작성하기
5.2 비즈니스 객체 저장하기
5.2.1 계좌 저장하기
5.2.2 계좌 불러오기
5.2.3 다중 계좌
5.2.4 다른 타입의 계좌 다루기
5.3 비즈니스 객체와 편집(editing)
5.3.1 비즈니스 객체의 역할
5.3.2 텍스트 기반의 편집 시스템
5.4 스레드와 스레드 기법(Threads and Threading)
5.4.1 스레드란 무엇인가?
5.4.2 왜 스레드를 사용해야 하나?
5.4.3 스레드와 프로세서
5.4.4 스레드 사용하기
5.4.5 스레드와 동기화
5.4.6 스레드 제어
5.4.7 스레드 제대로 활용하기
5.4.8 스레드와 프로세스
5.5 구조화된 예외의 처리
5.5.1 예외 클래스
5.5.2 자신의 예외 타입 만들기
5.5.3 예외 발생
5.5.4 다중 예외 타입
5.6 프로그램 구조
5.6.1 분리된 소스 파일 사용하기
5.6.2 네임스페이스
5.6.3 여러 파일의 네임스페이스
5.7 그래픽 사용자 인터페이스
5.7.1 XAML 마크업 언어
5.7.2 완전한 XAML 프로그램 만들기
5.8 디버깅
5.8.1 결함 보고서
5.8.2 버그 찾기
5.8.3 완벽한 소프트웨어 만들기
5.9 끝?
5.9.1 계속 개발하기
5.9.2 더 읽어봐야 할 것

Chapter 06 용어 사전
추상(abstract)
접근자(Accessor)
베이스(Base)
호출(Call)
클래스(Class)
코드 재사용(Code Reuse)
응집력(Cohesion)
컬렉션(Collection)
컴파일러(Compiler)
컴포넌트(Component)
생성자(Constructor)
커플링(Coupling)
창조적 지연(Creative Laziness)
선언적 언어(Declarative language)
위임(Delegate)
의존성(Dependency)
이벤트(Event)
예외(Exception)
기능 설계 명세서(Functional Design Specification)
GUID(Globally Unique Identifier)
계층 구조(Hierarchy)
불변(Immutable)
상속(Inheritance)
인터페이스(Interface)
라이브러리(Library)
기계어 부호(Machine code)
메타데이터(Metadata)
메소드(Method)
뮤테이터(Mutator)
네임스페이스(Namespace)
오버로드(Overload)
오버라이드(Override)
이식성(Portable)
Private
프로퍼티(Property)
Protected
Public
참조(Reference)
시그니처(Signature)
소스 파일(Source file)
정적(Static)
스트림(Stream)
구조(Structure)
서브스크립트(Subscript)
문법 하이라이트(Syntax Highlighting)
견고성 테스트(Test harness)
This
타입세이프(Typesafe)
유닛 테스트(Unit test)
값 타입 (Value type)
버추얼(가상) 메소드 (Virtual method)

Appendix
Visual Studio 설치와 예제 실행
Visual Studio 2015 다운로드
Visual Studio 2015 Community 에디션 다운로드와 설치
Visual Studion 2015 설치
Visual Studio 실행과 프로젝트의 생성
프로젝트 선택
C# 프로젝트 생성
프로젝트 실행과 디버깅
디버깅 모드(단축키 F5)
디버깅(debugging)하지 않고 실행(단축키 Ctrl + F5)
프로젝트에 여러 개의 클래스를 사용하는 방법
클래스 추가하기
추가한 클래스에 Main 작성하기
프로젝트의 시작 개체 변경하기

찾아보기