이미 소장하고 있다면 판매해 보세요.
|
1부 C# 준비
01 C# 프로그래밍 언어 이해하기 __1.1 프로그래밍 언어 알아보기 __1.2 C# 소개하기 __1.3 닷넷 생태계 __1.4 책에서 다루는 범위 02 C# 개발 환경 구축하기: 비주얼 스튜디오 설치 __2.1 비주얼 스튜디오 2019 커뮤니티 __2.2 비주얼 스튜디오 2019 커뮤니티 설치하기 03 첫 C# 프로그램 작성하기 __3.1 Hello World 프로그램 __3.2 C#의 기본 코드 구조 04 C# 기본 문법 이해하기 __4.1 출력문 __4.2 주석문(코드 설명문) __4.3 들여쓰기 __4.4 공백 처리 __4.5 이스케이프 시퀀스 __4.6 자리 표시자 2부 C# 기초 05 변수 만들기 __5.1 변수 __5.2 리터럴 사용하기 __5.3 변수를 만들어 값 저장 후 사용하기 __5.4 변수 선언과 동시에 초기화하기 __5.5 형식이 같은 변수 여러 개를 한 번에 선언하기 __5.6 상수 사용하기 06 숫자 데이터 형식 사용하기 __6.1 숫자 데이터 형식 __6.2 정수 데이터 형식 __6.3 부호 있는 정수 데이터 형식 __6.4 부호 없는 정수 데이터 형식 __6.5 실수 데이터 형식 __6.6 숫자 형식의 리터럴 값에 접미사 붙이기 07 숫자 이외의 데이터 형식 사용하기 __7.1 문자 데이터 형식: char __7.2 문자열 데이터 형식: string __7.3 논리 데이터 형식: bool __7.4 변하지 않는 값: 상수 __7.5 닷넷 데이터 형식 __7.6 래퍼 형식 08 사용자한테 얻은 정보를 변수에 저장하기 __8.1 문자열 입력 관련 메서드 __8.2 형식 변환 __8.3 이진수 다루기 __8.4 var 키워드로 암시적으로 형식화된 로컬 변수 만들기 __8.5 변수의 기본값을 default 키워드로 설정하기 09 연산자 개요 및 단항·산술 연산자 사용하기 __9.1 연산자 __9.2 단항 연산자 __9.3 변환 연산자: ( ) 기호로 데이터 형식 변환하기 __9.4 산술 연산자 __9.5 문자열 연결 연산자 10 할당 연산자와 증감 연산자 사용하기 __10.1 할당 연산자 __10.2 증감 연산자 11 관계형 연산자와 논리 연산자 사용하기 __11.1 관계형 연산자 __11.2 논리 연산자 12 비트 연산자와 시프트 연산자로 비트 단위 연산하기 __12.1 비트 연산자 __12.2 시프트 연산자 __12.3 기타 연산자 __12.4 연산자 우선순위 13 제어문 소개 및 if/else 문 __13.1 제어문 __13.2 순차문: 순서대로 실행하기 __13.3 조건문: if 문과 가지치기 __13.4 else 문 __13.5 else if 문(다중 if 문, 조건식 여러 개 처리) __13.6 조건문(if 문)을 사용한 조건 처리 전체 정리 14 조건문: switch 문으로 다양한 조건 처리하기 __14.1 switch 문 소개 __14.2 switch 문 사용하기 15 반복문(for 문)을 사용하여 구간 반복하기 __15.1 for 문으로 반복하기 __15.2 무한 루프 __15.3 for 문으로 1부터 4까지 팩토리얼 값을 출력하는 프로그램 __15.4 구구단을 가로로 출력하기 16 while 문과 do 문, foreach 문으로 반복 처리하기 __16.1 while 문 __16.2 피보나치 수열을 while 문으로 표현하기 __16.3 do while 반복문으로 최소 한 번은 실행하기 __16.4 foreach 문으로 배열 반복하기 17 break, continue, goto로 반복문 제어하기 __17.1 break 문 __17.2 continue 문으로 코드 건너뛰기 __17.3 goto로 프로그램 흐름을 원하는 대로 바꾸기 18 배열 사용하기 __18.1 컬렉션 __18.2 배열 __18.3 배열 선언하기 __18.4 1차원 배열 __18.5 다차원 배열 __18.6 가변 배열 __18.7 var 키워드로 배열 선언하기 19 함수 사용하기 __19.1 함수 __19.2 함수 정의하고 사용하기 __19.3 매개변수와 반환값 __19.4 매개변수가 있는 함수 __19.5 반환값이 있는 함수 __19.6 함수를 사용하여 큰 값과 작은 값, 절댓값 구하기 __19.7 XML 문서 주석을 사용하여 함수 설명 작성하기 __19.8 기본 매개변수 __19.9 명명된 매개변수 __19.10 함수 오버로드: 다중 정의 __19.11 재귀 함수 __19.12 함수 범위: 전역 변수와 지역 변수 __19.13 화살표 함수: =〉 __19.14 식 본문 메서드 __19.15 로컬 함수 __19.16 Main 메서드의 명령줄 인수 20 C# 인터렉티브로 출력문부터 함수까지 내용 복습하기 __20.1 C# 인터렉티브 3부 C# 활용 21 닷넷 API __21.1 닷넷 API 탐색기와 Docs __21.2 클래스, 구조체, 열거형, 네임스페이스 __21.3 Math 클래스 사용하기 __21.4 클래스 또는 메서드 이름을 문자열로 가져오기: nameof 연산자 22 구조체 사용하기 __22.1 구조체란? __22.2 구조체 만들기 __22.3 구조체 선언 및 사용하기 __22.4 구조체 배열 __22.5 구조체 매개변수: 함수의 매개변수에 구조체 사용하기 __22.6 내장형 구조체 23 열거형 형식 사용하기 __23.1 열거형 형식 사용하기 __23.2 열거형 만들기 __23.3 열거형 항목에 상수 값 주기 __23.4 열거형 관련 클래스 사용하기 24 클래스 사용하기 __24.1 클래스 소개하기 __24.2 클래스 만들기 __24.3 클래스 여러 개 만들기 __24.4 클래스 시그니처 __24.5 자주 사용하는 내장 클래스 __24.6 Environment 클래스로 프로그램 강제 종료하기 __24.7 환경 변수 사용하기 __24.8 EXE 파일 실행하기 __24.9 Random 클래스 __24.10 프로그램 실행 시간 구하기 __24.11 정규식 __24.12 닷넷에 있는 엄청난 양의 API __24.13 값 형식과 참조 형식 __24.14 박싱과 언박싱 __24.15 is 연산자로 형식 비교하기 __24.16 as 연산자로 형식 변환하기 __24.17 패턴 매칭: if 문과 is 연산자 사용하기 25 문자열 다루기 __25.1 문자열 다루기 __25.2 문자열 처리 관련 주요 API 살펴보기 __25.3 StringBuilder 클래스를 사용하여 문자열 연결하기 __25.4 String과 StringBuilder 클래스의 성능 차이 비교하기 26 예외 처리하기 __26.1 예외와 예외 처리 __26.2 try~catch~finally 구문 __26.3 Exception 클래스로 예외 처리하기 __26.4 예외 처리 연습하기 __26.5 throw 구문으로 직접 예외 발생시키기 27 컬렉션 사용하기 __27.1 배열과 컬렉션 __27.2 리스트 출력 구문 __27.3 Array 클래스 __27.4 컬렉션 클래스 __27.5 Stack 클래스 __27.6 Queue 클래스 __27.7 ArrayList 클래스 __27.8 Hashtable 클래스 28 제네릭 사용하기 __28.1 Cup of T __28.2 Stack 제네릭 클래스 사용하기 __28.3 List〈T〉 제네릭 클래스 사용하기 __28.4 Enumerable 클래스로 컬렉션 만들기 __28.5 Dictionary〈T, T〉 제네릭 클래스 사용하기 29 널(null) 다루기 __29.1 null 값 __29.2 null 가능 형식: Nullable〈T〉 형식 __29.3 null 값을 다루는 연산자 소개하기 30 LINQ __30.1 LINQ 개요 __30.2 확장 메서드 사용하기 __30.3 화살표 연산자와 람다 식으로 조건 처리 __30.4 데이터 정렬과 검색 __30.5 메서드 구문과 쿼리 구문 __30.6 Select( ) 확장 메서드를 사용하여 새로운 형태로 가공하기 __30.7 ForEach( ) 메서드로 반복 출력하기 31 알고리즘과 절차 지향 프로그래밍 __31.1 알고리즘 __31.2 합계 구하기: SUM 알고리즘 __31.3 개수 구하기: COUNT 알고리즘 __31.4 평균 구하기: AVERAGE 알고리즘 __31.5 최댓값 구하기: MAX 알고리즘 __31.6 최솟값 구하기: MIN 알고리즘 __31.7 근삿값 구하기: NEAR 알고리즘 __31.8 순위 구하기: RANK 알고리즘 __31.9 순서대로 나열하기: SORT 알고리즘 __31.10 특정 값 검색하기: SEARCH 알고리즘 __31.11 배열을 하나로 합치기: MERGE 알고리즘 __31.12 최빈값 구하기: MODE 알고리즘 __31.13 그룹화하기: GROUP 알고리즘 32 개체 만들기 __32.1 클래스와 개체 __32.2 개체와 인스턴스 __32.3 인스턴스 메서드 __32.4 익명 형식 __32.5 정적 멤버와 인스턴스 멤버 __32.6 프로젝트에 클래스를 여러 개 사용하기 __32.7 ToString( ) 메서드 오버라이드 __32.8 클래스 배열 __32.9 var 키워드를 사용하여 클래스의 인스턴스 생성하기 33 네임스페이스 __33.1 네임스페이스 __33.2 네임스페이스 만들기 __33.3 using 지시문 34 필드 만들기 __34.1 필드 __34.2 액세스 한정자 __34.3 여러 가지 형태의 필드 선언, 초기화, 참조 구현하기 35 생성자 __35.1 생성자 __35.2 매개변수가 있는 생성자 만들기 __35.3 클래스에 생성자 여러 개 만들기 __35.4 정적 생성자와 인스턴스 생성자 __35.5 this( ) 생성자로 다른 생성자 호출하기 __35.6 생성자를 사용하여 읽기 전용 필드 초기화 __35.7 식 본문 생성자 36 소멸자 __36.1 종료자 __36.2 가비지 수집기 __36.3 생성자, 메서드, 소멸자 실행 시점 살펴보기 __36.4 소멸자를 사용한 클래스 역할 마무리하기 __36.5 생성자, 메서드, 소멸자 함께 사용하기 37 메서드와 매개변수 __37.1 메서드 __37.2 메서드의 매개변수 전달 방식 __37.3 가변 길이 매개변수 __37.4 메서드 본문을 줄여 표현하기 __37.5 선택적 매개변수 38 속성 사용하기 __38.1 속성 __38.2 접근자와 전체 속성 __38.3 자동으로 구현된 속성 __38.4 자동 속성 이니셜라이저 __38.5 읽기 전용 속성과 쓰기 전용 속성 __38.6 속성의 여러 가지 유형 살펴보기 __38.7 속성을 사용한 클래스의 멤버 설정 및 참조하기 __38.8 화살표 연산자로 속성과 메서드를 줄여서 표현하기 __38.9 개체 이니셜라이저 __38.10 자동 속성을 사용하여 레코드 클래스 구현하기 __38.11 nameof 연산자 __38.12 익명 형식 __38.13 익명 형식과 덕 타이핑 __38.14 생성자로 속성에 대한 유효성 검사 구현하기 __38.15 메서드로 속성 값 초기화하기 __38.16 속성에서 ?.와 ?? 연산자를 함께 사용하기 39 인덱서와 반복기 __39.1 인덱서 __39.2 인덱서를 사용하여 배열 형식의 개체 만들기 __39.3 문자열 매개변수를 받는 인덱서 사용하기 __39.4 반복기와 yield 키워드 40 대리자 __40.1 대리자(위임/델리게이트) __40.2 대리자를 사용하여 메서드 대신 호출하기 __40.3 대리자를 사용하여 메서드 여러 개를 다중 호출하기 __40.4 무명 메서드 __40.5 메서드의 매개변수에 대리자 형식 사용하기 __40.6 Action, Func, Predicate 대리자 __40.7 메서드의 매개변수로 메서드 전달하기 41 이벤트 __41.1 이벤트 __41.2 이벤트와 대리자를 사용하여 메서드 등록 및 호출하기 42 클래스 기타 __42.1 부분 클래스 __42.2 정적 클래스 __42.3 필드에 public을 붙여 외부 클래스에 공개하기 __42.4 함수형 프로그래밍 스타일: 메서드 체이닝 __42.5 불변 형식 43 상속으로 클래스 확장하기 __43.1 클래스 상속하기 __43.2 부모 클래스와 자식 클래스 __43.3 Base 클래스와 Sub 클래스 __43.4 Object 클래스 상속 __43.5 부모 클래스 형식 변수에 자식 클래스의 개체 할당하기 __43.6 상속은 영어로 is a(is an) 관계를 표현 __43.7 this와 this( ) 그리고 base와 base( ) __43.8 봉인 클래스 __43.9 추상 클래스 __43.10 자식 클래스에만 멤버 상속하기 __43.11 기본 클래스의 멤버 숨기기 44 메서드 오버라이드 __44.1 메서드 오버라이드: 재정의 __44.2 상속 관계에서 메서드 오버라이드 __44.3 메서드 오버로드와 오버라이드 __44.4 메서드 오버라이드 봉인 __44.5 ToString( ) 메서드 오버라이드 __44.6 메서드 오버라이드로 메서드 재사용하기 45 인터페이스 __45.1 인터페이스 __45.2 인터페이스 형식 개체에 인스턴스 담기 __45.3 생성자의 매개변수에 인터페이스 사용하기 __45.4 인터페이스를 사용한 다중 상속 구현하기 __45.5 명시적인 인터페이스 구현하기 __45.6 인터페이스와 추상 클래스 비교하기 __45.7 IEnumerator 인터페이스 사용하기 __45.8 IDisposable 인터페이스 사용하기 __45.9 인터페이스를 사용하여 멤버 이름 강제로 적용하기 46 특성과 리플렉션 __46.1 특성 __46.2 Obsolete 특성 사용하기 __46.3 특성의 매개변수 __46.4 [Conditional] 특성 사용하기 __46.5 특성을 사용하여 메서드 호출 정보 얻기 __46.6 사용자 지정 특성 만들기 __46.7 리플렉션 __46.8 Type과 Assembly 클래스 __46.9 특정 클래스의 메서드와 속성을 동적으로 호출하기 __46.10 Type 클래스로 클래스의 멤버 호출하기 __46.11 특정 속성에 적용된 특성 읽어 오기 __46.12 Type과 Activator 클래스로 개체의 인스턴스를 동적 생성하기 47 개체와 개체 지향 프로그래밍 __47.1 개체 지향 프로그래밍 소개하기 __47.2 현실 세계의 자동차 설계도 및 자동차 개체 흉내 내기 __47.3 개체 지향 프로그래밍의 네 가지 큰 개념 __47.4 캡슐화를 사용하여 좀 더 세련된 프로그램 만들기 __47.5 다형성 기법을 사용하여 프로그램 융통성 높이기 __47.6 클래스의 멤버 종합 연습: 자동차 클래스 구현하기 4부 C# 확장 기능 48 제네릭 클래스 만들기 __48.1 사용자 정의 클래스를 매개변수로 사용하는 제네릭 클래스 __48.2 사전 제네릭 클래스 소개 __48.3 제네릭 인터페이스 __48.4 제네릭 클래스 만들기 49 확장 메서드 만들기 __49.1 확장 메서드 __49.2 확장 메서드로 문자열 기능 확장하기 __49.3 확장 메서드로 기존 형식에 새로운 메서드 추가하기 __49.4 확장 메서드를 사용하여 형식에 메서드 추가하기 50 동적 형식 __50.1 dynamic 키워드 __50.2 dynamic 변수로 런타임할 때 데이터 형식 결정하기 __50.3 동적 바인딩 __50.4 확장 메서드와 dynamic 51 튜플 __51.1 튜플 52 클래스 라이브러리와 닷넷 스탠다드 __52.1 클래스 라이브러리 프로젝트 __52.2 어셈블리 __52.3 닷넷 스탠다드 프로젝트로 자신만의 라이브러리 만들기 53 테스트 프로젝트와 단위 테스트 __53.1 자동 테스트 __53.2 테스트 프로젝트 생성 및 Assert 클래스 사용하기 __53.3 Dul 프로젝트를 테스트하는 테스트 코드 작성 및 실행하기 54 NuGet 패키지 __54.1 패키지 관리자와 NuGet __54.2 자신만의 NuGet 패키지 만들기 __54.3 내가 만든 NuGet 패키지 사용하기 55 스레드 __55.1 스레드 __55.2 스레드 생성 및 호출하기 __55.3 다중 스레드를 사용한 메서드 함께 호출하기 __55.4 스레드 동기화 __55.5 병렬 프로그래밍 56 비동기 프로그래밍 __56.1 동기 프로그래밍 __56.2 비동기 프로그래밍 __56.3 비동기 Main( ) 메서드 __56.4 간단한 async와 await 키워드 사용 예제 __56.5 Task.Run( ) 메서드로 비동기 메서드 호출하기 __56.6 Task.FromResult( )를 사용하여 비동기로 반환값 전달하기 __56.7 async와 await를 사용한 C# 비동기 프로그래밍하기 57 인메모리 데이터베이스 프로그래밍 맛보기 __57.1 인메모리 데이터베이스 __57.2 CRUD 작업하기 __57.3 리포지토리 패턴 __57.4 인메모리 데이터베이스를 만들고 CRUD 작업 수행하기 58 스트림과 파일 입출력 맛보기 __58.1 System.IO 네임스페이스 __58.2 문자열에서 파일 이름 추출하기 __58.3 Path 클래스로 파일 이름 및 확장자, 폴더 정보 얻기 __58.4 파일과 디렉터리 관련 클래스 __58.5 텍스트 데이터를 컬렉션 데이터로 가져오기 59 XML과 JSON 맛보기 __59.1 XElement 클래스를 사용하여 XML 요소를 생성하거나 가공하기 __59.2 JSON 데이터 직렬화 및 역직렬화하기 60 네트워크 프로그래밍 맛보기 __60.1 HttpClient 클래스로 웹 데이터 가져오기 61 함수와 함수형 프로그래밍 소개하기 __61.1 함수형 프로그래밍 __61.2 문과 식 __61.3 고차 함수 __61.4 LINQ로 함수형 프로그래밍 스타일 구현하기 62 모던 C# __62.1 C#의 새로운 기능 __62.2 패턴 매칭하기 __62.3 C# 8.0 버전의 기능을 테스트 프로젝트에서 실행하기 __62.4 C# 8.0 버전의 새로운 기능 열 가지 소개하기 부록 A 디버거 사용하기 부록 B 팁과 트릭 |
박용준의 다른 상품
|
C# 프로그래밍 세계에 오신 것을 환영합니다. 이 책은 C# 프로그래밍 언어를 처음 배우는 분들을 위한 책입니다. 독자분들이 생애 첫 프로그래밍 언어로 C#을 배운다고 가정하고 집필했습니다. 물론 C 언어, 자바, 파이썬 등 다른 프로그래밍 언어 경험이 있어도 좋습니다.
이 책은 응용 프로그래머를 위한 C# 입문서로, C#을 사용하여 게임, 웹, 모바일, 데스크톱(Windows Forms, WPF, ASP.NET Web Forms, ASP.NET Core, Unity, Azure Functions) 등을 개발할 때 필요한 C# 기초 문법을 익히고 기본기를 탄탄하게 다지는 것이 목적입니다. 따라서 책 전체를 물 흐르듯 볼 수 있도록 입문자에게 꼭 필요한 내용을 최대한 간결하고 이해하기 쉽게 정리하고, 600개가 넘는 코드 조각과 실습 예제로 직접 실습하며 실력을 향상시킬 수 있게 하고자 노력했습니다. 프로그래밍 학습 효율을 높이려면 학습 순서가 가장 중요합니다. 백과사전 역할을 하는 마이크로소프트 공식 문서(Microsoft Docs)(https://docs.microsoft.com)는 매우 방대한 양의 설명서입니다. 입문자가 보기에는 내용이 너무 많고 또 모두 알 필요도 없습니다. 오랫동안 C#을 가르치고 개발해온 경험을 바탕으로 입문하기에 최적인 학습 순서로 목차를 구성했습니다. 책은 다음과 같이 크게 네 부로 나눕니다. 1부는 C# 프로그래밍 학습을 위한 소개 및 프로그래밍 설치 등 본격적인 학습을 위해 준비합니다. 2부는 C#의 기초 문법을 학습하고 사용하는 데 초점을 맞춥니다. 3부는 개체 지향 프로그래밍 기법 및 C# 활용 내용을 배웁니다. 4부는 모던 C#처럼 적어도 한 번 정도는 다루어야 하는 C# 확장 기능들을 맛보기로 살펴봅니다. 이 책을 집필하는 데 벌써 4년이란 시간이 흘렀습니다. 준비 기간까지 하면 더 깁니다. 모쪼록 이 책이 최신 응용 프로그램 제작 기술인 C#의 전반적인 내용을 이해하는 데 많은 도움이 되었으면 합니다. 필자 블로그인 닷넷 코리아(https://www.dotnetkorea.com)에서 책에서 다루지 못했거나 변경된 부분에 대한 가이드, 일부 책 내용의 동영상 강의와 온라인 실시간 강의(블로그 공지)를 추가로 제공할 예정입니다. - 「지은이의 말」 중에서 |
|
기초에서 활용, 확장 기능까지
빠짐없이 학습하고 막힘없이 이해한다! 입문자에게 딱 맞는 구성으로 배우자 C#은 방대하다. 처음부터 모든 것을 배워야 한다면 시작하기도 전에 지칠 것이다. 입문자에게 필요한 내용을 빠짐없이 배우되 중요한 내용은 좀 더 깊이 있게 학습하고, 지금 당장 많이 사용하지 않는 내용은 간단히 개념만 알고 넘어가는 것이 학습 부담을 최소화할 수 있는 방법이다. Microsoft MVP이자 C#을 20년 이상 사용하고 강의해온 저자의 경험을 바탕으로 입문자에게 필요한 내용을 선별해 담았다. 놓치는 내용 없이 살펴보고, 자주 사용하는 중요한 개념은 집중해서 학습하자. 다음으로 나아갈 수 있는 힘을 기르자 C#은 윈도, 웹, 클라우드, 모바일, 게임(유니티), IoT 등 많은 분야에서 활용된다. 이때 필요한 건 얼마나 많이 아는지보다 얼마나 제대로 아는지 여부일 것이다. 도해 100개로 동작 원리를 이해하고, 600개가 넘는 코드 조각과 예제로 반복하여 실습하면서 기본기를 탄탄하게 다질 수 있다. 최신 버전으로 배우자 C#은 마이크로소프트에서 개발한 개체 지향 프로그래밍 언어로, 1.0 버전부터 8.0 버전까지 오랜 기간 발전해왔다. 5.0 버전까지는 버전마다 변화가 많았지만, 6.0 버전부터는 작지만 개발자에게 도움이 되는 기능을 추가하는 방식으로 업데이트되고 있다. C#이 처음이라면 최신 버전으로 시작하자. |