|
| 1 | +# Part2 02 연습을 통해 완벽해진다. |
| 2 | + |
| 3 | +## 더 나은 프로그래머 되는 법 14~23장 |
| 4 | + |
| 5 | +### 14장 소프트웨어 개발이란 |
| 6 | + |
| 7 | +`Summary` |
| 8 | +- 스포츠, 놀이, 집안일의 예시를 통해 소프트웨어 개발의 본질을 이해할 수 있음 |
| 9 | +- 영상 시청만으로는 실력이 늘지 않으며, 직접 코딩하며 연습해야 한다 |
| 10 | +- 끊임없이 학습하고 새로운 것을 배우는 자세를 가져야 한다 |
| 11 | +- 겸손한 마음가짐으로 개발에 임해야 한다 |
| 12 | +- 코드를 작성할 때마다 "왜?"라는 질문을 던져 명확한 코드를 만들어야 한다 |
| 13 | +- 코드 정리와 같은 지루한 작업도 피하지 말고 받아들여야 한다 |
| 14 | +- 복잡한 코드를 정리하고 개선하는 과정을 즐기는 자세가 필요하다 |
| 15 | + |
| 16 | +`Topics` |
| 17 | +- 최근들어 배웠던 부분중 인상깊었던 것이 있나요? |
| 18 | + |
| 19 | +### 15장 규칙 가지고 놀기 |
| 20 | + |
| 21 | +`Summary` |
| 22 | +- 규칙은 협업을 위해 꼭 필요하다. 신입도 바로 와서 할 수 있을 정도의 규칙 |
| 23 | +- 세가지 원칙 |
| 24 | + - 간결하게 하라 |
| 25 | + - 머리를 쓰라 |
| 26 | + - 변하지 않는 것은 없다 |
| 27 | + - 규칙을 정하되 언제든 변할 수 있다고 생각해야하 함, 규칙은 깨지라고 존재하는 것 |
| 28 | + - 팀 규칙을 만들어라 |
| 29 | + |
| 30 | +`Topics` |
| 31 | +- 최근 팀 내에서 세운 규칙이 뭐가 있을까요? |
| 32 | +- |
| 33 | +### 16장 간결하게 하기 |
| 34 | + |
| 35 | +`Summary` |
| 36 | +- 코드의 간결함은 두 가지 방향으로 나타날 수 있다 |
| 37 | + - 잘못된 간결함 |
| 38 | + - 지나치게 단순화된 코드 |
| 39 | + - 깊은 고민 없이 작성된 코드 |
| 40 | + - 복잡한 문제를 과도하게 단순화한 코드 |
| 41 | + - 좋은 간결함 |
| 42 | + - 깊은 고민과 설계가 반영된 코드 |
| 43 | + - 직관적으로 이해할 수 있는 코드 |
| 44 | + - 별도의 설명 없이도 자연스럽게 사용할 수 있는 인터페이스 |
| 45 | + - 복잡한 로직을 깔끔한 인터페이스로 추상화한 코드 |
| 46 | + - 적절한 단위로 모듈화된 설계 |
| 47 | +- 문제를 지나치게 단순화하면 오히려 복잡한 코드가 만들어질 수 있다 |
| 48 | +- 정확한 문제 분석과 설계를 통해 진정한 간결함을 달성할 수 있다 |
| 49 | +- 결론: 좋은 간결함은 초기 설계 단계에서부터 고려되어야 한다 |
| 50 | + |
| 51 | +`Topics` |
| 52 | +- 설계나 구조 수준에서 최적화 하신 사례가 있으신가요? |
| 53 | + |
| 54 | +### 17장 머리 쓰기 |
| 55 | + |
| 56 | +`Summary` |
| 57 | +- 단순한 문제는 단순하게, 복잡한 문제는 적절히 해결하기 |
| 58 | +- KISS 원칙: 불필요한 복잡성 제거, 중복 최소화 |
| 59 | +- 코드 작성 전 충분한 설계와 고민이 필요 |
| 60 | +- 실수를 두려워하지 말고 개선의 기회로 삼기 |
| 61 | +- 기계적인 코딩보다 논리적 사고를 통한 해결 |
| 62 | +- 더 나은 해결책을 위한 지속적인 학습과 개선 |
| 63 | + |
| 64 | +`Topics` |
| 65 | +- 가장 멍청한 코드를 작성한 경험이 있나요? |
| 66 | + |
| 67 | +### 18장 변하지 않는 것은 없다 |
| 68 | + |
| 69 | +`Summary` |
| 70 | +- 모든 코드는 변경 가능하다 |
| 71 | +- 완벽한 코드는 없다 |
| 72 | +- 코드 수정에 대한 두려움은 자연스럽다 |
| 73 | + - 기능이 망가질까 봐 |
| 74 | + - 추가 작업이 생길까 봐 |
| 75 | + - 익숙하지 않은 코드를 건드릴까 봐 |
| 76 | +- 테스트와 리뷰로 두려움 극복하기 |
| 77 | +- 기술 부채는 기록하고 계획에 반영하기 |
| 78 | + |
| 79 | +`Topics` |
| 80 | +- 코드 소유권과 전문성 균형에 대해 어떻게 생각하시나요? |
| 81 | + |
| 82 | + |
| 83 | +### 19장 코드 재사용 사례 |
| 84 | + |
| 85 | +`Summary` |
| 86 | +- 코드 복사 붙여넣기는 DRY와 KISS 원칙 위반 |
| 87 | +- 서드파티 라이브러리가 존재한다면 적극 매입 |
| 88 | + |
| 89 | + |
| 90 | +`Topics` |
| 91 | +- 현재 진행중인(혹은 진행했던) 프로젝트에서 얼마나 많은 복제코드가 존재하나요? |
| 92 | + |
| 93 | +### 20장 효과적인 버전 관리 |
| 94 | + |
| 95 | +`Summary` |
| 96 | +- 버전 관리는 지금 당장 시작하라 |
| 97 | + - 늦었다고 생각할 때가 가장 좋은 시작점이다 |
| 98 | + - git init 하나로 시작 |
| 99 | +- 버전 관리 도구를 신중히 선택하라 |
| 100 | + - 한번 선택한 도구는 끝까지 사용하라 |
| 101 | + - 잦은 도구 변경은 혼란을 가져온다 |
| 102 | +- 커밋은 작은 단위로 쪼개 관리하라 |
| 103 | + - 하나의 변경사항은 하나의 커밋으로 |
| 104 | + - 명확한 커밋 메시지로 이력 관리 |
| 105 | +- 브랜치를 적극 활용하라 |
| 106 | + - 새로운 기능은 새로운 브랜치에서 개발 |
| 107 | + - 안정적인 메인 브랜치 유지 |
| 108 | + |
| 109 | +`Topics` |
| 110 | +- 버전관리도구중 GUI와 CLI중 어떤 것을 자주 사용하시나요? 빈도는 어떻게 되시나요? |
| 111 | + |
| 112 | +### 21장 골키퍼 있다고 골 안 들어가랴 |
| 113 | + |
| 114 | +`Summary` |
| 115 | +- QA팀과의 협력 관계 |
| 116 | + - QA팀은 품질 향상을 위한 파트너 |
| 117 | + - 테스트 부서가 아닌 품질 보증 전문가 집단 |
| 118 | + - 상호 존중이 협업의 기본 |
| 119 | +- 개발자의 책임 |
| 120 | + - 배포 전 자체 테스트 수행 |
| 121 | + - 단위테스트 작성 |
| 122 | + - 통합테스트 실행 |
| 123 | + - 안정적인 QA 배포 버전 제공 |
| 124 | + - 명확한 릴리즈 노트 작성 |
| 125 | +- 피드백 수용 자세 |
| 126 | + - 오류 보고는 개선의 기회 |
| 127 | + - 고객 발견 전 수정 기회로 인식 |
| 128 | + - 건설적인 피드백 환영 |
| 129 | +- 핵심 원칙 |
| 130 | + - 품질은 전체 팀의 공동 책임 |
| 131 | + - 상호 신뢰와 존중이 기본 |
| 132 | + - 효과적인 커뮤니케이션 필수 |
| 133 | + |
| 134 | +`Topics` |
| 135 | +- 테스트코드 작성에 대한 자신의 노하우가 있을까요? |
| 136 | + |
| 137 | +### 22장 프리징된 코드의 신기한 사례 |
| 138 | + |
| 139 | +`Summary` |
| 140 | +- 코드 프리징 |
| 141 | + - 완료일과 출시일 사이 코드 수정을 제한하는 기간 |
| 142 | + - RTM(Release to Manufacturing)은 최종 출시 버전 |
| 143 | + - 프리징 단계 |
| 144 | + - 기능 프리징: 버그 수정만 가능 |
| 145 | + - 코드 프리징: 심각한 이슈만 수정 |
| 146 | + - 완전 프리징: 모든 변경 금지 |
| 147 | + - 출시 브랜치는 격리하여 관리 |
| 148 | + - 프리징 기간 동안 기술 부채 점검 |
| 149 | + |
| 150 | +`Topics` |
| 151 | +- 코드프리징을 선택할 때 어느정도 확신을 가지고 하시나요? |
| 152 | + |
| 153 | +### 23장 제발 저를 출시해주세요 |
| 154 | + |
| 155 | +`Summary` |
| 156 | +- 출시는 단순 빌드가 아닌 체계적인 프로세스 |
| 157 | +- 효과적인 출시 요소 |
| 158 | + - 규율과 계획 |
| 159 | + - 단순하고 명확한 과정 |
| 160 | + - 반복 가능한 자동화 |
| 161 | + - 신뢰할 수 있는 검증 |
| 162 | +- 자동화된 빌드/배포 |
| 163 | + - CI/CD 파이프라인 활용 |
| 164 | + - 자동화된 테스트 |
| 165 | +- 체계적인 출시 브랜치 관리 |
| 166 | + |
| 167 | + |
| 168 | +`Topics` |
| 169 | +- CI/CD 파이프라인 구축 및 자동화된 테스트 워크플로우 적용 경험과 그로 인한 이점/개선점은 무엇인가요? |
0 commit comments