프랙티컬 C# (관용구, 정석, 패턴으로 배우는 C# 프로그래밍 테크닉)

프랙티컬 C# (관용구, 정석, 패턴으로 배우는 C# 프로그래밍 테크닉)

$30.29
Description
대부분의 초보 프로그래머들은 ’C#의 기본적인 문법은 어느 정도 이해했지만 지금 알고 있는 문법을 어떻게 적용하고 프로그램을 어떻게 만들어야 할지 잘 모르겠다.’라는 고민을 가지고 있을 것입니다. 이 책은 C#을 이제 정석으로 공부하려고 하는 독자를 위한 책입니다.

C#의 문법을 이해한 것만으로는 프로그램을 작성할 수 없습니다. 지금 해결하려고 하는 문제의 순서를 생각하고 여기에 이용할 데이터의 구조를 생각한 후에 이를 C# 코드로 작성하는 기술이 필요합니다. .NET 프레임워크에 마련돼 있는 다양한 클래스를 활용하는 방법도 알아둬야 하고 C# 코드를 나중에 변경하기 쉽게 작성하기 위한 지식도 필요합니다.

이런 기술을 습득하는 지름길은 현장에서 이용되는 ‘관용구’, ‘정석’, ‘패턴’을 학습하는 것입니다. 이 패턴을 잘 기억하는 것이 고수가 되는 지름길인 것입니다. 이 책에서는 이해하기 어려웠던 객체지향에 관한 내용을 다시 확인하는 과정에서 출발합니다. 그리고 현장에서 사용되는 ‘관용구/정석’을 중심으로 해서 C#에 포함된 편리한 기능을 사용하는 방법, 데이터를 다루는 방법, 프레임워크를 이용하는 방법을 알기 쉽게 풀어서 설명함으로써 독자가 C# 프로그래밍에 익숙해질 수 있게 합니다. 또한 이 책에서 알게 된 문법을 어떻게 적용할지, 어떻게 프로그래밍할지, 왜 프로그램을 그렇게 작성해야 하는지에 관해서도 자세히 설명합니다.
저자

이데이히데유키

저자이데이히데유키(出井秀行)는일본토치기현출생.동경이과대학이공학부정보과학과졸업.FORTRAN,Pascal,BASIC,COBOL,C,C++,Delphi등많은언어를사용해오다가2002년에C#을접하고그훌륭함에매료된후현재까지C#을주로사용하고있다.2004년부터gushwell이라는핸들명으로온라인활동을시작했다.메일매거진이나블로그를통해C#기술에관한정보를알리고있다.2005년부터12년연속으로마이크로소프트MVP어워드를수상했다.취미는독서,사진,농구이다.

목차

[01부]준비편

▣01장:객체지향프로그래밍기초
1.1클래스
___1.1.1클래스를정의한다
___1.1.2클래스의인스턴스를생성한다
___1.1.3객체를이용한다
___1.1.4인스턴스는여러개만들수있다
1.2구조체
1.3값형과참조형
___1.3.1값형에대해서
___1.3.2참조형에대해서
___1.3.3왜값형과참조형이라는두가지형이필요할까?
1.4정적멤버와정적클래스
___1.4.1정적속성과정적메서드
___1.4.2정적클래스
1.5네임스페이스
1.6상속
___1.6.1상속이란?
___1.6.2isa관계

▣02장:C#으로프로그램을만들어보자
2.1거리를환산하는프로그램
___2.1.1첫버전
___2.1.2계산로직을메서드의형태로독립시킨다
___2.1.3프로그램에기능을추가한다
___2.1.4메서드의기능을단순하게한다
___2.1.5클래스로분리한다
___2.1.6클래스를이용한다
___2.1.7정적메서드로수정한다
___2.1.8정적클래스로수정한다
___2.1.9상수를정의한다
___2.1.10완성된소스코드
2.2매출을계산하는프로그램
___2.2.1Sale클래스를정의한다
___2.2.2CSV파일을읽어들인다
___2.2.3점포별매출을구한다
___2.2.4집계된결과를출력한다
___2.2.5초판이완성됐다
___2.2.6메서드를이동시킨다
___2.2.7새생성자를추가한다
___2.2.8클래스를인터페이스로바꾼다
___2.2.9var라는암시형을활용한다
___2.2.10완성된소스코드

▣03장:람다식과LINQ기초
3.1람다식이전
___3.1.1메서드를인수로넘겨준다
___3.1.2델리게이트를사용한다
___3.1.3익명메서드를이용한다
3.2람다식
___3.2.1람다식이란?
___3.2.2람다식을사용한예
3.3List클래스와람다식의조합
___3.3.1Exists메서드
___3.3.2Find메서드
___3.3.3FindIndex메서드
___3.3.4FindAll메서드
___3.3.5RemoveAll메서드
___3.3.6ForEach메서드
___3.3.7ConvertAll메서드
3.4LINQtoObjects의기초
___3.4.1LINQtoObjects의간단한예
___3.4.2쿼리연산자
___3.4.3시퀀스
___3.4.4지연실행

[02부]기초편

▣04장:기본관용구
4.1초기화와관련된관용구
___4.1.1변수의초기화
___4.1.2배열과리스트초기화
___4.1.3Dictionary초기화
___4.1.4객체초기화
4.2판정과분기에관한관용구
___4.2.1단순한비교
___4.2.2수치가어떤범위에있는지를조사한다
___4.2.3else-if를통한다분기처리
___4.2.4체로걸러남은것만을처리한다
___4.2.5bool값을판단한다
___4.2.6bool값을반환한다
4.3반복에관한관용구
___4.3.1지정한횟수만큼반복한다
___4.3.2컬렉션에있는요소를모두꺼낸다
___4.3.3List에있는모든요소를처리한다
___4.3.4적어도한번은반복하는것
___4.3.5루프도중에처리를중단한다
4.4조건연산자,null합체연산자를사용한관용구
___4.4.1조건에따라대입할값을변경한다
___4.4.2null합체연산자
___4.4.3null조건연산자
4.5속성에관한관용구
___4.5.1속성초기화에관련된관용구
___4.5.2읽기전용속성
___4.5.3참조형인읽기전용속성
4.6메서드에관한관용구
___4.6.1가변인수
___4.6.2오버로드는하지않고옵션인수를사용한다
4.7그밖의관용구
___4.7.11을더할때는증감연산자++를사용한다
___4.7.2파일경로에는축자문자열리터럴을이용한다
___4.7.3두개의요소를바꾼다
___4.7.4문자열을숫자값으로변환한다
___4.7.5참조형을형변환한다
___4.7.6예외를다시던진다
___4.7.7using을사용해리소스를정리한다
___4.7.8여러개의생성자를정의한다

▣05장:문자열을처리한다
5.1문자열을비교한다
___5.1.1문자열끼리비교한다
___5.1.2대/소문자구분없이비교한다
___5.1.3히라가나/카타카나구분없이비교한다
___5.1.4전각/반각구별없이비교한다
5.2문자열을판정한다
___5.2.1null또는빈문자열을판정한다
___5.2.2지정한부분문자열로시작되는지조사한다
___5.2.3지정한부분문자열이포함돼있는지조사한다
___5.2.4지정한문자열이포함돼있는지조사한다
___5.2.5조건을만족하는문자가포함돼있는지조사한다
___5.2.6모든문자가조건을만족하는지조사한다
5.3문자열을검색하고추출한다
___5.3.1부분문자열을검색하고그위치를구한다
___5.3.2문자열의일부를추출한다
5.4문자열을변환한다
___5.4.1문자열의앞뒤에있는공백을제거한다
___5.4.2지정한위치부터임의개수의문자를삭제한다
___5.4.3문자열에다른문자열을삽입한다
___5.4.4문자열의일부를다른문자열로치환한다
___5.4.5소문자를대문자로변환한다/대문자를소문자로변환한다
5.5문자열을연결하고분할한다
___5.5.1두개의문자열을연결한다
___5.5.2문자열끝에다른문자열을추가한다
___5.5.3지정한구분문자로문자열배열을연결한다
___5.5.4지정한문자로문자열을분할한다
___5.5.5StringBuilder를사용해문자열을연결한다
5.6그밖의문자열처리
___5.6.1문자열에서문자를하나씩꺼낸다
___5.6.2문자배열로문자열을생성한다
___5.6.3숫자값을문자열로변환한다
___5.6.4지정한서식으로문자열을형성한다

▣06장:배열과List를처리한다
6.1이번장에서공통으로사용하는코드
6.2요소를설정한다
___6.2.1배열또는List를동일한값으로채운다
___6.2.2배열또는List에연속된값을설정한다
6.3컬렉션을집계한다
___6.3.1평균값을구한다
___6.3.2최솟값과최댓값을구한다
___6.3.3조건에일치하는요소를센다
6.4컬렉션을판정한다
___6.4.1조건에일치하는요소가존재하는지조사한다
___6.4.2모든요소가조건을만족하는지조사한다
___6.4.3두컬렉션이같은지조사한다
6.5단일요소를구한다
___6.5.1조건에일치하는첫/마지막요소를구한다.
___6.5.2조건에일치하는첫/마지막인덱스를구한다
6.6여러개의요소를구한다
___6.6.1조건을만족하는n개의요소를구한다
___6.6.2조건을만족하는동안에만요소를구한다
___6.6.3조건을을만족하는동안에는요소를건너뛴다
6.7그밖의처리(변환,정렬,연결등)
___6.7.1컬렉션으로부터다른컬렉션을생성한다
___6.7.2중복을제거한다
___6.7.3컬렉션을나열한다
___6.7.4두개의컬렉션을연결한다

▣07장:딕셔너리다루기
7.1Dictionary의기본적인조작
___7.1.1딕셔너리초기화
___7.1.2사용자정의형객체를값으로저장한다
___7.1.3딕셔너리에요소를추가한다
___7.1.4딕셔너리에서요소를꺼낸다
___7.1.5딕셔너리에서요소를삭제한다
___7.1.6딕셔너리에있는모든요소를꺼낸다
___7.1.7딕셔너리에있는모든키를꺼낸다
7.2딕셔너리응용
___7.2.1딕셔너리로변환한다
___7.2.2딕셔너리로부터다른딕셔너리를생성한다
___7.2.3사용자지정클래스를키로이용한다
___7.2.4키만을저장한다
___7.2.5키가중복되는것을허용한다
7.3딕셔너리를이용한예제프로그램
___7.3.1Abbreviations클래스
___7.3.2Abbreviations를이용한다

▣08장:날짜와시간처리
8.1DateTime구조체
___8.1.1DateTime객체를생성한다
___8.1.2DateTime에포함된속성
___8.1.3지정한날짜의요일을구한다
___8.1.4윤년을판정한다
___8.1.5날짜형식의문자열을DateTime객체로변환한다
8.2날짜의포맷
___8.2.1날짜를문자열로변환한다
___8.2.2날짜를일본식으로표시한다
___8.2.3지정한날짜의연호를구한다
___8.2.4지정한날짜에해당하는요일의문자열을구한다
8.3DateTime을비교한다
___8.3.1날짜와시간을비교한다
___8.3.2날짜만비교한다
8.4날짜를계산한다(기초)
___8.4.1지정한시분초이후의시각을구한다
___8.4.2n일후와n일전의날짜를구한다
___8.4.3n년후와n개월후를구한다
___8.4.4두시각의차를구한다
___8.4.5두날짜의차이를구한다
___8.4.6해당월의말일을구한다
___8.4.71월1일부터의날짜수를구한다
8.5날짜를계산한다(응용)
___8.5.1다음특정요일을구한다
___8.5.2나이를구한다
___8.5.3지정한날이몇주째에있는지를구한다
___8.5.4지정한달의n번째의X요일의날짜를구한다

[03부]실전편

▣09장:파일처리
9.1텍스트파일로입력한다
___9.1.1텍스트파일을한행씩읽어들인다
___9.1.2텍스트파일을한꺼번에읽어들인다
___9.1.3텍스트파일을IEnumerable으로취급한다
9.2텍스트파일에출력한다
___9.2.1텍스트파일에한행씩문자열을출력한다
___9.2.2기존텍스트파일끝에행을추가한다
___9.2.3문자열배열을한번에파일에출력한다
___9.2.4기존텍스트파일의첫머리에행을삽입한다
9.3파일처리
___9.3.1파일이존재하는지여부를조사한다
___9.3.2파일을삭제한