[
  {
    "courseSlug": "debugging",
    "question": "코스에서는 에러 메시지를 '사건 보고서'에 비유하며 세 가지 질문에 답해 준다고 했다. 다음 중 그 세 가지에 해당하지 않는 것은?",
    "option1": "무슨 일이야? — 에러의 종류 (NullPointerException, TypeError 등)",
    "option2": "왜 그랬는데? — 에러 옆의 설명 문장 (\"... is null\" 등)",
    "option3": "어디서? — 파일 이름과 줄 번호 (UserService.java:42 등)",
    "option4": "어떻게 고쳐? — 에러를 해결할 수정 코드 제안",
    "answerIndex": 3,
    "explanation": "섹션 1 '에러 = 단서'에서 에러 메시지는 종류(무슨 일)·설명 문장(왜)·파일과 줄 번호(어디서) 세 가지에 답해 준다고 했다. 고치는 방법까지 알려 주지는 않으며, 이 셋만 읽어도 문제의 절반은 푼 것이라고 설명한다."
  },
  {
    "courseSlug": "debugging",
    "question": "Spring Boot 콘솔에 수십 줄짜리 스택트레이스가 여러 덩어리로 이어져 나올 때, 코스가 알려 준 '진짜 원인'을 찾는 치트키는?",
    "option1": "맨 위의 NestedServletException을 자세히 분석한다",
    "option2": "Ctrl+F로 검색해 가장 아래쪽 \"Caused by\"를 찾는다",
    "option3": "org.springframework로 시작하는 줄부터 차례로 읽는다",
    "option4": "\"... 47 more\"로 접힌 부분을 모두 펼쳐서 읽는다",
    "answerIndex": 1,
    "explanation": "섹션 2에서 에러는 양파처럼 겹겹이 포장돼 올라오며, 맨 위 예외는 겉포장(증상)이고 진범은 거의 항상 가장 아래쪽 Caused by에 있다고 했다. 그래서 긴 로그에서는 Ctrl+F로 Caused by부터 검색하라고 안내한다."
  },
  {
    "courseSlug": "debugging",
    "question": "의심 가는 함수 안에 라벨을 붙여 console.log를 찍었는데, 콘솔에 그 로그가 아예 나타나지 않았다. 코스에 따르면 이 상황의 올바른 해석은?",
    "option1": "그 함수 자체가 호출되지 않았다는 뜻으로, 용의자 절반을 지워 준 중요한 단서다",
    "option2": "로그 출력이 실패한 것이므로 console.log를 다른 문법으로 다시 찍어야 한다",
    "option3": "변수 값이 undefined라서 로그가 출력되지 못한 것이다",
    "option4": "브라우저 캐시 문제이므로 시크릿 창에서 다시 확인해야 한다",
    "answerIndex": 0,
    "explanation": "섹션 4의 주의 박스에서 로그가 아예 안 찍히는 것도 중요한 단서라고 했다. '값이 이상하다'가 아니라 '이 함수 자체가 호출되지 않는다'는 뜻이며, 실패가 아니라 용의자 절반을 지워 준 수확이라고 설명한다."
  },
  {
    "courseSlug": "debugging",
    "question": "브라우저 F12 콘솔에 \"500 Internal Server Error\"가 떠 있다. 코스에서 배운 '프론트 문제인지 서버 문제인지 가르는 감각'에 따르면 다음으로 열어 봐야 할 곳은?",
    "option1": "React 컴포넌트의 JSX에서 오타가 없는지 코드를 다시 읽는다",
    "option2": "브라우저 콘솔에서 TypeError가 함께 떴는지 계속 지켜본다",
    "option3": "백엔드(Spring Boot) 콘솔을 열어 스택트레이스를 확인한다",
    "option4": "새로고침한 뒤 다른 브라우저에서도 같은 화면을 띄워 본다",
    "answerIndex": 2,
    "explanation": "섹션 3에서 TypeError·ReferenceError는 내 JS 코드 문제지만 404·500 같은 숫자는 서버와의 통신 문제라고 했다. 500은 서버 쪽에서 터진 것이므로 브라우저가 아니라 Spring Boot 콘솔의 스택트레이스를 봐야 한다."
  },
  {
    "courseSlug": "debugging",
    "question": "버튼을 누르면 화면이 하얗게 죽는다. 처리 흐름은 A(이벤트 핸들러) → B(fetch 호출) → C(응답 가공) → D(화면 그리기)이고, B와 C 사이에 찍어 둔 로그가 콘솔에 정상적으로 나타났다. 코스의 이분 탐색 요령대로라면 다음 한 수는?",
    "option1": "A의 첫 줄에 로그를 찍어 이벤트가 들어오는지부터 다시 확인한다",
    "option2": "범인을 C·D로 좁혔으니 그 남은 절반의 가운데에 로그를 찍는다",
    "option3": "A부터 D까지 모든 줄에 로그를 찍어 전체 흐름을 한 번에 본다",
    "option4": "fetch 호출(B)의 코드를 처음부터 한 줄씩 자세히 읽어 본다",
    "answerIndex": 1,
    "explanation": "섹션 6의 이분 탐색에서 가운데 검문소(로그)를 통과했으면 앞 구간(A·B)은 무죄이고 범인은 C·D 중에 있다고 했다. 이후에도 남은 절반의 가운데에 또 로그를 찍어 용의자를 반씩 줄여 가는 것이 요령이다."
  }
]
