나쁜 프로그래밍 습관 - 동료들 뒷목 잡게 만드는 -

고객평점
저자칼 비쳐
출판사항영진닷컴, 발행일:2020/03/20
형태사항p.254 국판:23
매장위치컴퓨터부(B2) , 재고문의 : 051-816-9500
ISBN9788931461954 [소득공제]
판매가격 18,000원   16,200원  (인터넷할인가:10%)
포인트 810점
배송비결제주문시 결제
  • 주문수량 

총 금액 : 0원

책 소개

생산적인 개발자, 함께 일하고 싶은 개발자가 되기 위해
 꼭 알아야 하는 개발 규칙!

현대의 개발은 협업의 시대다. 다수가 함께 일하는 협업을 위해서는 코드의 가독성을 높이는 작업이 중요하다. 그래야만 다른 개발자가 개발한 코드를 빠르게 파악할 수 있고 신속한 개발과 유지보수가 가능하다. 이렇듯 협업의 중요성이 강조되는 때에 코딩의 기본기를 다지기 위해 이 책은 좋은 대안이 된다.
이 책은 개발자라면 꼭 알아야 할 코딩의 기본적인 규칙을 담고 있다. 변수 네이밍, 조건문과 반복문의 작성, 디버깅 등의 내용을 다루며 주로 코딩과 관련된 내용에 집중한다. 다소 가볍고 유머스러운 방식으로 작성되어 버그를 유발하고 동료를 화나게 하는 나쁜 개발 방식을 제시하는데, 이러한 나쁜 개발 방식을 통해 코딩 시 피해야 할 규칙과 따라야 할 규칙을 배울 수 있으며, 결과적으로 무엇이 좋은 개발 방식인지 깨닫게 될 것이다.

CHAPTER 1 프로그래밍 배우기
 이 챕터는 코딩을 하기 위한 준비 과정으로 프로그래밍을 배우는 방법과 개발 도구를 선정하는 방법부터 시작한다. 나쁜 개발자가 되고 싶은 당신을 위해, 이 챕터는 이런 과정을 엉망으로 만들도록 도와줄 것이다.

CHAPTER 2 구성과 구조
 코드 배치는 그 코드가 얼마나 이해하기 쉬운지에 영향을 미치는데, 이 챕터에서는 코드 배치를 이용해 알아볼 수 없는 코드를 만드는 방법을 배운다. 또한, 코드 배치와 구조는 어떻게 주석을 다는가에 따라서 더욱 끔찍한 결과를 만들어낼 수도 있다. 당연히 주석이 프로젝트 전체에 해를 끼치는 방법도 알아본다.

CHAPTER 3 변수
 변수가 없다면 프로그램이 작동하는 과정에서 정보를 기록하고 추적할 방법은 없다. 변수는 프로그래밍에서 아주 기본적인 부분이기 때문에, 변수를 악용하는 수많은 방법을 배우는 것은 매우 즐거운 일이 될 것이다. 이번 챕터에서는 그중에서도 정말 악명 높고 딱 봐도 안 좋은 예제들을 살펴본다.

CHAPTER 4 조건문
 이 챕터에서는 조건문을 잘못 사용하여 잘못된 조치를 취하거나 심지어 어떤 조치도 취하지 못하는 방법을 보여 줄 것이다. 또한 엉성하고 혼란스러운 코드 사이에 어떻게 자신의 흔적을 감추고 버그를 숨길 수 있는지 알게 될 것이다.

CHAPTER 5 반복문
 조건문처럼 반복문도 프로그래밍의 기본적인 제어 구조다. 반복문은 조건문보다 더 복잡하며, 프로그램에 혼란과 파괴를 가져올 가능성이 더 크다. 이번 챕터에서는 이러한 잠재력을 활용하는 몇 가지 기본 방법에 대해 설명한다.

CHAPTER 6 서브루틴
 서브루틴의 목적은 도움을 주는 것이다. 각각의 기능 단위에 해당하는 서브루틴을 작성해야 한다. 그러기 위해서 서브루틴은 논리적이며, 작고, 단순해야 한다. 하지만 단지 돕기 위함이 서브루틴이 존재하는 이유는 아니다. 이 챕터를 마칠 때쯤이면 서브루틴을 약하고, 비논리적이고, 답답할 정도로 복잡하게 만드는 방법을 배우게 될 것이다.

CHAPTER 7 오류 처리
 오류 처리를 엉망으로 만드는 것은 프로그램에 문제를 일으키는 좋은 방법이다. 이번 챕터에서는 버그가 번성하는 데 필요한 공간을 제공하는 다양한 방법에 대해서 다룰 것이다.

CHAPTER 8 모듈
 모듈은 소프트웨어 프로그램이 거대해짐에 따라 복잡성을 관리하기 위한 방법이 필요할 때 도움이 되며, 프로그램을 좀 더 유연하게 만들 수 있다. 이 챕터에서는 이러한 모듈의 유용성을 무력화시키는 방식으로 모듈을 작성하는 법을 보여 준다.

CHAPTER 9 클래스와 객체
 객체지향 프로그래밍은 1990년대에 소프트웨어 개발에 있어서 지배적이었다. 그 중요성은 최근까지 계속되고 있으며, 대부분의 현대적이고 대중적인 언어들이 객체지향 프로그래밍의 패러다임을 지지하고 있다. 그리고 현대판 디지털 트로이 목마처럼 다양한 프로젝트에 잠입했다. 즉, 이번 챕터에서 다룰 사악한 교훈과 비열한 속임수가 오늘날 소프트웨어 환경에 널리 적용될 수 있다는 뜻이다.

CHAPTER 10 테스트
 이번 챕터에서는 코드의 개별 유닛을 테스트하는 초기 테스트 단계에 초점을 맞춘다. 버그를 노출시킬 수 있는 위협적인 테스트로부터 코드를 보호하는 방법과 동료에게 큰 혼란을 주는 테스트 작성 방법을 보여 준다.

CHAPTER 11 디버깅
 다른 프로그래밍 영역과 마찬가지로, 디버깅도 여러 다른 방식으로 접근할 수 있다. 때로는 디버깅을 해야 할 수도 있지만 잘할 필요는 없다. 아 챕터에서는 무능하게 조사하여 디버깅하는 방법, 단서를 남기지 않는 코드를 작성하여 디버깅을 힘들게 하는 방법에 대해 알아본다.

 

작가 소개

지은이 : 칼 비쳐
작가와 소프트웨어 전문가로 살아가고 있다. 작가일 때는 과학과 기술에 집중한다. 유용하지만 어려운 아이디어를 받아들여서 사람들이 이해하기 쉬운 방식으로 설명하는 것을 좋아한다. 소프트웨어 엔지니어로 일하면서 컴퓨터 공학 분야에 박사 학위를 취득했으며 IT 운영 관리를 할 수 있는 회사를 공동 창업하였다.


옮긴이 : 황현우
세종대학교 대학원 유무선 네트워크 알고리즘을 전공하여 석사학위를 취득했으며, 개인적인 선망의 대상이었던 개발자가 되고 싶어서 삼성SDS에 입사하게 되었다. 인프라 장비의 운영을 돕는 시스템 관련 프로젝트에서 개발PL, Web Frontend/Backend 개발을 주로 수행했다. 새로운 언어나 프레임워크에 관심이 많으며 최근에는 Frontend 기술을 관심있게 보고 있다.


감수 : 체임 크라우스
현재 Kansas의 Leavenworkth에서 미군의 시뮬레이션 전문가로 일하고 있다. 시카고 대학의 정치학 전공이기는 하지만, 컴퓨터 프로그래밍과 전자 공학을 독학했다. 첫 컴퓨터 게임을 BASIC 언어로 개발하였고, 카세트 테이프에 프로그램을 저장하였다. 아마추어 무선을 통해서 전자 공학에 입문했고, 아두이노와 라즈베리 파이는 컴퓨터, 프로그래밍, 그리고 전자공학을 묶어서 하나의 취미로 만드는 매개체가 되었다.

 

목 차

CHAPTER 1 프로그래밍 배우기
01 프로그래밍을 배우는 안 좋은 방법
02 도구를 고르는 안 좋은 방법

CHAPTER 2 구성과 구조
01 일관성 없고 엉망으로 띄어쓰기 하기
02 코드에 쓸모없는 것 더하기
03 형편없는 주석 달기

CHAPTER 3 변수
01 불명확한 이름 사용하기
02 변수 선언을 시간 낭비로 여기기
03 변수의 적용 범위를 최대화하기
04 타입 체계를 완전히 악용하기
05 NULL - 종말의 신호

CHAPTER 4 조건문
01 대안은 잊기
02 표현을 악용하기
03 범위상에 공백을 넣거나 범위 겹치기

CHAPTER 5 반복문
01 잘못된 타입 선택하기
02 무한 루프 즐기기
03 잘못된 반복문 종료 만들기
04 반복문을 길고 복잡하게 만들기

CHAPTER 6 서브루틴
01 서브루틴의 사이즈를 아주 크게 하기
02 이해하기 힘들게 만들기
03 매개 변수를 악용하기
04 반환값으로 골탕먹이기

CHAPTER 7 오류 처리
01 모든 것이 문제없이 잘 될 거라고 가정하기
02 문제를 기억의 저편으로 보내 버리기
03 해결 미루기
04 어지럽히기

CHAPTER 8 모듈
01 혼란스럽게 불러오기
02 재사용 막기
03 강한 의존성 만들기

CHAPTER 9 클래스와 객체
01 알 수 없는 목적의 클래스 만들기
02 객체를 유연하지 않게 만들기
03 다형성 피하기
04 상속을 남용하거나 오용하기

CHAPTER 10 테스트
01 코드 보호하기
02 테스트 코드에 함정 파기

CHAPTER 11 디버깅
01 비체계적으로 수사하기
02 디버깅 어렵게 하기
03 제대로 된 수정 피하기 

 

역자 소개

01. 반품기한
  • 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
  • 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품 배송비
반품사유 반품 배송비 부담자
단순변심 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다.
상품의 불량 또는 오배송 고객 부담이 아닙니다.
03. 배송상태에 따른 환불안내
환불안내
진행 상태 결제완료 상품준비중 배송지시/배송중/배송완료
어떤 상태 주문 내역 확인 전 상품 발송 준비 중 상품이 택배사로 이미 발송 됨
환불 즉시환불 구매취소 의사전달 → 발송중지 → 환불 반품회수 → 반품상품 확인 → 환불
04. 취소방법
  • 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
  • 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
환불시점
결제수단 환불시점 환불방법
신용카드 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) 신용카드 승인취소
계좌이체 실시간 계좌이체 또는 무통장입금
취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준)
계좌입금
휴대폰 결제 당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소
전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준)
당일취소 : 휴대폰 결제 승인취소
익월취소 : 계좌입금
포인트 취소 완료 후, 당일 포인트 적립 환불 포인트 적립
06. 취소반품 불가 사유
  • 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
  • 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
  • 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
  • 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
  • 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
  • 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.

환불불가
상품군 취소/반품 불가사유
의류/잡화/수입명품 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우
계절상품/식품/화장품 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
가전/설치상품 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.)
자동차용품 상품을 개봉하여 장착한 이후 단순변심의 경우
CD/DVD/GAME/BOOK등 복제가 가능한 상품의 포장 등을 훼손한 경우
내비게이션, OS시리얼이 적힌 PMP 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우
노트북, 테스크탑 PC 등 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우