책 이미지
eBook 미리보기
책 정보
· 제목 : 크로스 플랫폼 개발을 위한 C# 10과 .NET 6 6/e 
· 분류 : 전자책 > 컴퓨터/모바일 > 컴퓨터 공학 > 자료구조/알고리즘
· ISBN : 9791161759180
· 출판일 : 2024-11-25
· 분류 : 전자책 > 컴퓨터/모바일 > 컴퓨터 공학 > 자료구조/알고리즘
· ISBN : 9791161759180
· 출판일 : 2024-11-25
책 소개
C# 10의 새로운 기능과 .NET 6의 전반적인 내용을 다룬다. 설명은 최소한으로 줄인 대신, 예제 코드를 직접 타이핑하면서 익힐 수 있도록 흥미롭게 구성됐다. C#의 기본 문법부터 고급 기능, .NET을 활용한 콘솔, 데...
C# 10의 새로운 기능과 .NET 6의 전반적인 내용을 다룬다. 설명은 최소한으로 줄인 대신, 예제 코드를 직접 타이핑하면서 익힐 수 있도록 흥미롭게 구성됐다. C#의 기본 문법부터 고급 기능, .NET을 활용한 콘솔, 데이터베이스, 웹 프로그래밍까지의 과정을 비주얼 스튜디오 2022, 비주얼 스튜디오 코드를 사용해 배운다. .NET과 C#을 처음 접하는 개발자를 비롯해, 새로운 기능을 살펴보고 싶은 기존 개발자들이 짧은 시간에 전체 구성을 이해하고 활용할 수 있게 돕는다.
목차
날짜와 시간 다루기
날짜 및 시간 값 지정하기
날짜와 시간을 사용한 세계화
날짜 또는 시간 중 하나만 사용하기
정규 표현식을 사용한 패턴 매칭
텍스트로 입력된 숫자 검사
정규 표현식 성능 향상
정규 표현식 구문 이해하기
정규 표현식의 예
쉼표로 구분된 문자열 나누기
컬렉션에 여러 개의 객체 저장하기
모든 컬렉션이 갖는 공통 기능
컬렉션의 용량을 확보해 성능 향상하기
컬렉션 선택
리스트
딕셔너리
스택
큐
세트
컬렉션 메서드 요약
리스트 다루기
딕셔너리 다루기
큐 사용하기
컬렉션 정렬하기
그 외 특수 컬렉션
비트 값의 간소한 배열 다루기
효과적으로 리스트 다루기
불변 컬렉션 사용하기
컬렉션 모범 사례
범위, 인덱스, 영역 다루기
Span을 활용해 효과적으로 메모리 사용하기
Index 형식으로 위치 식별하기
Range 형식으로 범위 식별하기
index, range, span 사용하기
네트워크 리소스 다루기
URI, DNS, IP 주소 다루기
서버에 ping 보내기
리플렉션과 특성 다루기
어셈블리 버저닝
어셈블리 메타데이터 읽기
사용자 정의 특성 만들기
리플렉션에 대해 좀 더 알아보기
이미지 다루기
코드 국제화
현재 문화권을 가져오고 변경하기
연습 및 탐구
연습 8.1 - 복습
연습 8.2 - 정규 표현식 연습
연습 8.3 - 확장 메서드 연습
연습 8.4 탐구
마무리
코드 저장소
Discord 채널 참여
9장. 파일, 스트림, 직렬화 사용하기
파일 시스템 다루기
크로스 플랫폼 환경과 파일 시스템 다루기
드라이브 다루기
디렉터리 다루기
파일 다루기
경로 다루기
파일의 정보 얻기
파일 작업 방식 제어하기
스트림으로 읽고 쓰기
스트림의 추상화, 구체화 이해하기
스토리지 스트림
function 스트림
스트림 도우미
텍스트 스트림에 쓰기
XML 스트림에 쓰기
파일 리소스 정리하기
using 문을 사용해서 dispose 단순화하기
스트림 압축하기
브로틀리 알고리듬으로 압축하기
텍스트 인코딩과 디코딩
바이트 배열로 문자열 인코딩
파일의 텍스트 인코딩, 디코딩
객체 그래프 직렬화하기
XML 직렬화
컴팩트 XML 생성
XML 역직렬화
JSON 직렬화
고성능 JSON 처리
JSON 다루기
HTTP 응답을 위한 새로운 JSON 확장 메서드
Newtonsoft에서 새 JSON으로 마이그레이션
연습 및 탐구
연습 9.1 - 복습
연습 9.2 - XML 직렬화 연습
연습 9.3 - 탐구
마무리
10장. 엔티티 프레임워크 코어로 데이터 다루기
최신 데이터베이스 이해하기
레거시 엔티티 프레임워크
레거시 엔티티 프레임워크 6.3 이상 사용하기
엔티티 프레임워크 코어 이해하기
EF 코어 작업을 위한 콘솔 앱 만들기
샘플 관계형 데이터베이스 사용하기
윈도우용 마이크로소프트 SQL 서버 사용하기
SQL 서버 다운로드하고 설치하기
SQL Server용 Northwind 샘플 데이터베이스 생성
서버 탐색기에서 Northwind 샘플 데이터베이스 다루기
SQLite 사용하기
맥OS에서 SQLite 설정
윈도우에서 SQLite 설정
다른 OS에서 SQLite 설정
SQLite용 Northwind 샘플 데이터베이스 생성하기
SQLiteStudio로 Northwind 샘플 데이터베이스 다루기
EF 코어 설정하기
EF 코어 데이터 공급자 선택하기
데이터베이스 연결하기
Northwind 데이터베이스 콘텍스트 클래스 정의하기
EF 코어 모델 정의하기
모델을 정의하는 EF 코어 규칙 사용하기
EF 코어 주석 특성을 사용해 모델 정의하기
EF 코어 Fluent API를 사용해 모델 정의하기
Fluent API로 데이터 시딩
Northwind 테이블용 EF 코어 모델 빌드
Category와 Product 엔티티 클래스 정의
Northwind 데이터베이스 콘텍스트 클래스에 테이블 추가하기
dotnet-ef 도구 설정하기
기존 데이터베이스를 사용한 스캐폴딩
사전 규칙 모델 구성하기
EF 코어 모델 쿼리하기
포함되는 엔티티 필터링하기
윈도우 콘솔에서 유니코드 문자
필터링과 정렬
생성된 SQL 확인하기
사용자 정의 로깅 공급자를 사용해 EF 코어 로깅하기
공급자 지정 값으로 로그 필터링
쿼리 태그 로깅
Like로 패턴 매칭
전역 필터 정의하기
EF 코어 로딩 패턴
즉시 로딩
지연 로딩 활성화
명시적 로딩
EF 코어로 데이터 조작하기
엔티티 삽입
엔티티 업데이트
엔티티 삭제
데이터베이스 콘텍스트 풀링
트랜잭션 다루기
격리 수준에 따른 트랜잭션 제어
명시적 트랜잭션 선언하기
코드 주도 EF 코어 모델
마이그레이션
연습 및 탐구
연습 10.1 - 복습
연습 10.2 - 다른 직렬화 포맷을 사용해 데이터 내보내기 연습
연습 10.3 - 주제 탐구
연습 10.4 - NoSQL 데이터베이스 탐구
마무리
코드 저장소
Discord 채널 참여
11장. LINQ를 사용해 데이터 쿼리하고 조작하기
LINQ 표현식 작성하기
LINQ의 구성 요소
Enumerable 클래스로 LINQ 표현식 만들기
지연 실행
Where로 엔티티 필터링하기
이름 있는 메서드 타기팅
명시적 델리게이트 인스턴스화를 제거해서 코드 단순화하기
람다 표현식 타기팅
엔티티 정렬하기
OrderBy를 사용해 단일 프로퍼티 정렬하기
ThenBy 메서드로 여러 개의 속성 정렬하기
var 또는 특정 형식을 사용해 쿼리 선언하기
형식 필터링
LINQ를 사용해 set, multiset 다루기
EF 코어와 LINQ 사용하기
EF 코어 모델 만들기
시퀀스 필터링과 정렬
새로운 형식에 시퀀스 투영하기
시퀀스 Join과 group
시퀀스 조인
시퀀스 GroupJoin
시퀀스 집계
간편 표기법으로 LINQ 구문 단순화하기
병렬 LINQ로 멀티 스레드 사용하기
멀티 스레드 장점을 이용하는 앱 만들기
윈도우
맥OS
모든 운영체제
사용자 정의 LINQ 확장 메서드 만들기
연결 가능한 확장 메서드 호출하기
MODE와 MEDIAN 메서드 만들기
LINQ to XML 사용하기
LINQ to XML을 사용해서 XML 생성하기
LINQ to XML을 사용해 XML 읽기
연습 및 탐구
연습 11.1 - 복습
연습 11.2 - LINQ 쿼리 연습
연습 11.3 - 탐구
마무리
12장. 멀티태스킹으로 성능과 확장성 향상하기
프로세스, 스레드, 태스크 이해하기
성능과 리소스 사용량 모니터링
형식 효율성 평가
Diagnostics를 사용한 성능 및 메모리 모니터링
Stopwatch와 Process 형식의 유용한 멤버
Recorder 클래스 구현하기
문자열 처리 효율성 측정
Benchmark.NET으로 성능 및 메모리 모니터링
비동기로 태스크 실행하기
동기로 여러 개의 작업 수행하기
태스크를 사용해 비동기로 여러 작업 수행하기
태스크 시작하기
태스크 대기하기
태스크에 대기 메서드 사용하기
다른 태스크 계속 실행하기
중첩된 태스크와 자식 태스크
객체를 태스크로 감싸기
공유 리소스에 동기적으로 접근하기
멀티 스레드에서 리소스 접근하기
리소스에 상호 배제 잠금 적용하기
잠금 코드 이해하기
데드락 회피하기
이벤트 동기화
원자적 CPU 연산 만들기
다른 동기화 형식 적용하기
async와 await 이해하기
콘솔 앱의 응답성 향상시키기
GUI 앱의 응답성 개선하기
웹 애플리케이션과 웹 서비스의 확장성 향상하기
멀티태스킹을 지원하는 공통 형식
catch 블록에서 await 사용하기
async 스트림 다루기
연습 및 탐구
연습 12.1 - 복습
연습 12.2 - 탐구
마무리
13장. C#과 .NET으로 만드는 실용적인 애플리케이션
C# 및 .NET용 앱 모델 이해
ASP.NET Core를 사용해 웹사이트 만들기
콘텐츠 관리 시스템을 사용해 웹사이트 만들기
SPA 프레임워크로 웹 애플리케이션 만들기
모바일 및 데스크톱 앱 빌드
.NET MAUI의 대안
Uno 플랫폼
아발로니아
ASP.NET Core의 새로운 기능
ASP.NET Core 1.0
ASP.NET Core 1.1
ASP.NET Core 2.0
ASP.NET Core 2.1
ASP.NET Core 2.2
ASP.NET Core 3.0
ASP.NET Core 3.1
블레이저 웹어셈블리 3.2
ASP.NET Core 5.0
ASP.NET Core 6.0
윈도우 전용 데스크톱 앱 만들기
레거시 윈도우 애플리케이션 플랫폼 이해하기
레거시 윈도우 플랫폼에 대한 최신 .NET 지원 이해하기
프로젝트 구조화
솔루션이나 작업 영역에서 프로젝트 구조화
다른 프로젝트 템플릿 사용하기
추가 템플릿 팩 설치하기
Northwind용 엔티티 데이터 모델 만들기
SQLite를 사용해 엔티티 모델용 클래스 라이브러리 만들기
클래스-테이블 매핑 개선
Northwind 데이터베이스 콘텍스트에 대한 클래스 라이브러리 만들기
SQL 서버를 사용해 엔티티 모델용 클래스 라이브러리 만들기
연습 및 탐구
연습 13.1 - 복습
연습 13.2 - 탐구
마무리
코드 저장소
Discord 채널 참여
14장. ASP.NET Core Razor 페이지를 사용해 웹사이트 만들기
웹 개발 이해하기
HTTP 이해하기
URL의 구성 요소 이해
이 책의 프로젝트에서 사용하는 포트 번호
크롬을 사용해 HTTP 요청 보내기
클라이언트 웹 개발 기술 이해하기
ASP.NET Core 이해하기
클래식 ASP.NET과 모던 ASP.NET Core
비어 있는 ASP.NET Core 프로젝트 만들기
웹사이트 테스트 및 보안
더 엄격한 보안 활성화 및 보안 연결로 리다이렉트
호스팅 환경 제어
서비스 및 파이프라인 구성 분리
웹사이트에서 정적 콘텐츠를 제공하도록 설정
정적 파일 및 웹 페이지를 위한 폴더 생성
정적 및 기본 파일 활성화
ASP.NET Core Razor 페이지 살펴보기
Razor 페이지 활성화
Razor 페이지에 코드 추가하기
Razor 페이지에서 공유 레이아웃 사용하기
Razor 페이지에서 코드 숨김 파일 사용하기
ASP.NET Core와 엔티티 프레임워크 코어 사용하기
엔티티 프레임워크 코어를 서비스로 구성하기
Razor Page를 사용한 데이터 조작
모델에 엔티티 추가가 가능하도록 설정
새 공급자를 추가하기 위한 양식 정의
Razor Page에 종속성 서비스 주입
Razor 클래스 라이브러리 사용하기
Razor 클래스 라이브러리 만들기
비주얼 스튜디오 코드의 압축 형식으로 폴더 렌더링 기능 비활성화
EF 코어를 사용해 직원 정보 출력
단일 직원 정보를 표시하는 partial 보기 구현
Razor 클래스 라이브러리 사용 및 테스트
서비스 및 HTTP 요청 파이프라인 구성하기
엔드포인트 라우팅 이해하기
엔드포인트 라우팅 구성
엔드포인트 라우팅 구성 살펴보기
ConfigureServices 메서드에 서비스 등록
Configure 메서드에 HTTP 요청 파이프라인 설정
주요 미들웨어 확장 방법 요약
HTTP 파이프라인 시각화
미들웨어로 익명 인라인 대리자 구현
연습 및 탐구
연습 14.1 - 복습
연습 14.2 - 데이터 기반 웹 페이지 구축 연습
연습 14.3 - 콘솔 앱 용 웹 페이지 구축
연습 14.4 - 탐구
마무리
15장. 모델-뷰-컨트롤러 패턴을 이용한 웹사이트 개발
ASP.NET Core MVC 웹사이트 설정
ASP.NET Core MVC 웹사이트 만들기
SQL Server LocalDB에 대한 인증 데이터베이스 생성
기본 ASP.NET Core 웹사이트 살펴보기
새 계정 생성하기
MVC 웹사이트 프로젝트 구조 살펴보기
ASP.NET Core Identity 데이터베이스 검토
ASP.NET Core MVC 웹사이트 살펴보기
ASP.NET Core MVC 초기화
기본 MVC 라우터 이해하기
컨트롤러와 액션 이해하기
ControllerBase 클래스 이해하기
컨트롤러 클래스 이해하기
컨트롤러 책임 이해하기
뷰 탐색 경로 규칙
로깅
필터
필터를 사용한 액션 메서드 보안 처리
역할 관리 활성화 및 프로그래밍 방식으로 역할 생성하기
필터를 사용해 응답 캐시하기
필터를 사용해 사용자 지정 라우트 정의
엔티티 및 뷰 모델 이해하기
뷰 이해하기
ASP.NET Core MVC 웹사이트 사용자 지정
사용자 정의 스타일
카테고리 이미지 설정
Razor 구문 이해하기
형식화된 뷰 정의
사용자 정의 홈페이지 결과 확인
경로를 사용해 매개 변수 전달
모델 바인더 자세히 이해하기
모호한 불일치 예외 해결
경로 매개 변수 전달
폼 매개 변수 전달
모델 검증
뷰 도우미 메서드 이해하기
데이터베이스 쿼리 및 디스플레이 템플릿 사용
비동기 작업을 사용해 확장성 향상
컨트롤러 작업 메서드를 비동기로 만들기
연습 및 탐구
연습 15.1 - 복습
연습 15.2 - 카테고리 세부 정보 페이지를 구현해 MVC 구현 연습
연습 15.3 - 비동기 작업 방법을 이해하고 구현해 확장성 향상 연습
연습 15.4 - MVC 컨트롤러 단위 테스트 연습
연습 15.5 - 탐구
마무리
코드 저장소
Discord 채널 참여
16장. 웹 서비스 개발 및 사용하기
ASP.NET Core Web API를 사용해 웹 서비스 개발
웹 서비스 용어 이해
WCF
WCF의 대안
Web API에 대한 HTTP 요청 및 응답 이해
ASP.NET Core 웹 API 프로젝트 생성하기
웹 서비스 기능 확인
Northwind 데이터베이스용 웹 서비스 만들기
엔티티용 데이터 저장소 만들기
Web API 컨트롤러 구현
작업 메서드 반환 유형
고객 데이터 저장소 및 웹 API 컨트롤러 구성
문제 세부 정보 지정
XML 직렬화 제어
웹 서비스 문서화 및 테스트
브라우저를 사용한 GET 요청 테스트
REST Client 확장으로 HTTP 요청 테스트
REST Client를 사용해 GET 요청하기
REST Client로 다른 요청 보내기
Swagger
Swagger UI로 요청 테스트
HTTP 로깅 활성화
HTTP 클라이언트를 사용해 웹 서비스 사용
HttpClient
HttpClientFactory를 사용해 HTTP 클라이언트 구성
컨트롤러에서 고객 데이터를 JSON으로 가져오기
교차 출처 리소스 공유 활성화
웹 서비스를 위한 고급 기능 구현
상태 확인 API 구현
Open API 분석기 및 규칙 구현
일시적인 오류 처리 구현
보안 HTTP 헤더 추가
최소한의 API를 사용해 웹 서비스 개발
최소한의 API를 사용해 일기 예보 서비스 구축
최소한의 일기 예보 서비스 테스트
Northwind 웹사이트 홈페이지에 일기 예보 추가
연습 및 탐구
연습 16.1 - 복습
연습 16.2 - HttpClient로 고객 데이터 생성 및 삭제
연습 16.3 - 탐구
마무리
17장. 블레이저로 사용자 인터페이스 만들기
블레이저 이해하기
자바스크립트 친화적
실버라이트 - 플러그인을 사용하는 C# 및 .NET
웹어셈블리 - 블레이저 대상
블레이저 호스팅 모델 이해
블레이저 구성 요소 이해
블레이저와 Razor의 차이점
블레이저 프로젝트 템플릿 비교
블레이저 서버 프로젝트 템플릿
CSS와 자바스크립트 격리
페이지 구성 요소에 대한 블레이저 라우팅
라우팅 가능한 페이지 구성 요소를 정의하는 방법
블레이저 라우팅 탐색 방법
경로 매개 변수를 전달하는 방법
기본 구성 요소 클래스
경로와 탐색 링크 구성 요소 사용하기
블레이저 서버 프로젝트 템플릿 실행
블레이저 웹어셈블리 프로젝트 템플릿
블레이저 서버로 구성 요소 만들기
구성 요소 정의 및 테스트
라우팅 가능한 페이지 구성 요소로 바꾸기
구성 요소에서 엔티티 조회
블레이저 구성 요소에 대한 서비스 추상화
EditForm 구성 요소로 폼 정의하기
고객 양식 구성 요소
고객 정보 양식 구성 요소 테스트
블레이저 웹어셈블리를 사용해 구성 요소 만들기
블레이저 웹어셈블리용 서버 구성
블레이저 웹어셈블리용 클라이언트 구성
블레이저 웹어셈블리 구성 요소 및 서비스 테스트
블레이저 웹어셈블리 앱 개선
블레이저 웹어셈블리 AOT 활성화
프로그레시브 웹 앱 지원
PWA에 대한 오프라인 지원 구현
블레이저 웹어셈블리용 브라우저 호환성 분석기 이해
클래스 라이브러리에서 블레이저 구성 요소 공유
자바스크립트 상호 운용성
블레이저 구성 요소 라이브러리
연습 및 탐구
연습 17.1 - 복습
연습 17.2 - 시간표 구성 요소 만들기
연습 17.3 - 국가 탐색 항목 만들기
연습 17.4 - 탐구
마무리
코드 저장소
Discord 채널 참여
18장. 에필로그
C# 및 .NET 학습의 다음 단계
디자인 가이드라인으로 실력 향상
.NET MAUI 지연에 대한 소식
원서의 다음 버전
마치며















