> 범인을 찾았더니 어제의 나였다. 디버깅은 [[프로그램]]이 예상과 다르게 작동하는 원인을 찾아 고치는 과정이다. [[새로운 질서]]는 이 과정을 오류 메시지가 실제로 무엇을 말하는지 읽는 일에서 시작한다. 오류는 작업자의 능력이나 인격에 대한 평가가 아니라 특정 상태에 관한 단서다. 파일을 찾지 못했다는 메시지라면 파일명과 경로를 살펴볼 수 있다. 존재하지 않는 요소에 접근했다는 메시지라면 요소의 이름과 코드를 실행한 시점을 확인할 수 있다. [[오류를 기록하며 배우기]]에서는 예상과 실제 결과를 나누어 적는 연습을 제안한다. - 오류 메시지는 그대로 적자. 어느 파일, 어느 줄인지도 함께. - [[마지막으로 바꾼 한 줄]]부터 떠올려보자. 따옴표와 괄호, 닫는 태그도 살펴보자. - 하나만 고치고 저장한 뒤 다시 보자. 여러 곳을 동시에 바꾸는 것보다 원인을 좁히기 쉽다. 메시지가 없는데도 작동하지 않는다면 HTML만 열거나 CSS와 자바스크립트의 일부를 잠시 제외해 문제를 나눠볼 수 있다. 코드를 다른 대상에게 한 줄씩 설명하는 일도 자신의 이해에서 빠진 부분을 발견하는 데 도움이 된다. ## 기타 등등 - 조건부 중단점을 쓰면 반복문을 매번 멈추지 않고 지정한 조건에서만 멈출 수 있다. [출처](https://developer.chrome.com/docs/devtools/javascript/breakpoints) - 크롬 개발자 도구의 로그포인트는 실행을 멈추거나 소스에 `console.log`를 넣지 않고 값을 기록한다. 관찰용 문장을 원본 코드에 남기지 않는 방법이다. [출처](https://developer.chrome.com/docs/devtools/javascript/breakpoints) #개념 #프로그래밍