[
  {
    "courseSlug": "git-deep",
    "question": "이 코스에서 설명하는 '커밋'의 본질로 가장 알맞은 것은?",
    "option1": "마지막 커밋 이후 바뀐 부분(변경분)만 골라 저장한 기록",
    "option2": "브랜치 하나를 통째로 압축해 보관해 두는 백업 파일",
    "option3": "그 순간 프로젝트 전체를 통째로 찍은 스냅샷(사진) 한 장",
    "option4": "원격 저장소에 올리기 위해 임시로 묶어 둔 파일 묶음",
    "answerIndex": 2,
    "explanation": "섹션 1 '커밋 = 스냅샷'에서 커밋은 변경분 기록이 아니라 프로젝트 전체를 찍은 사진 한 장이라고 설명해요. 안 바뀐 파일은 이전 사진 것을 재활용해서 빠르고 용량도 작습니다."
  },
  {
    "courseSlug": "git-deep",
    "question": "단체 사진 비유에서 \"사진 찍을 사람 이리 모여!\" 하고 줄을 세운 상태에 해당하는 Git 단계는?",
    "option1": "스테이지 — git add로 커밋에 담을 파일을 골라 둔 상태",
    "option2": "작업 폴더 — 교실에서 각자 코드를 고치고 있는 상태",
    "option3": "저장소 — 커밋되어 사진첩에 정식 보관된 상태",
    "option4": "원격 저장소 — push가 끝나 서버에 올라간 상태",
    "answerIndex": 0,
    "explanation": "섹션 1의 3단계 비유에서 작업 폴더는 교실에서 노는 상태, 스테이지는 줄 세운 상태, 커밋은 사진첩 보관이에요. git add를 따로 두는 이유는 고친 것 중 일부만 골라 한 커밋에 담기 위해서입니다."
  },
  {
    "courseSlug": "git-deep",
    "question": "머지 중 충돌이 난 파일에서 <<<<<<< HEAD 부터 ======= 사이에 적혀 있는 내용은 무엇인가?",
    "option1": "합치려고 하는 상대 브랜치에서 고친 내용",
    "option2": "내 우주, 즉 현재 브랜치에서 고친 내용",
    "option3": "Git이 두 내용을 자동으로 합쳐 제안한 절충안 코드",
    "option4": "두 브랜치가 갈라지기 전의 원래 공통 코드",
    "answerIndex": 1,
    "explanation": "섹션 4에서 <<<<<<< HEAD부터 =======까지는 내 우주(현재 브랜치)의 내용, =======부터 >>>>>>>까지는 상대 우주(합치려는 브랜치)의 내용이라고 읽는 법을 알려 줘요."
  },
  {
    "courseSlug": "git-deep",
    "question": "이미 push해서 팀과 공유한 브랜치에서 \"그 기능 롤백해 주세요\" 요청을 받았다. 코스가 권하는 가장 안전한 방법은?",
    "option1": "git reset --hard로 그 커밋 이전 시점으로 역사를 되돌린다",
    "option2": "git checkout으로 과거 커밋 시점에 다녀오며 상태만 구경한다",
    "option3": "git stash로 해당 기능의 코드를 서랍에 임시 보관해 둔다",
    "option4": "git revert로 그 커밋의 정반대 내용을 새 커밋으로 추가한다",
    "answerIndex": 3,
    "explanation": "섹션 7 '되돌리기 3형제'에서 revert는 역사를 지우지 않고 반대 내용을 새 커밋으로 추가하므로 공유한 브랜치에서도 안전하다고 해요. 실무의 롤백 요청은 대부분 revert이고, 공유 후 reset은 대참사입니다."
  },
  {
    "courseSlug": "git-deep",
    "question": "기능 브랜치에서 코드를 고치던 중(커밋하기엔 애매한 미완성 상태) 멘토가 \"급한 버그부터 고쳐줘!\"라고 요청했다. 코스에서 배운 도구로 가장 알맞은 대처는?",
    "option1": "git reset --hard로 미완성 수정을 전부 지우고 버그 수정부터 시작한다",
    "option2": "git stash로 수정 중인 내용을 서랍에 넣어 두고, 버그를 고친 뒤 git stash pop으로 꺼낸다",
    "option3": "미완성 코드라도 일단 main 브랜치에 바로 커밋해 두고 버그를 고친다",
    "option4": "git revert로 마지막 커밋을 되돌려 놓고 버그 수정 작업을 이어 간다",
    "answerIndex": 1,
    "explanation": "섹션 6에서 stash는 커밋하기 애매한 미완성 코드를 '서랍에 임시 보관'했다가 pop으로 도로 꺼내는 도구이며, 작업 중에 급한 버그 요청이 왔을 때가 바로 쓰는 순간이라고 설명해요."
  }
]
