>
>
>
>
좋은 코드, 나쁜 코드 : 프로그래머의 코드 개선법
톰 롱, 차건희 ㅣ 제이펍 ㅣ Good Code, Bad Code
  • 정가
30,000원
  • 판매가
27,000원 (10% ↓, 3,000원 ↓)
  • 발행일
2022년 05월 26일
  • 페이지수/크기/무게
436page/188*245*24/923g
  • ISBN
9791191600896/1191600890
  • 배송비
무료배송
  • 배송예정일
07/05(화) 배송완료예정
  • 현 보유재고
100 권 이상
  • 주문수량
  • 바로구매 북카트담기
  • 제휴몰 주문 시 고객보상, 일부 이벤트 참여 및 증정품 증정, 하루/당일 배송에서 제외되므로 참고 바랍니다.
  • 상세정보
  • 이 책의 가장 큰 특징은 나쁜 코드가 왜 나쁜 코드인지 설명하고, 나쁜 코드를 좋은 코드로 바꿔가는 과정을 직접 보여주는 것이다. 이를 통해 독자는 좋은 코드와 나쁜 코드를 구분할 줄 알고, 이론으로 배운 코드 작성 방법을 실제로 어떻게 적용하는지 알게 된다. 이 책을 통해 나쁜 코드를 좋은 코드로 개선하는 법을 배우고 누구나 함께 일하고 싶어 하는 좋은 개발자가 되어보자.
  • 읽기 쉽고, 기억하기 쉽고, 적용하기 쉬운 코드 작성법 프로그램을 만드는 것은 수많은 사람과 소통하는 일이다. 본인이 작성한 코드를 다른 사람이 볼 수 있고, 사용할 수도 있다. 다른 사람과 작업하지 않는다고 하더라도 미래의 나, 혹은 과거의 나와 함께하는 협업이다. 당장의 문제를 해결하기 위해 임시방편으로 작성한 코드가 쌓이다 보면 유지보수가 어렵고, 요구 사항이 변했을 때 대처가 까다롭게 된다. 다른 사람과 협업이 쉽고, 요구 사항의 변화에 적응할 수 있고, 유지보수가 쉬운 코드를 작성한다면 한층 더 좋은 소프트웨어를 만들 수 있을 것이다. 구글 소프트웨어 엔지니어가 소개하는 읽기 쉽고, 기억하기 쉽고, 적용하기 쉬운 코드 작성법을 익혀 좋은 개발자로 거듭나보자. 책은 총 3개의 부로 구성되어 있다. 1부 ‘이론’에서는 코드 작성의 접근 방식에 대한 이론적인 내용을 다룬다. 코드 품질에 대한 이야기부터 추상화 계층, 코드 계약, 오류에 대한 이야기를 중점적으로 설명한다. 2부 ‘실전’에서는 본격적으로 나쁜 코드를 어떻게 좋은 코드로 바꿀지 앞에서 배운 이론을 바탕으로 여섯 가지 원칙과 함께 구체적인 예시를 살펴본다. 3부 ‘단위 테스트’에서는 효과적인 단위 테스트를 위한 주요 원칙과 지침을 소개한다. 책의 예제 코드는 의사코드로 작성되었으나 자바, C#, 타입스크립트, 자바스크립트, C++, 스위프트, 코틀린, 다트 2 등 정적 타입의 객체 지향 프로그래밍 언어를 바탕으로 한다. 이 책의 가장 큰 특징은 나쁜 코드가 왜 나쁜 코드인지 설명하고, 나쁜 코드를 좋은 코드로 바꿔가는 과정을 직접 보여주는 것이다. 이를 통해 독자는 좋은 코드와 나쁜 코드를 구분할 줄 알고, 이론으로 배운 코드 작성 방법을 실제로 어떻게 적용하는지 알게 된다. 이 책을 통해 나쁜 코드를 좋은 코드로 개선하는 법을 배우고 누구나 함께 일하고 싶어 하는 좋은 개발자가 되어보자. 주요 내용 ■ 문장처럼 읽히는 함수 작성법 ■ 버그 없는 코드 작성법 ■ 나쁜 코드를 알아내는 방법 ■ 자신과 팀을 위한 시간 절약법 대상 독자 ■ 소프트웨어 개발 경험이 있는 주니어 개발자 ■ 초급 개발자들을 가이드해야 하는 시니어 개발자
  • 옮긴이 머리말 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 코드 줄 수를 고정하지 ...
  • 고품질 코드는 일반적으로 좀 더 신뢰할 수 있고, 유지보수가 쉬우며, 버그가 적은 소프트웨어를 생산한다. 코드 품질을 높이는 것에 관한 많은 원칙들은 소프트웨어가 처음에 만들어지는 방식을 보장하는 것뿐만 아니라, 이후에 요구 사항이 진화하고 새로운 상황이 등장하더라도 그 방식을 계속 유지할 수 있도록 하는 것에 관심을 둔다. (4쪽) 코드를 구성하는 방법은 코드 품질의 기본적인 측면 중 하나이며, 코드를 잘 구성한다는 것은 간결한 추상화 계층을 만드는 것으로 귀결될 때가 많다. 이 장에서는 이것이 무엇을 의미하는지 설명하고, 문제를 추상화 계층으로 나누고, 나눠진 추상화 계층을 반영하도록 코드를 구성하는 방법을 살펴볼 것이다. 또한, 이렇게 할 때 어떻게 가독성, 모듈성, 재사용성, 일반화성 및 테스트 용이성이 크게 개선되는지를 살펴본다. (27쪽) 여러분의 코드는 자신에게 가장 중요할지 모르지만 회사의 다른 개발자들은 아마 그것에 대해 잘 알지 못할 것이고, 그들이 여러분의 코드를 접할 때 그 코드가 왜 존재하는지 혹은 무슨 일을 수행하는지에 대한 사전 지식을 가지고 있지 않을 수 있다. 이 경우 다른 개발자가 의도치 않게 잘 실행되던 코드를 작동하지 않게 하거나 오용하는 방식으로 코드를 추가하거나 수정할 가능성이 크다. (60쪽) 가독성은 본질적으로 주관적인 것이며 그것이 정확히 무엇을 의미하는지 확실하게 정의하기는 어렵다. 가독성의 핵심은 개발자가 코드의 기능을 빠르고 정확하게 이해할 수 있도록 하는 것이다. 실제로 이렇게 하려면 다른 사람의 관점에서 보았을 때, 코드가 혼란스럽거나 잘못 해석될 수 있는지를 상상하고 공감해야 할 때가 많다. (123쪽) 단위 테스트에 대한 정확한 정의가 없다고 해도 일반적으로 큰 문제가 되지 않는다. 단위 테스트를 구성하고 있는 것이 정확히 무엇인지, 그리고 정확한 정의가 없음에도 일부러 정의를 고안해 내고 자신이 작성하는 테스트가 그 정의에 정확히 부합하는지에 대해 너무 집착하지 않는 것이 좋다. 궁극적으로 중요한 것은 코드를 잘 테스트하고 이 작업을 유지보수할 수 있는 방법으로 수행하는 점이다. (310쪽)
  • 톰 롱 [저]
  • 구글의 소프트웨어 엔지니어다. 모바일 디스플레이 광고의 자동화 및 최적화 기술팀의 테크 리드이자 팀장으로 일하며 초급 소프트웨어 엔지니어들에게 전문적인 코딩 모범 사례에 대해 정기적으로 멘토링하고 있다.
  • 차건희 [저]
  • 미국 로스앤젤레스의 Shell Recharge Solutions에서 자바 백엔드 테크 리드로 일하고 있다. 자바, 스프링 부트, 메시지 큐, 일래스틱서치, 레디스 등 자바 백엔드의 전반적인 기술 스택 및 성능 향상에 관심이 있다. 옮긴 책으로는 《프로그래머의 뇌》(제이펍, 2022), 《몽고디비 인 액션》(제이펍, 2012)이 있다.
  • 전체 0개의 구매후기가 있습니다.

인터파크도서는 고객님의 단순 변심에 의한 교환과 반품에 드는 비용은 고객님이 지불케 됩니다.
단, 상품이나 서비스 자체의 하자로 인한 교환 및 반품은 무료로 반품 됩니다.
교환 및 반품이 가능한 경우
상품을 공급 받은 날로부터 7일이내 가능
공급받으신 상품의 내용이 표시, 광고 내용과 다르거나 다르게 이행된 경우에는 공급받은 날로부터 3개월 이내,
   혹은 그사실을 알게 된 날 또는 알 수 있었던 날로부터 30일 이내
상품에 아무런 하자가 없는 경우 소비자의 고객변심에 의한 교환은 상품의 포장상태 등이 전혀 손상되지 않은 경우에 한하여 가능
교환 및 반품이 불가능한 경우
구매확정 이후(오픈마켓상품에 한함)
고객님의 책임 있는 사유로 상품 등이 멸실 또는 훼손된 경우
   (단, 상품의 내용을 확인하기 위하여 포장 등을 훼손한 경우는 제외)
시간이 지남에 따라 재판매가 곤란할 정도로 물품의 가치가 떨어진 경우
포장 개봉되어 상품 가치가 훼손된 경우
다배송지의 경우 반품 환불
다배송지의 경우 다른 지역의 반품을 동시에 진행할 수 없습니다.
1개 지역의 반품이 완료된 후 다른 지역 반품을 진행할 수 있으므로, 이점 양해해 주시기 바랍니다.
중고상품의 교환
중고상품은 제한된 재고 내에서 판매가 이루어지므로, 교환은 불가능합니다.
오픈마켓 상품의 환불
오픈마켓상품에 대한 책임은 원칙적으로 업체에게 있으므로, 교환/반품 접수시 반드시 판매자와 협의 후 반품 접수를 하셔야하며,
   반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가능할 수 있으니 유의하시기 바랍니다.
배송예정일 안내
인터파크 도서는 모든 상품에 대해 배송완료예정일을 웹사이트에 표시하고 있습니다.
<인터파크 직배송 상품>
상품은 월~토요일 오전 10시 이전 주문분에 대하여 당일 출고/당일 배송완료를 보장하는 상품입니다.
상품은 서울지역/평일 주문분은 당일 출고/익일 배송완료를 보장하며,
서울외지역/평일 주문분의 경우는 오후 6시까지 주문분에 대하여 익일 배송완료를 보장하는 상품입니다.
(단, 월요일은 12시까지 주문에 한함)
상품은, 입고예정일(제품출시일)+택배사배송일(1일)에 배송완료를 보장합니다.
~ 상품은 유통특성상 인터파크에서 재고를 보유하지 않은 상품으로
주문일+기준출고일+택배사배송일(1일)에 배송완료를 보장합니다.(토/공휴일은 배송기간에 포함되지 않습니다.)
※기준출고일:인터파크가 상품을 수급하여 물류창고에서 포장/출고하기까지 소요되는 시간
<업체 직접배송/오픈마켓 상품>
~ 상품은 업체가 주문을 확인하고, 출고하기까지 걸리는 시간입니다.
주문일+기준출고일+택배사배송일(2일)에 배송완료를 보장합니다.(토/공휴일은 배송기간에 포함되지 않습니다.)
※5일이내 출고가 시작되지 않을시, 오픈마켓 상품은 자동으로 주문이 취소되며, 고객님께 품절보상금을 지급해 드립니다.
배송비 안내
도서(중고도서 포함)만 구매하시면 : 배송비 2,000원 (1만원이상 구매 시 무료배송)
음반/DVD만 구매하시면 : 배송비 1,500원 (2만원이상 구매 시 무료배송)
잡지/만화/기프트만 구매하시면 : 배송비 2,000원 (2만원이상 구매 시 무료배송)
도서와 음반/DVD를 함께 구매하시면 : 배송비 1,500원 1만원이상 구매 시 무료배송)
도서와 잡지/만화/기프트/중고직배송상품을 함께 구매하시면 : 2,000원 (1만원이상 구매 시 무료배송)
업체직접배송상품을 구매시 : 업체별로 상이한 배송비 적용

   * 세트상품의 경우 부분취소 시 추가 배송비가 부과될 수 있습니다.
   * 북카트에서 배송비없애기 버튼을 클릭하셔서, 동일업체상품을 조금 더 구매하시면, 배송비를 절약하실 수 있습니다.
해외배송 안내
인터파크도서에서는 국내에서 주문하시거나 해외에서 주문하여 해외로 배송을 원하실 경우 DHL과 특약으로 책정된 요금표에
   의해 개인이 이용하는 경우보다 배송요금을 크게 낮추며 DHL(www.dhl.co.kr)로 해외배송 서비스를 제공합니다.
해외배송은 도서/CD/DVD 상품에 한해 서비스하고 있으며, 다른 상품을 북카트에 함께 담으실 경우 해외배송이 불가합니다.
해외주문배송 서비스는 인터파크 도서 회원 가입을 하셔야만 신청 가능합니다.
알아두세요!!!
도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 취소될 수 있습니다.
오픈마켓업체의 배송지연시 주문이 자동으로 취소될 수 있습니다.
출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 기준으로 배송됩니다.
유통의 특성상 출고기간은 예정보다 앞당겨지거나 늦춰질 수 있습니다.
택배사 배송일인 서울 및 수도권은 1~2일, 지방은 2~3일, 도서, 산간, 군부대는 3일 이상의 시간이 소요됩니다.
  • 0개
  • 0개