당신은 이미 훌륭한 C# 개발자이다
그러나, 이 책이 당신을 더욱 뛰어난 개발자로 거듭나게 해줄 것이다
C#은 C++, Java, C와 닮아 있기 때문에 배우기 쉬운 장점이 있지만 반대로 불리한 점도 없지 않다. 다른 언어의 경험이 있는 C# 개발자들은 더 나은 방법들이 있음에도 종종 예전의 방식들을 여전히 고수하는 경향이 있다. 저자도 예외는 아니다. 저자는 C#을 접하기 전에 C++를 10년 간 사용하였다.
『Effective C# : 강력한 C# 코드를 구현하는 개발지침 50가지』는 보다 빠르고 효과적이며 신뢰할 수 있는 소프트웨어를 개발하기 위해서 개발자들이 반드시 알아야 하는 C#의 강력한 특징들을 50개의 항목으로 정리하였다.
이 책은 수백 만 개발자의 필독서로 알려져 있는『Effective C++』(Addison-Wesley, 1998)와 『Effective Java』(Addison-Wesley, 2001)를 계승하고 있다. 명쾌하고, 실용적인 설명, 전문가의 조언과 더불어 현실적인 다양한 코드 예제들을 포함하고 있다. 더불어 C# 언어 개발자가 저지르기 쉬운 다양한 함정에 대해서도 폭넓게 다루고 있다. 저자는 이 책 전반에 걸쳐 C++ 언어를 이용하여 개발할 때에 자주 사용되는 개발방법들이 C#을 이용할 경우에 문제를 유발시킬 수 있음을 강조하고 있다.
주요내용
- 두 가지 형태의 상수(컴파일타임 상수, 런타임 상수) 타입을 효과적이고 유지보수가 쉽도록 사용하는 방법(ITEM 2)
- 복잡한 오류 확인 루틴이 필요하지 않는, immutable 타입을 작성하는 방법(ITEM 7)
- 잦은 문제상황을 만들어 낼 가능성이 있는 C#의 특징들을 피하는 방법(ITEM 10)
- Garbage Collection, boxing, unboxing을 최소화하는 방법(ITEM 16, 17)
- interface와 delegate의 장점을 최대한으로 활용하는 방법(ITEM 19`~22)
- C# 언어 특징을 그대로 유지하면서도 CLS와 호환되는 어셈블리를 만드는 방법(ITEM 30)
- 응집도가 높은 작은 크기의 어셈블리를 작성하여 신뢰성과 유지보수의 편의성을 확보하는 방법(ITEM 32)
- 닷넷 런타임의 진단기능을 최대한으로 활용하는 방법(ITEM 36)
- reflection을 사용해야 하는 경우와 사용하지 말아야 하는 경우를 구분하는 방법(ITEM 42, 43)
- C# 2.0의 주요 특징에 대한 검토(ITEM 49)
추천사
미국에 있습니다만 아직도 원서를 읽는 데는 상대적으로 더 많은 시간이 걸리기 때문에 시간이 부족할 때는 번역서를 우선으로 찾곤 하는데, 무조건 번역서가 더 나은 결과를 보장하는 것은 아닙니다. 사실 번역서도 얼마나 충실하게 번역했는지가 중요하지요. 오히려 오역과 비문이 넘치는 번역서는 또 다시 원서를 펼쳐 보는 수고를 하게 만드니까요. C++ 개발자들에게 『Effective C++』, 『More Effective C++』, 『Effective STL』 시리즈가 갖는 의미처럼 C# 개발자에게 『Effective C#』은 필독서임에 틀림없습니다. 여기에 역자의 내공까지 더해지면서 훌륭하게 한국어판으로 출간된 것은 정말 유쾌한 일이 아닐 수 없습니다. 원서의 내용이 워낙 충실한 만큼, 이 번역서가 한국에 있는 C# 개발자분들(혹은 저처럼 해외에서 일하고 있는 우리나라 개발자분들)에게 더 좋은 코드와 더 나은 해결책을 제시할 것이라 생각합니다.
-안정환(whatisid), NHN USA Game Development Group
『Effective C#』의 내용을 몰라도 C# 기본 문법을 바탕으로 코딩은 가능했습니다. 그러나 『Effective C#』 베타 리더의 기회를 가지게 되면서 좀 더 정확하고 효율적인 C# 코딩에 대해 조금씩 고민하게 되었습니다. 또한 이 책을 통해 그동안 닷넷에 대해 가지고 있던 기본 지식을 더 다지는 계기가 되었습니다. 제게 프로그래머스러운(? ^^) 고민을 하게 해준 역자에게 감사의 마음을 전합니다.
-김순임, 한국 마이크로소프트
역자님의 강력한 포스에 걸맞는 책의 선택이었다고 생각합니다. C# 언어의 깊은 속내와 원리를 알고 싶으실 때, 여러 베타리더들까지 같이한 이 책이 최선의 선택이라고 느껴집니다.
-강효관, 소프트포럼
나 자신을 뒤돌아보고 반성하게 하는 책이었습니다. 이 책을 읽고 나 자신에게 물었습니다. "너 그동안 C#을 알고 있었던거 맞냐?"
-김경복, 삼성 SDS