훌륭한 프로그래머 되는 법: 프로젝트와 팀을 성공으로 이끄는 선배 개발자의 노하우

Book description

훌륭한 프로그래머로 살아가기 위해 필요한 코드 작성법, 자기 관리론, 일 처리 기법, 협업 기술을 다루는 IT 에세이다. 개발자 지망생은 물론 코드 유지보수 업무를 경험한 초중급 개발자를 대상으로, 개발자의 일과 삶 전반에 대한 실용적인 조언을 제공한다. 나아가 현장에서 활약 중인 국내 개발자 네 명의 생생한 경험담과 조언도 부록으로 함께 실었다. 훌륭한 프로그래머가 되기 위한 첫 걸음을 이 책과 함께 떼어 보자.

Table of contents

  1. 휼륭한 프로그래머 되는 법
  2. 지은이·옮긴이 소개
  3. 지은이의 말
  4. 옮긴이의 말
  5. 감사의 말
  6. 추천의 글
  7. 서문 (1/4)
  8. 서문 (2/4)
  9. 서문 (3/4)
  10. 서문 (4/4)
  11. PART 1 you.write(code);
    1. CHAPTER 1 코드에 신경 쓰기
      1. 1.1 코드가 중요하다
      2. 1.2 마치며
    2. CHAPTER 2 정돈된 코드 유지하기
      1. 2.1 보이는 것은 강력하다
      2. 2.2 의사소통
      3. 2.3 레이아웃
      4. 2.4 명명
      5. 2.5 스스로 가다듬기
      6. 2.6 마치며
    3. CHAPTER 3 코드 적게 쓰기
      1. 3.1 코드에 신경 써야 하는 이유
      2. 3.2 허술한 논리
      3. 3.3 중복
      4. 3.4 죽은 코드
      5. 3.5 주석
      6. 3.6 장황한 내용
      7. 3.7 나쁜 설계
      8. 3.8 공백
      9. 3.9 그래서 무엇을 해야 할까
      10. 3.10 마치며
    4. CHAPTER 4 코드 줄여 개선하기
      1. 4.1 제멋대로인 코드
      2. 4.2 불가피한 결과물
      3. 4.3 어떻게 해야 하나
      4. 4.4 죽은 코드 탐색
      5. 4.5 외과적 적출
      6. 4.6 마치며
    5. CHAPTER 5 코드베이스의 망령
      1. 5.1 외관
      2. 5.2 최신 기술
      3. 5.3 관례
      4. 5.4 설계 결정 사항
      5. 5.5 버그
      6. 5.6 마치며
    6. CHAPTER 6 경로 탐색하기
      1. 6.1 친구들의 작은 도움
      2. 6.2 단서 찾기
      3. 6.3 실행을 통해 배우기
      4. 6.4 마치며
    7. CHAPTER 7 똥통에서 뒹굴기
      1. 7.1 똥냄새 맡기
      2. 7.2 똥통 헤치고 나아가기
      3. 7.3 똥통 조사 결과
      4. 7.4 수렁에서 일하기
      5. 7.5 똥 치우기
      6. 7.6 수정하기
      7. 7.7 나쁜 코드? 나쁜 프로그래머
      8. 7.8 마치며
    8. CHAPTER 8 오류 무시하지 않기
      1. 8.1 메커니즘
      2. 8.2 광기
      3. 8.3 감형 사유
      4. 8.4 마치며
    9. CHAPTER 9 예상하지 못한 것을 예상하기
      1. 9.1 오류
      2. 9.2 스레딩
      3. 9.3 셧다운
      4. 9.4 이 이야기의 교훈
      5. 9.5 마치며
    10. CHAPTER 10 버그 사냥하기
      1. 10.1 경제적 우려
      2. 10.2 대비책
      3. 10.3 버그 잡기
      4. 10.4 재현할 수 없는 버그
      5. 10.5 마치며
    11. CHAPTER 11 테스트하기
      1. 11.1 왜 테스트하는가
      2. 11.2 테스트 유형
      3. 11.3 언제 테스트를 작성할까
      4. 11.4 언제 테스트를 실행하는가
      5. 11.5 무엇을 테스트할 것인가
      6. 11.6 좋은 테스트
      7. 11.7 테스트는 어떠해야 하는가
      8. 11.8 테스트 구조
      9. 11.9 어떤 코드도 혼자가 아니다
      10. 11.10 마치며
    12. CHAPTER 12 복잡도 다루기
      1. 12.1 블럽
      2. 12.2 케이스 스터디 : 블럽 복잡도 줄이기
      3. 12.3 라인
      4. 12.4 마지막 요소, 사람
      5. 12.5 마치며
    13. CHAPTER 13 두 개의 시스템에 대한 이야기
      1. 13.1 지저분한 대도시 (1/2)
      2. 13.1 지저분한 대도시 (2/2)
      3. 13.2 디자인 타운 (1/2)
      4. 13.2 디자인 타운 (2/2)
      5. 13.3 마치며
  12. PART 2 연습을 통해 완벽해진다
    1. CHAPTER 14 소프트웨어 개발이란
      1. 14.1 소프트웨어(음식) 성분
      2. 14.2 소프트웨어 개발은 예술이다
      3. 14.3 소프트웨어 개발은 과학이다
      4. 14.4 소프트웨어 개발은 스포츠다
      5. 14.5 소프트웨어 개발은 아이들 놀이다
      6. 14.6 소프트웨어 개발은 집안일이다
      7. 14.7 은유 과부화
      8. 14.8 마치며
    2. CHAPTER 15 규칙 가지고 놀기
      1. 15.1 더 많은 규칙이 필요해
      2. 15.2 규칙 정하기
      3. 15.3 마치며
    3. CHAPTER 16 간결하게 하기
      1. 16.1 간결한 설계
      2. 16.2 코드의 간결함
      3. 16.3 어리석지 않게, 간결하게 하라
      4. 16.4 가설은 간결함을 낮출 수 있다
      5. 16.5 너무 이른 최적화를 피하라
      6. 16.6 충분하게 간결하기
      7. 16.7 마치며
    4. CHAPTER 17 머리 쓰기
      1. 17.1 바보짓을 하지 말라
      2. 17.2 어리석은 습관성 행동을 피하라
      3. 17.3 당신은 생각해도 된다!
      4. 17.4 마치며
    5. CHAPTER 18 변하지 않는 것은 없다
      1. 18.1 용감한 수정
      2. 18.2 태도 바꾸기
      3. 18.3 수정하기
      4. 18.4 변경하면 할수록
      5. 18.5 마치며
    6. CHAPTER 19 코드 재사용 사례
      1. 19.1 재사용 사례 1 : 복사&붙여넣기
      2. 19.2 재사용 사례 2 : 재사용을 위한 설계
      3. 19.3 재사용 사례 3 : 개선하고 리팩토링하기
      4. 19.4 재사용 사례 4 : 매입하라, 아니면 시간 낭비다
      5. 19.5 마치며
    7. CHAPTER 20 효과적인 버전 관리
      1. 20.1 사용하거나 잃거나
      2. 20.2 무엇이든 하나를 골라라
      3. 20.3 적절한 것 저장하기
      4. 20.4 버전 관리 도구를 잘 활용하라
      5. 20.5 브랜치 : 숲을 보기 위해 나무 보기
      6. 20.6 코드의 고향
      7. 20.7 마치며
    8. CHAPTER 21 골키퍼 있다고 골 안 들어가랴
      1. 21.1 소프트웨어 개발 : 삽으로 비료 퍼 담기
      2. 21.2 잘못된 이분법 : QA와 개발자
      3. 21.3 코드를 고치려면 팀을 개선하라
      4. 21.4 QA에게 배포하기
      5. 21.5 오류 보고서를 받아들이는 자세
      6. 21.6 서로의 차이가 서로를 더 강하게 만든다
      7. 21.7 퍼즐 조각들
      8. 21.8 마치며
    9. CHAPTER 22 동결된 코드의 신기한 사례
      1. 22.1 코드 동결 추적하기
      2. 22.2 신세계의 질서
      3. 22.3 동결의 형태
      4. 22.4 분기를 통한 코드 관리
      5. 22.5 하지만 실제 동결은 아니다 !
      6. 22.6 동결 기간
      7. 22.7 동결을 느껴라
      8. 22.8 끝이 다가왔다
      9. 22.9 부동액
      10. 22.10 마치며
    10. CHAPTER 23 제발 저를 배포해주세요
      1. 23.1 절차의 일부
      2. 23.2 기계의 톱니바퀴
      3. 23.3 일찍 자주 배포하라
      4. 23.4 마치며
  13. PART 3 개인적인 일로 받아들이기
    1. CHAPTER 24 배움을 사랑하며 살기
      1. 24.1 무엇을 배워야 하나
      2. 24.2 배우는 방법 배우기
      3. 24.3 학습 모델
      4. 24.4 배우기 위해 가르쳐라
      5. 24.5 배우기 위해 실천하라
      6. 24.6 우리는 무엇을 배웠는가
      7. 24.7 마치며
    2. CHAPTER 25 테스트 기반 개발자
      1. 25.1 운전하기
      2. 25.2 성공은 안일함을 낳는다
      3. 25.3 시험 기간
      4. 25.4 테스트 기반 개발자
      5. 25.5 마치며
    3. CHAPTER 26 도전 즐기기
      1. 26.1 동기 부여
      2. 26.2 도전의 정의
      3. 26.3 금기사항
      4. 26.4 자극받기
      5. 26.5 마치며
    4. CHAPTER 27 부진 피하기
      1. 27.1 자신의 기술이야말로 투자 대상이다
      2. 27.2 실천 방안
      3. 27.3 고용 안정
      4. 27.4 마치며
    5. CHAPTER 28 윤리적인 프로그래머
      1. 28.1 코드를 대하는 태도
      2. 28.2 법률적 이슈
      3. 28.3 사람들에 대한 태도
      4. 28.4 히포크라테스 선서
      5. 28.5 마치며
    6. CHAPTER 29 언어에 대한 사랑
      1. 29.1 모든 언어를 사랑하라
      2. 29.2 자신의 언어를 사랑하라
      3. 29.3 언어와의 관계를 발전시켜라
      4. 29.4 완벽한 비유?
      5. 29.5 마치며
    7. CHAPTER 30 프로그래머의 자세
      1. 30.1 컴퓨터 앞에 앉는 기본 자세 (1/2)
      2. 30.1 컴퓨터 앞에 앉는 기본 자세 (2/2)
      3. 30.2 눈의 긴장
      4. 30.3 마치며
  14. PART 4 일 끝내기
    1. CAPTER 31 ‘더 열심히’보다는 ‘더 현명하게’
      1. 31.1 전투를 선택하라
      2. 31.2 전투 전략
      3. 31.3 마치며
    2. CHAPTER 32 끝나야 끝나는 것
      1. 32.1 아직 다 안됐어요?
      2. 32.2 거꾸로 개발하기 : 분해
      3. 32.3 ‘완료’ 정의하기
      4. 32.4 그냥 실행하라
      5. 32.5 마치며
    3. CHAPTER 33 교훈 얻기
      1. 33.1 불모지 개발
      2. 33.2 산 아래 서서
      3. 33.3 마치며
  15. PART 5 사람의 일
    1. CHAPTER 34 사람의 힘
      1. 34.1 무엇을 해야 하는가
      2. 34.2 전문가에 대해 파악하라
      3. 34.3 과거로부터의 통찰
      4. 34.4 마치며
    2. CHAPTER 35 생각이 중요하다
      1. 35.1 은유 확장하기
      2. 35.2 중요한 것은 의무감
      3. 35.3 Code++
      4. 35.4 작동하게 만들기
      5. 35.5 기준 정하기
      6. 35.6 다음 단계
      7. 35.7 마치며
    3. CHAPTER 36 말하기!
      1. 36.1 코드는 의사소통이다
      2. 36.2 사람과의 의사소통
      3. 36.3 팀원과의 대화
      4. 36.4 고객과의 대화
      5. 36.5 기타 의사소통
      6. 36.6 마치며
    4. CHAPTER 37 선언문
      1. 37.1 소프트웨어 개발에 관한 제네릭 선언문
      2. 37.2 세상의 많은 선언문들
      3. 37.3 하지만 유일한 진리인가
      4. 37.4 핵심 사항
      5. 37.5 마치며
    5. CHAPTER 38 코드 찬가
      1. 38.1 코딩은 사람의 문제다
      2. 38.2 마치며
    6. CHAPTER 39 태도가 핵심이다
      1. 39.1 태도
      2. 39.2 시작하라. 코드를 작성하라
  16. 부록 : 국내 개발자 이야기
    1. A. 더 나은 프로그래머 되는 법 (1/2)
    2. A. 더 나은 프로그래머 되는 법 (2/2)
    3. B. 개발자의 삶에 해볼 만한 네 가지 TODO
    4. C. 훌륭한 개발자가 되는 법 (1/2)
    5. C. 훌륭한 개발자가 되는 법 (2/2)
    6. D. 일일 커밋 : 프로그래밍 생활백서
  17. 찾아보기

Product information

  • Title: 훌륭한 프로그래머 되는 법: 프로젝트와 팀을 성공으로 이끄는 선배 개발자의 노하우
  • Author(s): 최원재, 강전희, 안재덕, 남윤화, 피트 구들리프
  • Release date: May 2016
  • Publisher(s): Hanbit Media, Inc.
  • ISBN: 9788968482304