Description
에러에 대처하는 ‘구체적인’ 방법을 알려준다
프로그래머라면 누구나 한 번쯤 에러 때문에 개발이 막힌 적이 있을 것이다. ‘에러가 나서 코드가 작동하지 않는다!’, ‘에러 원인이 무엇인지 모르겠다!’, ‘어떻게 해도 에러가 고쳐지지 않는다!’고 느낀 적도 있을 것이다. 경험 많은 프로그래머라도 프로그램의 에러나 결함을 완벽하게 예방하기는 어렵다. 따라서 ‘에러나 결함의 원인을 빠르게 찾아내는 기술’은 프로그래머에게 필수적이다.
이 책은 ‘코드가 작동하지 않는’ 상황에서 대처하는 방법과 에러나 결함을 잘 다루는 방법을 쉽게 설명한다. 주니어 개발자, 디버깅을 제대로 배운 적이 없는 시니어 개발자, ‘에러가 무서워서 개발이 즐겁지 않은’ 신입 개발자까지, 작동하지 않는 코드와 매일 씨름하는 모든 개발자에게 추천한다.

저자

사쿠라바히로유키,모치즈키고타로

저자:사쿠라바히로유키
중학생때인터넷을접하고프로그래밍에빠졌다.홈서버와라우트를만들어대량의트래픽이발생하는서비스를운영했다.현재는nanabit에서웹및앱개발을하고있다.‘쓸모없지만재미있는코드’를작성하는것이취미다.

저자:모치즈키고타로
웹개발자.대학에서수학을전공하고알고리즘의복잡도와관련된공부를했다.어려운것을쉽게설명하기위해집필을하고있다.계속진화하는프로그래밍세계에서좋은개발경험을쌓고자노력한다.

역자:이춘혁
프로그래밍언어와자연어모두관심이많은개발자다.일본에서개발을시작하여현재는한국에서프런트엔드개발자로일하고있으며,좋은책과좋은사람을접하고배우는데감사하며살고있다.

목차


옮긴이머리말xi
베타리더후기xiii
머리말xvii
프롤로그xix

1장에러가왜무서울까?
1.1에러를읽어보자4
1.2에러를읽지않게되는이유8
__이유1영어로쓰인에러9
__이유2길어서읽기가어려움16
__이유3읽어도바로원인을파악할수없음18
1.3에러를향한마음가짐24
__간단하게생각하자24
__어려운에러는좋은학습의기회25
__에러를읽는스킬은항상도움이된다26

2장에러를잘읽는방법
2.1에러의구성요소를알아보자32
__구성요소1에러의종류34
__구성요소2에러메시지35
__구성요소3스택트레이스36
2.2에러의종류를알아보자47
__에러의종류1SyntaxError48
__에러의종류2ReferenceError49
__에러의종류3TypeError51
__에러의종류4RangeError52
__다른언어에서발생하는에러의종류53

3장효율적으로에러의원인찾기
3.1디버깅이란?58
__디버깅의흐름59
3.2프린트디버깅을해보자61
__프린트디버깅으로문제해결하기63
__경로를따라문제의위치특정하기66
3.3이진탐색으로효율적으로찾아보자68
__이진탐색이란?68
__프린트디버깅으로이진탐색71
__에러가표시되는부분에문제가없을때는?76
__더욱큰단위로이진탐색하기81
3.4최소한의코드로디버깅해보자85
__최소한의코드는도움을요청하기쉽다89
3.5디버깅을빠르게진행하기위한방법91
__사전에가설세우기91
__한번에하나씩검증하기93
__작은의문에귀를기울이자93
__귀찮아하지말자94

4장도구를활용해편하게디버깅해보자
4.1디버거는강력한도구100
4.2브레이크포인트를사용해보자102
__브레이크포인트란?102
__브레이크포인트설정방법103
__브레이크포인트를사용해디버깅해보자109
4.3다양한스텝실행124
__다음함수호출(stepinto)124
__다음함수호출(stepover)126
__현재함수에서벗어나기(stepout)127
__스텝의사용시기129
4.4조건을포함하는브레이크포인트130
__조건을포함하는브레이크포인트를사용해보자131
__브라우저에서편리한조건을포함하는브레이크포인트135
4.5변수를감시해보자136

5장해결할수없는문제
5.1개발자를위한정보수집테크닉144
__구글검색144
__깃허브검색149
__커뮤니티에질문하기154
__1차정보를확인하자156
5.2에러를찾을수없을때159
__보고있는위치가다름159
__에러의출력설정을확인하지않음161
__에러를프로그램에서처리하고있음163
5.3에러가재현되지않을때165
5.4운영환경에서에러를수집하는방법167
__에러수집방법167
__진화하고있는로그관리방법170

6장디버깅이쉬운코드를작성하자
6.1재할당을자제하자176
__재할당을억제하는기능을사용하자178
__재할당을하지않으면디버깅도쉬워진다178
6.2스코프를최소화하자181
__스코프가넓을때의단점182
6.3단일책임의원칙185
구체적인예프로필작성서비스185
6.4순수함수를사용하자189
__순수함수란?189
__순수함수와순수함수가아닌함수의비교192
__순수함수의이용194
6.5타입을의식하여코드를작성하자195
__코멘트로타입명시하기196
__프로그래밍언어의기능을사용해타입정보부여하기197
6.6디버깅을도와주는테스트코드201
__테스트코드는무엇일까?201
__테스트코드와디버깅의관계203
__에러가발생했을때먼저테스트코드를작성하자204

COLUMN
__결함을수정하는데걸리는시간27
__스택트레이스의흐름은프로그래밍언어에따라다를까?46
__버그는벌레?왜벌레일까?59
__왜다른위치가표시될까?80
__깃을사용한이진탐색84
__자고나면버그가수정된다?90
__테디베어효과95
__브레이크포인트를코드에서설정하기122
__에디터에서도사용할수있는디버거139
__PHP에서에러출력설정162
__에러메시지에서uncaught의의미는?164
__여러방법으로도에러가해결되지않을때의회피술172
__코드의잠재적인문제찾기180
__동적타입언어와정적타입언어199
__실제유저의조작을재현하는E2E테스트도구206

에필로그207
찾아보기210

출판사 서평

위풍당당하게에러를해결할수있게되는책

에러화면의빨간글씨를마주했을때머리가하얘지는경험을한적이있는가?에러를잘읽고멋지게해결하는선배들도한때는에러의원인을몰라당황했었다.이책은그들이겪었던수많은시행착오를줄여주는책,말하자면에러대처매뉴얼이다.책에서는자바스크립트,파이썬,PHP등다양한언어의에러를다루며,디버거도구로는크롬의개발자도구를예로들어설명한다.

1장과2장은‘에러를읽는것만으로도해결할수있는문제’를다룬다.1장은‘왜에러는읽고싶지않은지'그이유를알아보고,에러를두려워하지않고읽을수있도록하는마음가짐에대해소개한다.2장은에러를자세히읽는방법에대해설명한다.에러의구성요소와종류를알면효율적으로내용을파악할수있게된다.

3장과4장은‘원인파악이필요한문제’를다룬다.3장에서는에러의원인을특정하기위한디버깅을배우고,4장에서는도구를사용해효율적으로원인을파악하는방법을배운다.5장과6장은'정말해결하기어려운문제'를만났을때대처법을알려준다.5장은실제프로그래밍에서문제해결의실마리를찾는방법을설명하고,6장에서는에러원인을찾기쉬운코드작성방법을살펴본다.

에러에제대로대처하지못하면개발업무진행이어렵고,때로는야근으로이어지기도한다.에러를해결하는능력만갖춰도여유있게개발할수있다.작동하지않는코드로밤을지새운경험이있는모든개발자가이책을통해에러에더능숙하게대처하고재미있게프로그래밍을할수있게되기를바란다.

주요내용
ㅇ에러의구성요소와종류파악하기
ㅇ에러메시지읽는법
ㅇ결함의원인을찾아내는디버깅방법
ㅇ디버깅방법을사용해도문제가해결되지않을때의대처법
ㅇ에러를예방하는코드와디버깅하기쉬운코드작성하기