본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

개정판 | 이펙티브 C# 상세페이지

컴퓨터/IT 개발/프로그래밍

개정판 | 이펙티브 C#

강력한 C# 코드를 구현하는 50가지 전략과 기법
소장종이책 정가25,000
전자책 정가30%17,500
판매가17,500
개정판 | 이펙티브 C# 표지 이미지

개정판 | 이펙티브 C#작품 소개

<개정판 | 이펙티브 C#> 더 나은 C# 코드를 작성하는 새로운 방법 50가지
C#은 전통적인 .NET 기반 개발에서 유니티 게임 엔진으로 개발 영역을 확대하면서 더욱 주목받고 있다. 또한 자마린으로 다양한 모바일 플랫폼에 대응할 수 있어 수요가 계속 늘고 있다. 이에 이 책은 소프트웨어 개발자가 C#을 더 효율적으로 사용할 수 있도록 다양한 팁과 실용적인 방법을 제공한다.
저자는 C#의 힘을 온전히 활용하여 효율적이고 성능이 뛰어난 코드를 작성하는 방법 50가지를 알려준다. 탁월한 C# 경험을 바탕으로 리소스 관리부터 다중 코어 지원까지 설명하고, 상황에 맞는 다양한 선택지를 제시한다. 가장 효과적인 솔루션을 선택하고, 유지보수와 개선이 쉬운 코드를 작성하는 방법도 살펴본다.
명확하고 실용적인 설명과 전문가의 팁, 현실적인 예제 코드로 가득한 이 책이야말로 중급 개발자의 필수 아이템으로 자리매김하는 데 부족함이 없을 것이다.


출판사 서평

C# 개발자를 위한 ‘알아두면 쓸모있는 신비한 팁 50가지’
이 책의 초판이 국내에 소개된 지도 벌써 10여 년이 지났다. 그 사이에 C# 커뮤니티는 폭발적으로 성장했고, 수많은 개발자가 주요 언어로 C#을 사용하게 되면서 개발 영역도 확대되었다. 이러한 가운데 저자는 6.0 이상의 최신 C#을 효율적으로 사용하는 방법에 초점을 맞추어 새롭게 이번 3판을 준비했다. 이전 판에서 다뤘지만 더 이상 유용하지 않은 항목들은 과감히 쳐냈고, C#과 .NET Framework에 새롭게 추가된 내용과 C# 커뮤니티의 축적된 경험을 정리하여 새로운 항목으로 구성했다.

이 책의 대상 독자는 C#을 주요 언어로 사용하는 전문 개발자다. 따라서 이미 C#의 문법과 언어 기능을 충분히 숙지하고 있는 개발자가 읽는다는 가정하에 쓰였다. C# 자체의 기능을 세부적으로 설명하기보다는, 그러한 기능을 개발 현장에서 어떻게 적용하고 문제를 해결할 수 있을지를 알려준다. 나아가 C#의 최신 기능을 이용하여 양질의 코드를 작성하는 방법을 안내한다.

이 책의 초판과 3판을 모두 번역한 김명신 역자는 국내에서 .NET 기술과 관련해 최고봉을 다툴 정도로 조예가 깊은 개발자다. 다수의 개발서를 집필/번역한 임백준 저자의 표현대로, 빌 와그너라는 걸출한 저자와 김명신이라는 뛰어난 프로그래머 역자의 조합은 독자에게 좀처럼 만나기 어려운 축복이다. 성능과 효율을 고려하면서 우아한 코딩을 하고 싶은 개발자라면, 매끄럽게 술술 읽히는 이 번역서를 통해 흥미로운 팁을 잔뜩 얻을 것이다.

★ 주요 내용
1장- C# 언어의 명세를 넘어 관용적으로 사용되는 주요 표현 방법
2장- .NET에서 효율적으로 리소스를 관리하는 데 꼭 알아야 할 상세 내용
3장- 재사용성과 성능 향상에 필요한 제네릭 항목들
4장- C#의 독특한 특징이자 강력한 기능을 제공하는 LINQ 활용법
5장- 안정적인 애플리케이션 개발에 필요한 예외 처리 기법


저자 프로필

빌 와그너 Bill Wagner

  • 학력 일리노이 대학 컴퓨터 과학 학사
  • 경력 ECMA C# 표준 위원회 멤버
    휴매니테리언 툴박스 대표
    .NET Foundation 자문 위원

2017.11.20. 업데이트 작가 프로필 수정 요청


저자 소개

저자_빌 와그너

일리노이 대학에서 컴퓨터 과학을 전공했고 현재 마이크로소프트의 .NET Core 콘텐츠 팀에서 .NET 관련 교육 자료를 작성하는 업무를 담당하고 있다. 세계 최고의 C# 전문가 중 한 명이며 ECMA C# 표준 위원회의 멤버이기도 하다. 휴매니테리언 툴박스(Humanitarian Toolbox)의 대표이자 마이크로소프트 지역 디렉터인 동시에 11년간 .NET 분야의 MVP이기도 하다. 최근에는 .NET Foundation 자문 위원으로 위촉되었다. 스타트업부터 대기업에 이르기까지 다양한 기업의 개발 프로세스를 개선하고 개발팀을 성장시키는 일을 돕고 있다. 앞서 『Effective C#』의 1판과 2판을 출간한 바 있다.

역자_김명신

마이크로소프트의 기술을 더 많은 사람이 올바르게 이해하고 사용하기를 바라는 마음으로 한국 마이크로소프트의 수석 에반젤리스트로 일하고 있다. 이전에는 마이크로소프트의 아태지역 글로벌 핵심 개발자 지원팀 수석 엔지니어였으며 다년간 C++와 C# 분야의 마이크로소프트 MVP이기도 했다. 클라우드, 분산 컴퓨팅 아키텍처, 대용량 네트워크 프로그래밍, 프로그래밍 방법론, 소프트웨어 공학 등 다양한 분야에 두루 관심이 많고, 다양한 개발자 콘퍼런스에 단골 발표자로 참가하고 있어서 쉽사리 만나볼 수 있는 쉬운 남자다.
바이크에 심취하여 잠시 일탈을 꿈꿨으나 좌절하고, 최근에는 해양 스포츠를 넘보고 있다. 당장 필요하지도 않은 개발 공부야말로 인생에서 포기할 수 없는 마지막 사치라고 터무니없는 주장을 하는 그는 “내일부터 운동해야지”라는 말을 15년째 반복하고 있으며, 최근에는 35년간 공부한 내용을 어디에다가 써먹을 수 있을지 다시금 고민을 시작했다.
『Advance C Programming』, 『Unix System V』 등을 집필했고 『Effective C#(1판)』, 『제프리 리처의 Windows via C/C++』(이상 한빛미디어), 『제프리 리처의 CLR via C#』, 『마스터링 Microsoft Azure IaaS』, 『Microsoft Azure 에센셜』(이상 BJ퍼블릭) 등을 번역했다.

목차

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: 예외 필터의 다른 활용 예를 살펴보라


리뷰

구매자 별점

4.5

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

11명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전