확장메뉴
주요메뉴


닫기
사이즈 비교
소득공제
C# 코딩의 기술 기본편

C# 코딩의 기술 기본편

: 똑똑하게 코딩하는 법

리뷰 총점8.0 리뷰 6건 | 판매지수 402
베스트
IT 모바일 top20 2주
정가
17,800
판매가
16,020 (10% 할인)
배송안내
서울특별시 영등포구 은행로 11(여의도동, 일신빌딩)
지역변경
  • 배송비 : 무료 ?
신상품이 출시되면 알려드립니다. 시리즈 알림신청
분철서비스 시작 시 알려드립니다. 분철서비스 알림신청
  •  해외배송 가능
  •  최저가 보상
  •  문화비소득공제 신청가능

품목정보

품목정보
발행일 2015년 09월 23일
쪽수, 무게, 크기 336쪽 | 506g | 152*225*14mm
ISBN13 9791186659328
ISBN10 1186659327

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

1장. 언어 사양 문제
1.1 var 사용에 관한 고민
1.2 if와 switch에 관한 오해
1.3 for와 foreach에 관한 오해
1.4 while을 이용한 조건 판정
1.5 do는 유용하지만 잘 사용하지 않는다.
1.6 루프할 필요가 없는 루프
1.7 장황한 비동기 루프
1.8 해제되지 않는 참조
1.9 해제했다고 생각한 메모리
1.10 표현력이 과장된 형
1.11 표현력이 부족한 형
1.12 의미 없는 구조체 사용
1.13 포인터 사용
1.14 불필요한 형변환 남용
1.15 클래스 하나로 증후군
1.16 모두 public으로 증후군
1.17 모두 static으로 증후군
1.18 using문을 사용하지 않는 증후군
1.19 다중 언어 프로그래밍을 모른다
1.20 const를 사용할 수 있는데 일반 변수를 사용하는 문제
1.21 readonly를 사용할 수 있는데 일반 변수를 사용하는 문제
1.22 열거형을 사용하지 않고 상수를 정의한다
1.23 쓸데없이 깊은 클래스 계층
1.24 다른 네임스페이스에서 같은 이름 남용
1.25 인수가 너무 많을 때
1.26 virtual 남용
1.27 코드에 바로 패스워드를 적는다
1.28 예외 처리를 하지 않는데 catch한다
1.29 catch해서 아무것도 하지 않고 throw하기
1.30 의미 없이 반복되는 상속
1.31 위임해야 할 상황에 상속한다
1.32 이름이 너무 짧아서 생기는 문제
1.33 이름이 너무 길어서 생기는 문제
1.34 기호로 된 이름 때문에 생기는 문제

2장. 라이브러리 문제
2.1 구세대 컬렉션 사용
2.2 컬렉션 반환
2.3 윈폼에 대한 고집
2.4 윈폼 API를 직접 호출한다
2.5 오래된 기술 XML DOM
2.6 오래된 기술 XSLT
2.7 개별 형식 바이너리의 시리얼라이즈
2.8 지나친 예외 의존
2.9 XElement를 Nullable〈T〉로 변환할 수 있을 때
2.10 MVC에서 View에 로직을 작성하는 문제
2.11 루프와 로직이 섞여 있다
2.12 필요 없는 리소스 사용
2.13 자바여 편히 잠들라

3장. 개발 환경 문제
3.1 GAC에 얽힌 오해
3.2 Ngen 의존 증후군
3.3 런타임 버전이 너무 최신일 때
3.4 런타임 버전이 너무 오래됐을 때

4장. 알고리즘 문제
4.1 지나친 재귀 사랑
4.2 불변이 아닌 클래스
4.3 흩어진 정보
4.4 쿼리가 너무 많을 때
4.5 장황한 판정
4.6 고유성이 확보됐는데 판정한다
4.7 고유성이 확보되지 않았는데 판정하지 않는다
4.8 영원히 실행되지 않는 코드
4.9 비정상 종료 시 치명적인 처리를 중단하지 않는 코드
4.10 무횻값을 자주 사용하는 데이터 설계

5장. 비주얼 스튜디오 문제
5.1 편리한 확장 기능을 사용하지 않는 문제
5.2 편리한 확장 기능을 과하게 사용하는 문제
5.3 F1을 사용하지 않는 문제
5.4 F1에 의존하는 문제
5.5 NuGet을 사용하지 않는 문제
5.6 NuGet을 사용할 수 없는 문제
5.7 버전이 적합한 템플릿을 선택할 수 없는 문제
5.8 콘솔 어플리케이션부터 만드는 문제

저자 소개 관련자료 보이기/감추기

저자 : 가와마타 아키라
1964년 도쿄 출생. 도쿄 농공대학 공학부 졸업. ENIX사에서 드래곤퀘스트2를 MXS/2 버전으로 변환하는 작업을 담당했으며 마이크로소프트에서 윈도 2.1 ~ 3.0의 일본어판 개발을 담당했다. 그 후 ㈜피데이의 사장으로 취임했다. 대표적인 저서로는 《(완전판) 궁극의 C# 프로그래밍-새로운 스타일을 이용한 실전 코딩(기술평론사)》가 있다. Visual C# MVP이기도 하다. 일이 끝나면 아마추어 향토 역사 연구가로 변신해서 자동차를 타고 시골 이곳저곳을 누비고 다닌다.
역자 : 김완섭
네덜란드 ITC에서 Geoinformation for Disaster Risk Management 석사 학위를 취득했다. 약 9년간 일본 및 한국 대기업에서 IT 및 GIS/LBS 분야 업무를 담당했다. 일본에서는 세콤(SECOM) 계열사인 파스코(PASCO)에서 일본 외무성, 국토지리정보원 등 일본 정부 기관을 대상으로 한 시스템 통합(SI) 업무를 담당했다. 이후 야후 재팬으로 직장을 옮겨 야후 맵 개발 담당 시니어 엔지니어로 근무했으며 한국으로 돌아와 SK에서 내비게이션(T맵 등) 지도 데이터 담당 매니저로 근무했다. 저서로는 《나는 도쿄 롯폰기로 출근한다》가 있으며 역서로는 《그림으로 공부하는 IT 인프라 구조》, 《그림으로 공부하는 시스템 성능》, 《코딩을 지탱하는 기술》, 《SQL 더 쉽게, 더 깊게》, 《클린 코드를 위한 테스트 주도 개발》 등 13권이 있다.

책 속으로 책속으로 보이기/감추기

이 책은 C# 및 닷넷 프로그래밍의 노하우를 알려주는 책입니다. 코드 한 줄만 바꿔서 성능을 2,400배 끌어올릴 수 있다고 하면 분명 누군가는 거짓말이라고 할 것입니다. 하지만 실제로 가능합니다. 저도 코드를 실행해보고 진짜 가능하다는 것을 확인한 후 제 눈을 의심했습니다. 이 책은 학교에서 또는 일반적인 C# 책에서 알려주지 않는 저자의 노하우가 담긴 값진 책입니다. 이 책을 보지 않았다면 이런 비법이 있다는 것을 평생 알지 못했을 것입니다. 수년간 닷넷 개발자로 일했지만, C#과 비주얼 스튜디오에 이런 기능이 있었는지 그리고 이렇게 프로그램을 작성하는 방법이 있다는 것을 알고 놀랐습니다.

이 책은 흐름 제어를 어떻게 하고 변수를 어떻게 선언하며 배열이 무엇인지에 관해서는 가르쳐주지 않습니다. 바로 짧은 프로그램을 하나 보여주면서 이야기를 시작합니다. 따라서 어느 정도 C# 프로그래밍 경험이 있는 독자를 대상으로 합니다. 하지만 C#입문자를 위해 곳곳에 역주를 달아서 내용을 보충했습니다(단, C#으로 작성된 간단한 코드를 읽을 줄은 알아야 합니다). 이 책은 짧은 단막극 형식으로 구성되어 있으며 재미있는 이야기를 따라가다 보면 어느새 이야기에 빠지게 되고 자연스럽게 이전에는 알지 못했던 기술을 접하게 됩니다. 그리고 이렇게 접한 기술은 (이 책을 읽지 않은) 다른 사람은 결코 알 수 없는 비법이 돼서 다른 사람보다 인정받는 C# 프로그래머로 여러분을 업그레이드시켜 줄 것입니다. 개인적으로도 이 책을 번역하게 된 것은 정말 행운이라고 생각합니다. 아직 C#이 C나 자바보다 못한 언어라고 생각하는 사람에게 특히 이 책을 추천하고 싶습니다. C#의 무한한 능력과 확장성을 쉽고 재미있게 알려주는 책입니다.
---《옮긴이의 글》중에서

출판사 리뷰 출판사 리뷰 보이기/감추기

초보자가 놓치기 쉬운 실수나 이슈, 패턴을 소개하고 그 해결법을 에피소드 형식으로 제시해주는 C# 활용서

C# 제대로 알고 쓰자!
C#은 C/C++, 자바와 문법이 비슷하지만, 구조적으로나 태생적으로 엄연히 다른 언어다. C#의 특징을 제대로 알고 이에 최적화된 코딩을 한다면 성능과 생산성을 한층 끌어올릴 수 있다.

올바른 코딩의 교본을 보여준다!
언어 사양, 라이브러리, 개발 환경, 알고리즘, 비주얼 스튜디오까지 C#과 닷넷 프로그래밍에 관련된 저자의 노하우와 숨겨진 기능을 배울 수 있다.

현장감 넘치는 에피소드로 재미있게 배운다!
개발자들이 현장에서 부딪히는 예상하지 못한 이슈와 사건들을 짧은 단막극 형식으로 재구성하였다. 생생하고 재미있는 이야기를 따라가다 보면 그동안 몰랐던 C#의 무한한 능력과 확장성을 재발견하게 될 것이다.


▶ 이 책의 독자 대상
- C# 기초는 알고 있지만, 실무에 필요한 지식을 더 제대로 배우고 싶은 초보 C# 개발자
- C# 및 닷넷 프로그래밍의 고급 기술과 노하우를 배우고 싶은 현업 닷넷 개발자
- 유니티 스크립트 작성을 위해 C#을 더 잘 알고 싶은 게임 개발자

회원리뷰 (6건) 리뷰 총점8.0

혜택 및 유의사항?
전반적으로 아쉬운 책 내용 평점3점   편집/디자인 평점4점 g*****i | 2016.01.21 | 추천9 | 댓글0 리뷰제목
2003년 .NET Framework 1.1로 시작해서 올해로 14년 정도 C#을 사용하여 개발해왔다. 물론 지난 기간 동안 C# 만을 사용해서 개발한 것은 아니다. 14년이면 짦은 시간은 아니지만, 아직도 C#에 대해 모르는 것들이 많다. 문법이나 SDK 에 관한 문제도 있지만, 특히 C#을 효율적으로 사용하는 방법이라든가 적절하면서도 정확하게 사용하는 방법 등이다. Framework에는 다양한 클래스와;
리뷰제목

2003년 .NET Framework 1.1로 시작해서 올해로 14년 정도 C#을 사용하여 개발해왔다. 물론 지난 기간 동안 C# 만을 사용해서 개발한 것은 아니다. 14년이면 짦은 시간은 아니지만, 아직도 C#에 대해 모르는 것들이 많다. 문법이나 SDK 에 관한 문제도 있지만, 특히 C#을 효율적으로 사용하는 방법이라든가 적절하면서도 정확하게 사용하는 방법 등이다.


Framework에는 다양한 클래스와 메소드 그리고 옵션들이 존재하는데, 이런 옵션들을 정확하게 다 알고 사용하기란 쉽지 않은 일이다. 기억력이 좋지 않는 나로써는 이전에 익혔던 것들도 간혹 잊어버리는 경우가 허다한 지라 어려움이 많다.


그래서 "C# 코딩의 기술 기본편 : 똑똑하게 코딩하는 방법" 같은 제목을 가진 책들은 구매하고 싶은 유혹에 쉽게 빠진다.


이 책은 래머군, 천사양, 악마씨 3명이 코딩에 대한 대화 형식으로 구성되어 있다. 먼저 래머군이 특정 주제에 대해 자기가 작성한 코딩을 제시하고 천사양과 악마씨가 각각 작성한 코드를 제시하고 티격태격되며 서로의 코드를 설명한다. 거의 천사양 코드가 추천 코드, 악마씨 코드는 완성도가 떨어지거나 좋지 않은 코드로 설정된다.


전반적으로 책에서 서술하는 코딩 기법 자체가 입문자 수준이긴 한데, 이 내용들이 입문자들이 이해하기 쉽게 서술됐는냐로 따진다면 물음표다.


일단 문제 제기에 대한 해결책으로 나온 코드나 방법이 납득할만한 수준의 최적의 솔루션이 아니며, 왜 그렇게 코딩해야 하는가에 대한 의문점을 깔끔하게 해결해주지 못한다. C#을 처음 접하는 개발자들이 이 채을 보고 왜 이렇게 코딩해야하는지에 대한 정확한 이해없이 관습적으로 코딩하지 않을까 하는 걱정이 든다.


예를 들어 예전에 컬렉션을 IEnumerable 인터페이스로 캐스팅하여 MoveNext() 메소드로 값을 가져오는 개발자를 봤다. 그런데 왜 IEnumerable로 캐스팅해서 사용하냐고 물어보면, 다른 소스에서 봤는데요라는 답변이였다. IEnumerable은 Iterator 패턴 인터페이스이다. 따라서 IEnumerable이 구현된 컬렉션은 foreah를 사용하여 값을 가져오면 된다. 구지 IEnumerable로 가져올 필요가 없다.


또 다른 예로 String 형식의 개체에 ToString()를 습관적으로 붙이는 경우도 봤다. 예제 소스에서 ToString()을 쓰니까 그냥 사용한다.  String 형인데 다시 ToString() 메소드 호출은 비효율적일 뿐만 아니라, Primitive 타입이 아니기 때문이 널(null)을 항상 체크하여 한다. 따라서 이 경우처럼 ToString()을 호출하는 것은 NullReferenceException을 불필요하게 발생시킬수 있다는 것이다. 이런 실수를 의외로 많이 봤다.


그리고 또 다른 예로 XSLT를 설명하면서, 스펙이 맞지 않고 최신 구현체가 .NET에 없다는 설명은 좋다. 그래서 XSLT를 사용하지 말것을 권고하는 것도 좋다. 그러면, 다른 해결책은?


필요한 문서를 생성할 때 마다 빌더 클래스를 만들란 건지, 아니면 오픈소스나 상용 리포팅 도구를 사용하란 건지? 사용한다면 레퍼런스 제품은 뭐가 있는지 정도는 알려줘야 하지 않을까?


개인적으로 간단한 문서 변환의 경우 XSLT를 사용한다. 1.0 스펙으로도 왠만한 것들은 구현이 가능하기 때문에 어렵다거나 귀찮은 적은 없다. 내부용을 쓸건데 XSLT를 아예 쓰지 말란 것도 좀 우습다.


yield 키워드를 사용하는 부분도 신중이 결정해야 하는 부분이다. yield 키워드가 지연 처리를 하기 때문에 메모리 관리 부분에서는 좋을 수 있다. 하지만 yield는 느리다. 그리고 yield 가장 적절한 용도는 데이터 무한 공급이 필요한 곳에 가장 적합한 키워드이다. 잘못 사용하면 지옥적인 성능을 맞볼것이다.

코딩에 대한 올바른 길을 제시하려면, 이 코드가 왜 다른 코드보다 나은지에 대한 좀더 깉은 통찰력과 이해력을 증진해야 하고 이를 응용해서 여러 유사 코드를 자유자재로 작성할 수 있도록 도와야 한다. 그런데 이 책은 그런 점에서 만족스럽지 못하다. 대화식으로 그런지 너무 쓸데없는 내용들이 많고 실제 건져야 할 내용이 상대적으로 적다.


항상 장점이 있으면 단점도 있는 법이고 이런 부분을 충분히 설명해야 하는데, 이 책은 그런 부분이 부족하다. 솔직히 예전에 조금 어렵지만, Effective C#이라는 책이 휠씬 좋았던 것 같다.  원서로는 계속 판올림을 하고 있지만, 번역서는 1판에서 나오지 않기 때문에 아쉽다.


총평하자면, 내용이 충분하지 않아 오용의 소지가 있고 해결책이 항상 최적도 아니며, 항상 솔루션이 있는 것도 아니라 입문자에게도 비추. 또한 내용이 깊이 있는 것도 아니라 중급 이상에게도 비추.
그냥 읽어보면 이런 내용이 있구나 정도로만 보면 딱일듯한 책이다.

 

9명이 이 리뷰를 추천합니다. 공감 9 댓글 0
c# 개발 꿀팁 내용 평점5점   편집/디자인 평점5점 V* | 2015.10.19 | 추천1 | 댓글0 리뷰제목
일단 이 책을 보기 전에 c#에 대해서 어느정도 기초 문법을 알고 보면 편할 것 같습니다. 몰라도 그만? 이라고 생각할 수 있지만그로 인해서 상당한 성능상의 패널티를 볼 수도 있고, 버그가 생길 수 있는 가능성을 만드는 코딩 습관을 한번 돌아 보게 해주는 책 같다. 전문서적이라 보통 크기의 책을 상상했는데 크기도 일반 소설책 크기이고 내용도 코드를 나열한 일반적인 도서와는;
리뷰제목

일단 이 책을 보기 전에 c#에 대해서 어느정도 기초 문법을 알고 보면 편할 것 같습니다.

몰라도 그만? 이라고 생각할 수 있지만
그로 인해서 상당한 성능상의 패널티를 볼 수도 있고, 버그가 생길 수 있는 가능성을 만드는 코딩 습관을 한번 돌아 보게 해주는 책 같다.

전문서적이라 보통 크기의 책을 상상했는데 크기도 일반 소설책 크기이고 내용도 코드를 나열한 일반적인 도서와는 달리 대화형으로 시작해서 문제를 인지하고 그 문제를 해결 하는 간단하는 예제...로 이루어져 있어서

출퇴근 혹은 통학하면서 가볍게 볼 수 있어서 좋았다.

정리하자면 책 내용은 어렵지 않고 간단하면서 몰라도 되지만 알면 나의 가치를 올릴 수 있는 꿀팁을 알 수 있는 책인 듯하다.

 

1명이 이 리뷰를 추천합니다. 공감 1 댓글 0
초~초중급의 C# 개발자에게 유용한 개발 가이드 내용 평점4점   편집/디자인 평점5점 b****y | 2015.10.12 | 추천1 | 댓글0 리뷰제목
평소 elegant 한 코드를 작성하기 위해서 고민을 많이 하는 편입니다. 귀차니스트 개발자로서 코딩 한 줄 덜 하고 싶고, 잘 읽히는 코드를 쓰고 싶습니다. 동료들과 술 한잔 기울일 때는 이런 얘기들을 종종 나누기도 합니다. 다만, 이러한 소통이 제한된 사람들 사이에서만 이뤄지다 보니 '우물안의 개구리'는 아닐까 하는 걱정이 늘 마음 한 켠에 있었습니다. 이 책은 다;
리뷰제목

평소 elegant 한 코드를 작성하기 위해서 고민을 많이 하는 편입니다.

귀차니스트 개발자로서 코딩 한 줄 덜 하고 싶고, 잘 읽히는 코드를 쓰고 싶습니다.


동료들과 술 한잔 기울일 때는 이런 얘기들을 종종 나누기도 합니다.

다만, 이러한 소통이 제한된 사람들 사이에서만 이뤄지다 보니 '우물안의 개구리'는 아닐까 하는 걱정이 늘 마음 한 켠에 있었습니다.


이 책은 다른 사람의 이야기를 들어 볼 수 있는 기회로 생각했습니다.

나와 어떻게 다른 생각을 하는 지, 어떤 고급진 기술을 사용하는 지 호기심을 해결할 수 있었습니다.


책의 구성

작은 사례들을 기준으로 악마와 천사의 가이드를 받는 주인공이 나옵니다.

악마가 단편적인 해결책을 제시하면, 천사가 원론적인 문제 해결책을 제시하면서 각각의 작은 챕터들이 마무리 됩니다.


주인공 래머군은 실력이 그리 뛰어나지는 않으나, 근본적인 원인 해결 및 재발 방지 대책에 대해서 꼼꼼하게 따집니다.

그래서 늘 악마의 해결책에 만족을 하지 못하죠.


평가

초~초중급의 C# 개발자에게는 꽤 유용할 거라고 보입니다.

책 제목 그대로 '기본편' 인 거죠.

저는 일부 신선한 내용이 있었지만, 대부분은 공감하는 정도로 읽은 것 같습니다.

(개발 경력이 벌써 12년이네요...) 

기본편이라는 서브타이틀을 달고 나온 만큼 '중급편', '고급편'으로 시리즈가 이어진 다면 꼭 또 읽게 될 것 같습니다.


다만 두어건의 사례는 100% 공감하기 어려운 부분이 있습니다. 이건 관점의 차이일 것 같습니다.

일례로, 동료들에게 들었던 제 코드의 문제는 '유지보수가 어렵다'라는 것이 었습니다.

지금은 얘기를 많이 수용하여, 코드의 아름다움이나 간결성을 다소 포기하더라도 Debugging 시의 용이성 등을 고려하고 있습니다.

코드는 개발자의 개성이 드러나는 부분이기 때문에 모두가 공감할 수 있는 Best practice는 없는 거겠죠.

1명이 이 리뷰를 추천합니다. 공감 1 댓글 0

한줄평 (7건) 한줄평 총점 9.2

혜택 및 유의사항 ?
구매 평점5점
잘 읽었어요~
이 한줄평이 도움이 되었나요? 공감 0
c*******0 | 2021.11.09
평점5점
코딩 아예 모르는 사람입니다 기본편이라는 것만 보고 샀다가 후회중. 좀 더 배운뒤 봐야지
이 한줄평이 도움이 되었나요? 공감 0
m**e | 2017.03.01
평점5점
모두가 겪는 고민을 설명하는 책이다. 추천합니다.
이 한줄평이 도움이 되었나요? 공감 0
YES마니아 : 로얄 m*****i | 2016.10.11
  •  쿠폰은 결제 시 적용해 주세요.
1   16,020
뒤로 앞으로 맨위로 공유하기