wnst***
2018-02-17

정가 : 25,000 원
할인 : 22,500 원 (10% off)
택배 : 무료
구매 : http://www.hanbit.co.kr/store/books/look.php?p_code=B8349603240
기본정보
저자인 빌 와그너는 일리노이 대학에서 컴퓨터 과학을 전공했고 현재 마이크로소프트의 .NET Core 콘텐츠 팀에서 .NET 관련 교육 자료를 작성하는 업무를 담당하고 있다. 세계 최고의 C# 전문가 중 한 명이며 ECMA C# 표준 위원회의 멤버이기도 하다. 휴매니테리언 툴박스(Humanitarian Toolbox)의 대표이자 마이크로소프트 지역 디렉터인 동시에 11년간 .NET 분야의 MVP이기도 하다. 최근에는 .NET Foundation 자문 위원으로 위촉되었다. 스타트업부터 대기업에 이르기까지 다양한 기업의 개발 프로세스를 개선하고 개발팀을 성장시키는 일을 돕고 있다. 앞서 『Effective C#』의 1판과 2판을 출간한 바 있음.
정보 소개는 출판사의 공식 게시물 만한게 없지
첫인상
도서관 한켠에 있는 언제 출판되었을지 모를 서적처럼 생겼습니다. 책을 실제로 받아보면 무광에 부드러운 느낌의 재질이 느껴지는데 보통 책들처럼 반짝이는 표지를 썻다면 오히려 너무 저급책 저럼 보였을 것 같습니다. 저는 C#을 서브언어로 사용하다 지금은 메인(C/C++)과 서브사이의 개념이 모호할 정도로 많이 사용하고 있습니다. 메인언어의 사용이 절차지향에 편향되어 있었기에 C#의 객체지향적 특성을 제대로 살리지는 못하고 있었죠. 이 책을 선택한 이유는 표지에 적힌것과 같이 '강력한 C# 코드를 구현하는 50가지 전략과 기법' 때문입니다.
(중략)
책구성
앞서 말씀드린바와 같이 본 책은 더나은 C#코드를 작성하기 위한 새로운 방법 50가지를 소개하고 있습니다. 명확하고 실용적인 전문가의 설명과 팁, 현실적인 예제 코드가 적절히 가미되어 있습니다. 한빛 미디어 책 소개를 보면 난이도가 '초급'이라 표기되어 있지만 본책은 최소 초중급에서 중급 이상이라고 생각됩니다. 그 이유는 C#에 대한 기본지식이 필요하고 프로그래밍에 대한 전반적인 지식또한 필요하기 때문입니다. 코드 작성에 관한 이야기라면 당연하게도 소프트웨어공학적인 내용들이 많이 담길 수 밖에 없습니다. 디자인패턴을 알고 있다면 조금더 많은 정보들을 얻을 수 있을 겁니다. 마치 여행지의 역사를 알고 관광지를 둘러보는 것 처럼 말입니다. 이 말은 곧, 디자인패턴을 깊이 알지 못하더라도, 들어본적도 없을지라도 그와 관계없이 여러분들에게 명확히 도움이 된다는 말입니다. 어떠한 내용을 담고 있는지에 대해서는 아래 글을 눌러 확인해 주시기 바랍니다. 책을 확인하는데 가장 좋은 방법은 목차입니다.
[목차]
CHAPTER 1 C# 언어 요소
아이템 1: 지역변수를 선언할 때에는 var를 사용하는 것이 낫다
아이템 2: const보다는 readonly가 좋다
아이템 3: 캐스트보다는 is, as가 좋다
아이템 4: string.Format()을 보간 문자열로 대체하라
아이템 5: 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라
아이템 6: nameof() 연산자를 적극 활용하라
아이템 7: 델리게이트를 이용하여 콜백을 표현하라
아이템 8: 이벤트 호출 시에는 null 조건 연산자를 사용하라
아이템 9: 박싱과 언박싱을 최소화하라
아이템 10: 베이스 클래스가 업그레이드된 경우에만 new 한정자를 사용하라
CHAPTER 2 .NET 리소스 관리
아이템 11: .NET 리소스 관리에 대한 이해
아이템 12: 할당 구문보다 멤버 초기화 구문이 좋다
아이템 13: 정적 클래스 멤버를 올바르게 초기화하라
아이템 14: 초기화 코드가 중복되는 것을 최소화하라
아이템 15: 불필요한 객체를 만들지 말라
아이템 16: 생성자 내에서는 절대로 가상 함수를 호출하지 말라
아이템 17: 표준 Dispose 패턴을 구현하라
CHAPTER 3 제네릭 활용
아이템 18: 반드시 필요한 제약 조건만 설정하라
아이템 19: 런타임에 타입을 확인하여 최적의 알고리즘을 사용하라
아이템 20: IComparable<T>와 IComparer<T>를 이용하여 객체의 선후 관계를 정의하라
아이템 21: 타입 매개변수가 IDisposable을 지원할 경우를 대비하여 제네릭 클래스를 작성하라
아이템 22: 공변성과 반공변성을 지원하라
아이템 23: 타입 매개변수에 대해 메서드 제약 조건을 설정하려면 델리게이트를 활용하라
아이템 24: 베이스 클래스나 인터페이스에 대해서 제네릭을 특화하지 말라
아이템 25: 타입 매개변수로 인스턴스 필드를 만들 필요가 없다면 제네릭 메서드를 정의하라
아이템 26: 제네릭 인터페이스와 논제네릭 인터페이스를 함께 구현하라
아이템 27: 인터페이스는 간략히 정의하고 기능의 확장은 확장 메서드를 사용하라
아이템 28: 확장 메서드를 이용하여 구체화된 제네릭 타입을 개선하라
CHAPTER 4 LINQ 활용
아이템 29: 컬렉션을 반환하기보다 이터레이터를 반환하는 것이 낫다
아이템 30: 루프보다 쿼리 구문이 낫다
아이템 31: 시퀀스에 사용할 수 있는 조합 가능한 API를 작성하라
아이템 32: Action, Predicate, Function과 순회 방식을 분리하라
아이템 33: 필요한 시점에 필요한 요소를 생성하라
아이템 34: 함수를 매개변수로 사용하여 결합도를 낮추라
아이템 35: 확장 메서드는 절대 오버로드하지 마라
아이템 36: 쿼리 표현식과 메서드 호출 구문이 어떻게 대응되는지 이해하라
아이템 37: 쿼리를 사용할 때는 즉시 평가보다 지연 평가가 낫다
아이템 38: 메서드보다 람다 표현식이 낫다
아이템 39: function과 action 내에서는 예외가 발생하지 않도록 하라
아이템 40: 지연 수행과 즉시 수행을 구분하라
아이템 41: 값비싼 리소스를 캡처하지 말라
아이템 42: IEnumerable<T> 데이터 소스와 IQueryable<T> 데이터 소스를 구분하라
아이템 43: 쿼리 결과의 의미를 명확히 강제하고, Single()과 First()를 사용하라
아이템 44: 바인딩된 변수는 수정하지 말라
CHAPTER 5 예외 처리
아이템 45: 메서드가 실패했음을 알리기 위해서 예외를 이용하라
아이템 46: 리소스 정리를 위해 using과 try/finally를 활용하라
아이템 47: 사용자 지정 예외 클래스를 완벽하게 작성하라
아이템 48: 강력한 예외 보증을 준수하는 것이 좋다
아이템 49: catch 후 예외를 다시 발생시키는 것보다 예외 필터가 낫다
아이템 50: 예외 필터의 다른 활용 예를 살펴보라
결론
앞서 말한 바와 같이 본 책은 초급용이다. 초급과 초보는 다르다는걸 꼭 명심해야 한다. C#에 대한 어느정도의 지식이 있고 프로그래밍을 해본 초급자들을 위한 책이지 초보자를 위한 책은 아니다. 바둑에도 정석이라는 것이 있다. 전투에 있어서 전술들이 있듯 프로그래밍에는 디자인 패턴이 있고 훌륭한 선택지들이 많다. 이러한 것들을 미리 익혀둔다면 창조적 전쟁에서 손쉬운 실수들은 하지 않을 것이다. 사수없는 우리들에게 하나의 지표가 되고 길을 알려주는 이 책은 매우 훌륭한 책이다 한 가지 아이템을 얻기에도 힘든 경험인데 무려 50가지의 아이템을 알려주니 마다할 이유가 없다.