모어 이펙티브 C# - 더 강력한 C# 코드를 구현하는 50가지 추가 전략과 기법, 2판
빌 와그너 지음, 김명신 옮김 / 한빛미디어 / 2019년 5월
평점 :
장바구니담기


프로그램을 하려면, C, C++, JAVA, C#, 파이썬 등과 같은 프로그래밍 언어를 익혀야 한다. 그러기 위해서 보통 프로그래밍 언어 입문서 하나 정도는 완벽히 봐줘야 한다. 입문서 내용을 어느 정도 이해하는 수준이라면, 얼추 기본적인 프로그래밍 하는데, 크게 어려움은 없을 것이다. 


처음에는 if문, for문, 메소드, 클래스를 간단히 이용하는 정도에서 조금씩 상속과 추상 클래스와 같은 개념도 사용하고, 인터페이스, 람다식 등 좀 더 다양한 기능을 사용하게 된다. 윈도우 프로그램 같은 경우는 윈폼이나 WPF에 대해서도 익히게 된다.


그런데, 이렇게 프로그래밍의 내공이 쌓이면 쌓일수록, 의문이 하나 둘씩 쌓이기 시작한다. 예를 들어, 프로그래밍 문법에 나오는 방법이 과연 최선인지? 이 방법으로도 가능하고, 저 방법으로도 가능한데, 어떤 것이 맞는 건지? 어떤 차이가 있는지? 효율 차이가 어느 정도인지? 유지 보수를 대비한 적절한 프로그래밍 방법은 어떤 것인지?처럼 프로그래밍 언어의 문법적 사용에 대한 의문이 드는 것이다.


개발 현장에서는 일정으로 인해, 대부분 시간에 쫓기다 보니, 이런 의문을 스스로 풀어볼 시간이 없다. 괜히 이런 문제를 붙잡고 있게 되면, '여기가 연구소냐'하고, 핀잔 듣기 쉽다. 그렇지만, 이런 의문은 좋은 개발자로 성장하는데 꼭 필요한 요소라 생각한다. 이런 것들을 귀찮다고, 그냥 넘어가고, 바쁘다고, 건너뛰면, 개발자의 스킬은 정체되고 만다.


그럼 무조건 시행착오도 겪고, 검색하며, 검증하고 그런 막대한 시간을 써서라도 해야 할까? 물론 그게 가장 좋은 방법이겠지만, 그것도 능력이 어느 정도 돼야 가능한 것이다.


다행스럽게도, 우린 책이라는 막강한 도구가 있다. 최고의 전문가가 그러한 것들을 대신 연구하고, 최적의 길을 알려주고 있다.


C# 언어의 경우 그러한 역할을 해주는 책이 바로 빌 와그너의 'Effective C#'이고, 더 한 단계 나아간 책이 'More Effective C#'이다. 이 책들은 이미 많은 C# 개발자들이 봐왔던 책으로 그만큼 내용면에서 검증이 된 책이라 할 수 있다.


이번에 소개하려는 책은 'More Effective C# 2판'이다. 이 책은 C#을 어떻게 사용하면 좋을지를 말하고 있다. 즉 C#의 바른 사용법, 효율적인 사용법, 권장 사항에 대한 내용을 담고 있는 것이다.



우선 책 구성을 보면, 데이터 타입, API 설계, 태스크 기반 비동기 프로그래밍, 병렬처리, 동적 프로그래밍, 글로벌 C# 커뮤니티에 참여하기 이렇게 6파트에 50가지 아이템으로 되어 있다.


아이템을 몇 가지를 보면, '값 타입은 변경 불가능한 것이 낫다', '상속보다는 인터페이스를 정의하고 구현하는 것이 낫다', 'async void 메서드는 절대 작성하지 말라', '스레드를 생성하지 말고, 스레드 풀을 사용하라'와 같이 실제 프로그래밍에서 어떤 것이 좋은지, 그 이유와 잘못 사용 시의 문제점을 명확히 설명하고 있다.


그리고 이번 2판은 C# 버전 7을 기반으로 설명했으며, 오래된 기능과 기존에 나온 책의 내용을 재구성한 면도 있다고 한다.



개인적으로 자동화 프로그래밍을 자주 하다 보니, 동시다발적으로 발생하는 상황을 처리하기 위해, 병렬처리, 멀티스레드 등에 고민이 많았었다. 어떤 방법을 쓰는 게 맞는지, 많은 시간을 고민도 했었다. 그런데도 명확한 답을 내지 못했던 부분들이 있었다. 그런데, 이 책에 마침 풀지 못했던 것들에 대한 고민을 깔끔히 해소해줬다. 

스레드풀 사용에 대해서도, 처리시간 그래프까지 잘 나와 있고, 생성할 스레드 수에 대한 어드바이스 또한 아주 요긴했다.




BackgraoundWorker 경우 전부터 인터넷 검색에서 그걸 쓰라고 해서, 쓰기는 했는데, 정확히 알지 못하고 쓰고 있었다. 그러다 이번에 BackgroundWorker의 자세한 동작과 어떤 이점이 있고, 주의할 점이 무엇인지 확실히 알 수 있었고, 좀 더 폭넓은 활용에 대한 힌트도 얻었다.


아울러 그동안 습관적으로 써왔던 내 코딩 방법이 제대로 된 것임을 확인할 수 있었고, 왜 그렇게 쓰는 게 맞는지도, 그 이유와 함께 다시 한 번 확인할 수 있었다.


'More Effective C#'은 그리 두꺼운 책은 아니지만, 담고 있는 내용은 상당히 심도 있다. 그만큼 난도가 높은 책이다. 중급 또는 중상급 이상의 수준이다. C# 문법 지식이 확실하지 않으면, 내용 이해하기가 쉽지가 않을 것이다. 부분적인 이해뿐만 아니라, 전반적인 C# 문법 이해도 필요하다. 


그렇지만 혼란스러운 부분을 확실하고 깔끔하게 정리해주므로 꼭 봐야 할 책이라 생각한다. 특히 앞에서도 말했지만, '모어 이펙티브 C#'은 C# 전문가의 입장에서 C#을 어떻게 사용하면 좋을지를 말하고 있기 때문에 발전적인 C# 사용법을 익히는데도 큰 도움이 될 것이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo