본문 바로가기

카테고리 없음

C# 코딩의 기술 실전편

이 책은 C#의 일부 기능이 다른 비슷한 기능과 어떻게 다른지 설명하는 책 입니다.여기서 비슷한 기능이란, LINQ 의 First 와 Single, Take 등의 기능들을 뜻합니다.책을 읽으면서 다음과 같은 생각이 들었습니다.- 한 문장으로 표현 될 수 있는 것을 5명이 진행하여 설명되어 번잡스럽다.- 핵심만 볼 것이라면, Bold 글씨만 봐도 되겠구나- 편집/구성에서 호불호과 많이 갈릴 것 같다는 생각

C# 코딩의 기술 이 ‘실전편’으로 돌아왔다. C# 기본 기능부터 병렬 처리, 비동기 처리, LINQ, 디버깅, 테스트, 마이크로소프트 클라우드 플랫폼인 애저(Azure)까지 전작 ‘기본편’보다 다양한 주제를 다룬다. 예제 코드와 함께 특유의 코믹한 에피소드를 읽다 보면 어느 것이 맞을까? 라는 질문을 자주 만나게 된다. 정답은 없다. 상황을 파악하고 적재적소에 올바른 기술을 사용하는 것이 최선이다. C# 초급 개발자에서 중급 개발자로 한 단계 업그레이드하고 싶은 사람에게, 이 책은 마치 멘토와 같이 현실적인 조언을 해줄 것이다.

1장 기본에 숨겨진 함정
1.1 선수 선서는 반드시 처음에 하자: 선언 처리
1.2 트랙에 흰 선을 그리자: 데이터 구조 정의
1.3 개회식 다음은 선수 선서: 순차 처리
1.4 A코트는 테니스지만 B코트는 배드민턴: 병렬 처리
1.5 네트를 정리하면서 공 준비하기: 비동기 처리
1.6 잊지 말고 뒤처리하기: 강제 종료
1.7 선수가 규칙에 어긋난 행동을 하면: 예외 처리
1.8 경기 해설자는 정말 필요한가: 주석

2장 기본 기능
2.1 루프의 버그는 경계에 숨어있다
2.2 계속 변하는 조건의 함정
2.3 Format 메서드의 함정
2.4 서식 변경과 중괄호
2.5 checked 컨텍스트의 장단점
2.6 unsafe 컨텍스트는 필요한가?
2.7 포인터 망상
2.8 switch와 데이터형
2.9 goto의 위기: 안전한 사용법과 위험한 사용법
2.10 예외를 캐치하는 이유와 캐치하지 않는 이유
2.11 TryParse에서 결과를 보지 않는 경우
2.12 다른 형에 대입하기
2.13 아무것도 하지 않는 객체
2.14 테스트와 목(mock)

3장 LINQ
3.1 First와 FirstOrDefault 중 선택은?
3.2 First와 Single 중 선택은?
3.3 OrderBy와 Sort 중 선택은?
3.4 배열과 IEnumerableT 중 선택은?
3.5 여러 개의 짧은 쿼리와 하나의 긴 쿼리 중 선택은?
3.6 로컬 쿼리와 리모트 쿼리 중 선택은?
3.7 Cast와 OfType 중 선택은?
3.8 ToArray와 ToList 중 선택은?
3.9 Length/Count와 Count() 중 선택은?
3.10 애저의 위기: Take는 되지만 Skip은 안 된다?
3.11 식을 동적으로 구축해서 한계를 돌파하자!
3.12 인스턴스화는 필요한가?
3.13 열거 데이터의 순서를 변경할 수 있는가?

4장 코드 비교를 통해 차이점 배우기
4.1 object vs. dynamic
4.2 초등학생도 작성할 수 있는 프로그램 vs. 초등학생은 작성할 수 없는 프로그램
4.3 문과생도 작성할 수 있는 프로그램 vs. 문과생은 작성할 수 없는 프로그램
4.4 논리적으로 사고하는 사람 vs. 논리적으로 사고하지 않는 사람
4.5 돈을 밝히는 프로 vs. 쿨한 매니아
4.6 소통이 원활한 팀 vs. 소통이 원활하지 않은 팀
4.7 긴 코드 vs. 짧은 코드
4.8 심리적으로 안정적인 코드 vs. 심리적으로 불안한 코드
4.9 의존성을 분리한다? vs. 분리하지 않는다?
4.10 캡처 실수!
4.11 지역 변수의 좀비화
4.12 전용 DLL은 필요하다? 필요하지 않다?
4.13 고정된 쿼리 식 vs. 움직이는 쿼리 식
4.14 식은 실행하기 전까지는 알 수 없다
4.15 위임형을 정의해야 한다?

5장 클라우드
5.1 스토리지의 두 가지 키 사용법
5.2 애저 스토리지는 미로?
5.3 애저 테이블의 전방 일치
5.4 애저 테이블에서 복수 조건의 OR 일치
5.5 ETag로 확실한 수정을!
5.6 애저 블롭의 메타 데이터
5.7 Worker 롤(role)은 정말 필요한가?
5.8 나는 몇 번째 인스턴스?
5.9 WebApp으로 스케일 아웃하는 방법

6장 코드 예를 보면서 진상 파헤치기
6.1 버그를 수정했는데 이유를 모른다?
6.2 분명하지만 활용할 수 없는 조언
6.3 한 글자라도 변경하면 처음부터 다시 테스트?
6.4 ‘동작한다’는 것은 마일스톤일 뿐이다
6.5 페일 세이프 개념
6.6 테스트는 부분적으로? 또는 전체적으로?
6.7 웹 시스템과 테스트 문제
6.8 GUI와 테스트 문제
6.9 몽키 테스트는 의미가 있는가?
6.10 목(mock)를 사용하는 의미가 있는가?
6.11 테스트를 전제로 한 설계 방법
6.12 마침표와 쉼표 실수