본문 바로가기

도서 소개

좋은 코드, 나쁜 코드

2023 세종도서 우수학술도서 선정

프로그래머의 코드 품질 개선법

 

도서구매 사이트(가나다순)

[교보문고] [도서11번가] [알라딘] [예스이십사] [인터파크] [쿠팡]

 

전자책 구매 사이트(가나다순)

교보문고 / 구글북스 / 리디북스 / 알라딘 / 예스이십사

 

출판사 제이펍
저작권사 Manning Publications
원서명 Good Code, Bad Code(ISBN 9781617298936)
도서명 좋은 코드, 나쁜 코드
부제 프로그래머의 코드 품질 개선법
지은이 톰 롱
옮긴이 차건회
감수자 (없음)
시리즈 (없음)
출판일 2022년 5월 26일
페이지 436쪽
판 형 46배판변형(188*245*21.1)
제 본 무선(soft cover)
정 가 30,000원
ISBN 979-11-91600-89-6 (93000)
키워드 프로그래밍 / 코드 품질 / 코드 계약 / 디자인 패턴 / 추상화 계층 / 리팩터링 / 단위 테스트 / 디버깅 / 아키텍처 / 프로그래머 / 어서션 / 체크 / 클래스 / 테스트 더블
분 야 컴퓨터 공학 / 프로그래밍 일반

 

관련 사이트

아마존 도서 소개 페이지
저작권사 도서 소개 페이지

 

관련 포스트

2022.05.13 - [출간 전 책 소식] - 좋은 개발자는 좋은 코드로 말한다!

 

관련 파일 다운로드

■ (없음)

 

관련 도서

프로그래머의 뇌

쏙쏙 들어오는 함수형 코딩



 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음의 자료를 보내드리겠습니다.)
■ 본문의 그림과 표

 

미리보기(차례, 옮긴이 머리말, 베타리더 후기, 머리말, 이 책에 대하여, 1장 '코드 품질' 일부, 2장 '추상화 계층' 일부, 11장 '단위 테스트의 실제' 일부)

 

 
좋은코드나쁜코드_sample.pdf
3.43MB

 

정오표 페이지
■ (등록되는 대로 링크를 걸어드리겠습니다)

 

도서구매 사이트(가나다순)

[교보문고] [도서11번가] [알라딘] [예스이십사] [인터파크] [쿠팡]

 

전자책 구매 사이트(가나다순)

교보문고 / 구글북스 / 리디북스 / 알라딘 / 예스이십사

 

도서 소개

구글 엔지니어가 말하는 좋은 코드 작성법
좋은 코드를 작성하기 위한 이론과 실전을 소개한다. 단순히 해야 할 일과 하지 말아야 할 일을 나열하기보다, 여섯 가지 원칙을 바탕으로 각 개념과 기술의 장단점, 그리고 이면의 핵심 논리를 설명한다. 책에서 설명하는 즉시 사용 가능한 수십 가지의 기술을 익힌다면, 숙련된 프로그래머의 사고법과 코드 작성의 노하우를 이해할 수 있다. 효과적인 테스트 방법도 설명하므로 더 나은 코드를 작성하는 데 도움을 줄 것이다.

 

대상 독자

■ 소프트웨어 개발 경험이 있는 주니어 개발자
■ 초급 개발자들을 가이드해야 하는 시니어 개발자

 

주요 내용

■ 문장처럼 읽히는 함수 작성법
■ 버그 없는 코드 작성법
■ 나쁜 코드를 알아내는 방법
■ 자신과 팀을 위한 시간 절약법

 

추천사

“당신의 도구를 날카롭게 해줄 지식의 보고”
- 조 아이번스(캘리포니아 지역 MLS)

“소프트웨어 개발자를 위한 실용적 조언과 유용한 팁”
- 조지 토머스(맨해튼 어소시에이츠)

“개발자가 고품질의 효과적인 코드를 작성하는 데 실질적으로 도움이 되는 책”
- 크리스토퍼 빌라누에바(컨설턴트)

 

지은이 소개

톰 롱(Tom Long)
구글의 소프트웨어 엔지니어다. 모바일 디스플레이 광고의 자동화 및 최적화 기술팀의 테크 리드이자 팀장으로 일하며 초급 소프트웨어 엔지니어들에게 전문적인 코딩 모범 사례에 대해 정기적으로 멘토링하고 있다.

 

옮긴이 소개

차건회
미국 로스앤젤레스의 Shell Recharge Solutions에서 자바 백엔드 테크 리드로 일하고 있다. 자바, 스프링 부트, 메시지 큐, 일래스틱서치, 레디스 등 자바 백엔드의 전반적인 기술 스택 및 성능 향상에 관심이 있다. 옮긴 책으로는 《프로그래머의 뇌》(제이펍, 2022), 《몽고디비 인 액션》(제이펍, 2012)이 있다.

 

차례

옮긴이 머리말 xiii
베타리더 후기 xv
머리말 xviii
감사의 글 xix
이 책에 대하여 xx
장별 요약 xxv
표지에 대하여 xxvi

PART I 이론
CHAPTER 1 코드 품질 3

1.1 코드는 어떻게 소프트웨어가 되는가 5
1.2 코드 품질의 목표 8
1.3 코드 품질의 핵심 요소 12
1.4 고품질 코드 작성은 일정을 지연시키는가? 23
요약 25

CHAPTER 2 추상화 계층 27
2.1 널값 및 의사코드 규약 28

더보기

2.2 왜 추상화 계층을 만드는가? 29
2.3 코드의 계층 33
2.4 마이크로서비스는 어떤가? 54
요약 56

CHAPTER 3 다른 개발자와 코드 계약 57
3.1 자신의 코드와 다른 개발자의 코드 58
3.2 여러분이 작성한 코드의 사용법을 다른 사람들은 어떻게 아는가? 61
3.3 코드 계약 64
3.4 체크 및 어서션 73
요약 77

CHAPTER 4 오류 79
4.1 복구 가능성 80
4.2 견고성 vs 실패 84
4.3 오류 전달 방법 93
4.4 복구할 수 없는 오류의 전달 108
4.5 호출하는 쪽에서 복구하기를 원할 수도 있는 오류의 전달 108
4.6 컴파일러 경고를 무시하지 말라 116
요약 118

PART II 실전
CHAPTER 5 가독성 높은 코드를 작성하라 123
5.1 서술형 명칭 사용 123
5.2 주석문의 적절한 사용 127
5.3 코드 줄 수를 고정하지 말라 132
5.4 일관된 코딩 스타일을 고수하라 134
5.5 깊이 중첩된 코드를 피하라 137
5.6 함수 호출도 가독성이 있어야 한다 141
5.7 설명되지 않은 값을 사용하지 말라 146
5.8 익명 함수를 적절하게 사용하라 150
5.9 프로그래밍 언어의 새로운 기능을 적절하게 사용하라 157
요약 159

CHAPTER 6 예측 가능한 코드를 작성하라 161
6.1 매직값을 반환하지 말아야 한다 162
6.2 널 객체 패턴을 적절히 사용하라 169
6.3 예상치 못한 부수 효과를 피하라 177
6.4 입력 매개변수를 수정하는 것에 주의하라 183
6.5 오해를 일으키는 함수는 작성하지 말라 186
6.6 미래를 대비한 열거형 처리 191
6.7 이 모든 것을 테스트로 해결할 수는 없는가? 197
요약 198

CHAPTER 7 코드를 오용하기 어렵게 만들라 201
7.1 불변 객체로 만드는 것을 고려하라 202
7.2 객체를 깊은 수준까지 불변적으로 만드는 것을 고려하라 213
7.3 지나치게 일반적인 데이터 유형을 피하라 219
7.4 시간 처리 226
7.5 데이터에 대해 진실의 원천을 하나만 가져야 한다 233
7.6 논리에 대한 진실의 원천을 하나만 가져야 한다 237
요약 242

CHAPTER 8 코드를 모듈화하라 243
8.1 의존성 주입의 사용을 고려하라 244
8.2 인터페이스에 의존하라 251
8.3 클래스 상속을 주의하라 253
8.4 클래스는 자신의 기능에만 집중해야 한다 265
8.5 관련 있는 데이터는 함께 캡슐화하라 268
8.6 반환 유형에 구현 세부 정보가 유출되지 않도록 주의하라 272
8.7 예외 처리 시 구현 세부 사항이 유출되지 않도록 주의하라 275
요약 280

CHAPTER 9 코드를 재사용하고 일반화할 수 있도록 하라 281
9.1 가정을 주의하라 282
9.2 전역 상태를 주의하라 287
9.3 기본 반환값을 적절하게 사용하라 295
9.4 함수의 매개변수를 주목하라 300
9.5 제네릭의 사용을 고려하라 303
요약 306

PART III 단위 테스트
CHAPTER 10 단위 테스트의 원칙 309
10.1 단위 테스트 기초 310
10.2 좋은 단위 테스트는 어떻게 작성할 수 있는가? 313
10.3 퍼블릭 API에 집중하되 중요한 동작은 무시하지 말라 319
10.4 테스트 더블 325
10.5 테스트 철학으로부터 신중하게 선택하라 344
요약 346

CHAPTER 11 단위 테스트의 실제 347
11.1 기능뿐만 아니라 동작을 시험하라 348
11.2 테스트만을 위해 퍼블릭으로 만들지 말라 353
11.3 한 번에 하나의 동작만 테스트하라 361
11.4 공유 설정을 적절하게 사용하라 367
11.5 적절한 어서션 확인자를 사용하라 380
11.6 테스트 용이성을 위해 의존성 주입을 사용하라 384
11.7 테스트에 대한 몇 가지 결론 388
요약 389

APPENDIX A 초콜릿 브라우니 레시피 391
APPENDIX B 널 안전성과 옵셔널 393
APPENDIX C 추가 예제 코드 397

찾아보기 401

 

■ 제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

네이버 책 포스트 유튜브 인스타그램 트위터 페이스북