“좋아 보여” (LGTM을 넘어 건설적인 코드 리뷰로 | 반양장)

“좋아 보여” (LGTM을 넘어 건설적인 코드 리뷰로 | 반양장)

$31.13
Description
건설적인 피드백으로 팀과 코드를 함께 성장시키는 코드 리뷰의 새로운 표준
이 책은 코드 리뷰를 긍정적이고 생산적인 경험으로 전환하는 방법을 다룬다. 저자는 흔히 발생하는 논쟁, 무의미한 트집 잡기, 불필요한 병목현상을 줄이고, 팀원들의 협업을 강화시키는 코드 리뷰를 제시한다. 리뷰 목표 수립, 변화와 장애물 대응, 다양한 적용 옵션과 해결책, 공감할 수 있는 시나리오, 실무 노하우를 통해 실질적인 리뷰 기법을 배울 수 있다. 팀의 작업 방식에 맞춘 효율적인 리뷰 문화를 구축하고, 코드와 팀 모두를 성장시켜보자.
저자

에이드리엔브라간자

저자:에이드리엔브라간자(AdrienneBraganza)
베스트셀러《CodingforKids:Python》의저자.소프트웨어엔지니어이자작가그리고STEM교육지지자다.라스베이거스에서Code.org자원봉사자로활동하는한편코딩의강력함에대해정기적으로강연하고있으며,특히젊은여성과소녀들에게소프트웨어엔지니어링분야로의진로를독려하고있다.링크드인러닝에서는65,000명이상의수강생을가르치고있다.

역자:이춘혁
코딩도좋아하지만,그보다더좋아하는건문제를깔끔하게해결하는순간이다.프로그래밍언어와영어,중국어,일본어와같은자연어에도관심이많고,무엇이든배우는걸좋아하고즐긴다.

목차

옮긴이머리말xi
추천의글xiii
베타리더후기xvi
추천서문xviii
시작하며xx
감사의글xxii
이책에대하여xxiv
표지에대하여xxvii

PARTI코드리뷰의기초지식

CHAPTER1코드리뷰의중요성3
1.1대상독자7
1.2책의구조9
1.3코드리뷰가필요하다11
__1.3.1더나은애플리케이션11
__1.3.2팀의이해수준향상12
1.4팀설득하기12
1.5코드리뷰개선하기13
요약14

CHAPTER2코드리뷰분석하기15
2.1코드리뷰시스템15
__2.1.1사람주도16
__2.1.2도구기반16
__2.1.3혼합형17
2.2코드리뷰는어떻게작동할까?18
__2.2.1현재의코드리뷰워크플로19
__2.2.2우리의코드리뷰(PR워크플로)22
2.3훌륭한PR의요소22
__2.3.1제목:‘what’23
__2.3.2디스크립션:‘why’28
__2.3.3레이블34
__2.3.4리뷰상태37
2.4코드리뷰참여자와기대사항40
__2.4.1리뷰어41
__2.4.2작성자46
__2.4.3팀51
__2.4.4관리자53
__2.4.5조직54
요약58

CHAPTER3팀의첫코드리뷰프로세스구축하기60
3.1목표설정하기61
__3.1.1버그발견61
__3.1.2코드베이스의안정성과유지보수성63
__3.1.3지식전달과정보공유64
__3.1.4멘토링67
__3.1.5기록보관/변경이력관리68
__3.1.6자신의코드리뷰목표선택하기69
3.2도구선택하기70
__3.2.1코드리뷰기능평가하기71
__3.2.2도구선택하기72
3.3가이드라인설정하기76
__3.3.1팀의워크플로76
__3.3.2리뷰의중점79
__3.3.3PR승인을막는요인80
__3.3.4승인정책82
3.4프로세스개선하기85
__3.4.1개선사례가이드88
요약90

PARTII고급코드리뷰를위한필수요소

CHAPTER4팀워킹어그리먼트93
4.1팀워킹어그리먼트란?94
4.2팀워킹어그리먼트로팀기대치설정하기94
__4.2.1시나리오1:빠른리뷰와빠르지않은리뷰95
__4.2.2시나리오2:의미의불일치95
__4.2.3시나리오3:승인또는미승인97
4.3팀워킹어그리먼트수립하기98
__4.3.1팀에팀워킹어그리먼트가꼭필요할까?98
4.4팀워킹어그리먼트에포함할사항고려하기102
__4.4.1명확한코드리뷰기대사항102
__4.4.2합리적인응답시간102
__4.4.3적절한PR크기105
__4.4.4문제식별106
__4.4.5PR셀프승인하기109
__4.4.6사소한지적111
__4.4.7긍정적인리뷰환경112
__4.4.8정책을위반했을때는어떻게할까?113
4.5팀워킹어그리먼트적용하기114
__4.5.1수정이필요할때114
__4.5.2정리하기115
요약115

CHAPTER5자동화의이점117
5.1자동화의중요성118
5.2자동화의전제조건120
__5.2.1팀스타일가이드120
__5.2.2적절한도구123
5.3리뷰전자동화124
__5.3.1포매팅124
__5.3.2린트127
__5.3.3정적분석129
__5.3.4테스트자동화131
5.4코드리뷰과정중자동화133
__5.4.1PR템플릿133
__5.4.2PR검증도구136
__5.4.3리뷰어할당139
__5.4.4PR게이트체크143
__5.4.5리마인더와에스컬레이션147
요약148

CHAPTER6효과적인코드리뷰코멘트작성하기150
6.1코멘트를효과적으로만드는방법151
__6.1.1객관성151
__6.1.2구체성157
__6.1.3명확한결과163
__6.1.4효과적인코드리뷰코멘트샘플165
6.2말투(표현방식)167
6.3코드칭찬하기171
요약172

PARTIII딜레마

CHAPTER7코드리뷰가망하는순간들177
7.1코드리뷰프로세스에서겪는문제178
__7.1.1대충진행하는코드리뷰178
__7.1.2나쁜코드리뷰180
__7.1.3일관성없는코드리뷰182
__7.1.4엄격한코드리뷰183
7.2그렇다면무엇을해야할까?185
요약185

CHAPTER8코드리뷰지연줄이기186
8.1리뷰를할수있는시니어개발자가한명밖에없어요187
8.2PR이이해되지않아요191
8.3리뷰할파일이너무많아요192
8.4기능이너무커서리뷰가어려워요193
8.5논의가너무길어지는것같아요196
8.6코드리팩터링이필요해요199
요약201

CHAPTER9프로세스의허점제거하기203
9.1허점이발생하는이유203
9.2허점(그리고해결방법)204
__9.2.1정의되지않은코드리뷰프로세스205
__9.2.2코드리뷰시간부족212
__9.2.3도구의(잘못된)설정214
__9.2.4피드백문화의부재215
__9.2.5승인지향지표217
__9.2.6비상상황이용하기220
요약220

CHAPTER10비상대응매뉴얼222
10.1비상대응매뉴얼이무엇일까?223
10.2비상대응매뉴얼의필수사항224
__10.2.1의사결정트리224
__10.2.2승인프로세스225
__10.2.3우회메커니즘226
__10.2.4다음단계227
10.3언제비상대응매뉴얼을사용할까?229
요약229

CHAPTER11코드리뷰와페어프로그래밍233
11.1코드리뷰를해야할까,페어프로그래밍을해야할까?234
__11.1.1페어프로그래밍으로코드리뷰보완하기235
__11.1.2페어프로그래밍이코드리뷰를대체할수는없다236
11.2페어프로그래밍을프로세스에통합하기238
__11.2.1페어프로그래밍시도를위해팀설득하기238
__11.2.2페어스타일240
__11.2.3효과적인페어프로그래밍을위한고려사항243
요약251

CHAPTER12코드리뷰와몹프로그래밍253
12.1코드리뷰vs.몹프로그래밍254
__12.1.1몹프로그래밍의장점255
__12.1.2몹프로그래밍으로코드리뷰보완하기257
__12.1.3몹프로그래밍은코드리뷰를대체할수없다259
12.2몹프로그래밍을코드리뷰와통합하기260
__12.2.1상호보완접근방식261
__12.2.2몹프로그래밍의핵심요소266
요약269

CHAPTER13코드리뷰와AI271
13.1코드리뷰에서AI의이점272
__13.1.1리뷰속도향상272
__13.1.2코드품질개선273
__13.1.3리뷰일관성274
__13.1.4팀과코드베이스의규모에영향을받지않는리뷰확장성274
13.2AI코드리뷰의한계274
__13.2.1맥락과도메인지식이해의어려움274
__13.2.2학습데이터에크게의존하는성능276
__13.2.3AI에과도한의존은리뷰어의전문성을저해할수있다276
13.3AI기반코드리뷰가무엇을할수있을까?277
13.4AI를코드리뷰에통합하기287
13.5코드리뷰의미래:인간과AI의협업289
요약290

APPENDIXA팀워킹어그리먼트스타터템플릿294

APPENDIXB비상대응매뉴얼스타터템플릿300

B.1비상대응매뉴얼명명하기300
B.2의사결정트리300
B.3승인프로세스301
B.4우회메커니즘(관련작업)301
B.5다음단계302
__B.5.1문서화302
__B.5.2커뮤니케이션302
__B.5.3사후분석303

APPENDIXCPR템플릿304

APPENDIXD리소스307

D.1각장의리소스리스트307
D.2언어별린터리스트313
D.3언어별정적분석도구318

APPENDIXE한국어판부록:한국개발자의코드리뷰이야기339

E.1AI와함께진화하는코드리뷰문화(김연태)339
E.2코드리뷰가시스템이되는순간(김완섭)341
E.3작게나누고크게배우는코드리뷰문화(선용주)342
E.4완벽보다팀을택하는코드리뷰문화(윤기쁨)344
E.5팀과개인을모두성장시키는코드리뷰의태도(임슬기)345

참고문헌348
찾아보기352

출판사 서평

팀의성장을이끄는코드리뷰의진짜힘

이책은코드리뷰를단순한승인절차에서팀을성장시키는진짜협업도구로끌어올리는데집중한다.개발자라면누구나겪었던답답한순간들,의미없는트집이나피드백의공회전,리뷰지연으로인한팀생산성저하같은문제를아주현실적으로짚고들어간다.그러면서도분위기는무겁지않다.저자는사람중심의리뷰문화를강조하며,리뷰라는행위가곧팀의소통방식이자기술적토론의장이라는점을다시생각하게만든다.

책의1부에서는리뷰시스템을어떻게설계할지,좋은PR은무엇인지,팀내역할과책임을어떻게나눌지차근차근풀어준다.이어지는2부에서는팀이합의할기준,자동화전략,효과적인코멘트의실제표현처럼바로적용할수있는스킬을알려준다.3부에서는리뷰지연,병목,갑작스러운비상상황등현장에서마주칠수밖에없는문제를케이스별로해부하고,마지막4부에서는페어프로그래밍과몹프로그래밍,그리고AI도구까지포함해코드리뷰를더큰개발관행속에연결해설명한다.한국어판부록은한국개발자의코드리뷰이야기를담아,실제기업에서어떻게코드리뷰가이뤄지고있는지확인할수있다.

이책이반가운이유는코드리뷰를정답찾기게임이아니라팀이함께성장하는과정으로바라보게한다는점이다.리뷰는코드품질을지키기위한수단이지만,동시에팀의신뢰를만들고개발자의사고방식을단단하게만드는장치이기도하다.특히컨벤셔널코멘트레이블같은실용적인방법들은팀에바로도입해도될정도이다.국내개발자들의추천평도모두같은지점을말한다.코드참조를넘어협업문화를설계하는영역으로코드리뷰를끌어올린다는것.

복잡한규칙보다명확한기준,공격적인지적보다건설적인피드백,혼자서버티는리뷰보다함께해결하는리뷰를꿈꾼다면이책이꽤든든한기준점이될것이다.결국좋은코드리뷰는좋은팀문화를만들고,좋은팀문화는좋은소프트웨어로이어진다는단순하지만강력한사실을다시떠올리게한다.

주요내용

-코드리뷰의필요성이해하기
-객관적인코드리뷰시스템구축하기
-관리가능한가이드라인설정하기
-팀워킹어그리먼트문서화하기
-포매팅,린팅,정적분석,자동화테스트로코드품질자동화하기
-모든상황에서효과적인코멘트작성하기
-코드리뷰와페어프로그래밍또는몹프로그래밍결합고려하기
-코드리뷰에AI활용하기