본문 바로가기

도서 소개

에러가 무섭지 않게 되는 책

에러에 대처하는 ‘구체적인’ 방법을 알려준다

 

프로그래머라면 누구나 한 번쯤 에러 때문에 개발이 막힌 적이 있을 것이다. ‘에러가 나서 코드가 작동하지 않는다!’, ‘에러 원인이 무엇인지 모르겠다!’, ‘어떻게 해도 에러가 고쳐지지 않는다!’고 느낀 적도 있을 것이다. 경험 많은 프로그래머라도 프로그램의 에러나 결함을 완벽하게 예방하기는 어렵다. 따라서 ‘에러나 결함의 원인을 빠르게 찾아내는 기술’은 프로그래머에게 필수적이다.

이 책은 ‘코드가 작동하지 않는’ 상황에서 대처하는 방법과 에러나 결함을 잘 다루는 방법을 쉽게 설명한다. 주니어 개발자, 디버깅을 제대로 배운 적이 없는 시니어 개발자, ‘에러가 무서워서 개발이 즐겁지 않은’ 신입 개발자까지, 작동하지 않는 코드와 매일 씨름하는 모든 개발자에게 추천한다.

 

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

출판사 제이펍
저작권사 翔泳社
원서명 新人プログラマーのためのエラーが怖くなくなる本 (9784798180670)
도서명 에러가 무섭지 않게 되는 책
부제 에러 잘 읽는 법부터 효율적으로 디버깅하고, 디버깅이 쉬운 코드를 작성하는 법까지
지은이 사쿠라바 히로유키, 모치즈키 고타로
옮긴이 이춘혁
감수자 (없음)
시리즈 (없음)
출판일 2024. 06. 21
페이지 236쪽
판 형 신국판변형(152*215*14)
제 본 무선(soft cover)
정 가 20,000원
ISBN 979-11-93926-30-7 (93000)
키워드 에러, 결함, 오류, 디버깅, 스택트레이스, 프린트디버깅, 이진탐색, 디버거, 브레이크포인트, 테스트코드
분 야 웹 개발 / 디버깅

 


관련 사이트
아마존 도서 페이지
저작권사 도서 페이지

 

관련 시리즈

■ (없음)

 

관련 포스트

2024.06.05 - [출간 전 책 소식] - 별로 놀랄 일도 아닌 에러에 "어?~" 금지

 

관련 도서

■ (없음)

 

관련 파일 다운로드

■ (없음)

 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음 자료를 보내드립니다.)
■ 본문의 그림과 표

 

미리보기(옮긴이 머리말, 베타리더 후기, 머리말, 프롤로그, 1장 일부)

 

정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

도서 소개

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

 

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

 

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

 

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

 

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

 

주요 내용

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

지은이 소개

사쿠라바 히로유키(桜庭 洋之)

중학생 때 인터넷을 접하고 프로그래밍에 빠졌다. 홈 서버와 라우트를 만들어 대량의 트래픽이 발생하는 서비스를 운영했다. 현재는 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

__에러의 종류 1 SyntaxError 48

__에러의 종류 2 ReferenceError 49

__에러의 종류 3 TypeError 51

__에러의 종류 4 RangeError 52

__다른 언어에서 발생하는 에러의 종류 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

__다음 함수 호출(step into) 124

__다음 함수 호출(step over) 126

__현재 함수에서 벗어나기(step out) 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

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

  포스트  유튜브  인스타그램  트위터  페이스북