매우 흥미로운 책입니다.
프로그래밍에 가장 큰 부분은 에러가 발생되지 않는 제품을 만드는 것입니다.
책에 제목을 둘러보면 가장 와 닿는 부분이 있습니다.
프로그램밍 언어는 영어가 아닌, 한글로도 가능은 합니다.
하지만, 영어로 사용하는 것이 기본이고 우리가 개발을 하면서 나오는 오류 메세지는 영어입니다.
자주 본 오류 사항은 쉽게 예측하고, 파악해볼수 있지만
긴 장문으로 설명되어지는 오류는 처음 보고 원인을 찾기 꺼려지는 부분이 있습니다.
우리는 어떻게 효율적으로 에러를 파악하고, 빠르게 원인을 찾을수 있을까요?

책의 구성이 아주 마음에 듭니다.
왜 에레는 읽고 싶지 않을까? → 에러를 잘 읽을수 있는 자세한 방법 → 이러한 에러의 원인을 잘 분석하기 위한 디버깅
→ 디버깅도 많이 사용하는 도구 활용하기 → 실제 자주 발생되는 오류 사항 → 좋은 코드를 작성하기 위한 방법
내용이 정말 상식적으로도 이해가 많이 되고 공감이 됩니다.
■ 에레를 읽지 않게 되는 이유
· 당연히 영어로 되어 있고, 길어서 이다. 읽어도 내용이 길면 바로 원인을 파악할수 없는 부분도 있다.
· 그러면 책애서는 어떠한 부분을 해결책으로 제공하는 것일까?
간단한 문장은 쉽게 정의하고, 이해하기 쉬운 문장도 있다.
Cannot read properties of null
주어가 있으면 좀더 쉽게 읽을수 있는데, 이런 경우는 주어가 프로그래밍 자체 라고 생각하면 쉽다.
Invalid array length
간단한 표현으로 주어, 술어가 빠져있는 경우
자주 사용하는 영어 단어를 미리 익숙해지면, 내용파악에 용이하다

에러 내용이 길지만, 3개의 구성요소라는 것만 알면 혼란이 없다.
- 에러 종류
- 에러 메세지
- 스택 트레이스

■ 에러를 잘 읽는 법
우리가 어색해서 그렇지 에러를 잘 읽을수 있고, 어떻게 평소 메세지를 노출하는지만 잘 알고 있으면
평소보다 빠르게 원인을 찾고 에러를 해결할수 있습니다.
· 에레에도 구성요소와 종류가 있을것입니다.
구성요소는 총 3가지 입니다.
- 에러의 종류 / 에러 메세지 / 스택 트레이스
스택 트레이스는 호출되는 순서대로 쌓이는 부분입니다.
하단의 내용이 처음 호출된 stack이고, 순차적으로 계속 호출이 되어서 실제 가장 최상단의 내용이 실제 원인을 발생시키는 코드입니다.
저부분이 해당 소스 코드의 행과 열을 의미합니다.
보통 해당 열만 보면, 오류나는 부분을 유추할수 있기 때문에 크게 신경을 쓰지 않았지만,
비슷한 문자열 아래 예시로 보는 nickname이 여러군데 있으면 행과 열을 잘 보는게 의미 있을것 같습니다.

보통 최종 지점부터 원인을 파악해서 근본적인 에러 분석을 하는 것이 좋습니다.
대부분의 언어는 이렇게 구성되어 있는데, python의 경우에는 하단에 오류가 정의되고 StackTrace도 위에서 부터 시작되니,
아래부터 확인해야 한다.
· 책에서 일반적인 에러 타입을 설명하고, php, 루비, python등에 대한 오류 타입 설명도 좋았습니다.
■ 에러를 더 쉽게 찾는 방법 디버깅
· 이진탐색 트리 기법으로 문제로 예상되는 검증의 범위를 축소해가면서 조회를 해보자
· git의 bisect 커맨드를 이용하는 방법
· 크롬 등에서 브레이크 포인트 설정하는법, debugger 설정하는 방법들이 소개됩니다.
· step into (다음 함수 호출), step over (다음 함수 호출), step out (현재 함수에서 벗어나기)
· 브라우저에서도 조금 더 다양한 브레이크포인트가 있습니다.

· 구글 검색, github를 통해서 발생된 오류를 조금 더 효과적으로 관련 정보를 찾는 방법
· Sentry, Rollbar를 통해서 오류 정보를 수집하고 오류를 살펴보는 서비스를 활용하기
· 로그 수집 도구
Logflare / Papertrail / Logtail / Datadog
· 최종적으로 좋은 코드를 작성하기 위한 가이드 라인도 설명되어서 오류를 찾는 것도 중요하지만 실제 좋은 코드에 대한 가이드도 있어서
좋았습니다.
· 오류 샘플 코드는 javascript, python, php등 다양한 언어를 기반으로 설명해주고 예시가 나와 있어서 매우 좋았습니다.