[
  {
    "courseSlug": "sql",
    "question": "이 코스에서는 데이터베이스를 엑셀에 비유합니다. 엑셀의 '시트 한 장'에 해당하는 것은 무엇인가요?",
    "option1": "행(row) — 데이터 한 건",
    "option2": "테이블(table)",
    "option3": "열(column) — 속성 하나",
    "option4": "데이터베이스(DB) 전체",
    "answerIndex": 1,
    "explanation": "섹션 1의 비유에서 엑셀 파일 하나가 데이터베이스, 시트 한 장이 테이블, 행이 데이터 한 건, 열이 속성입니다. 우리 플랫폼 DB에는 users 등 테이블(시트) 5개가 들어 있어요."
  },
  {
    "courseSlug": "sql",
    "question": "WHERE kind = 'MAIN'처럼 SQL에서 문자열 값을 조건에 쓸 때 올바른 표기 방법은 무엇인가요?",
    "option1": "큰따옴표(\"MAIN\")로 감싼다",
    "option2": "따옴표 없이 MAIN이라고 그대로 쓴다",
    "option3": "작은따옴표('MAIN')로 감싼다",
    "option4": "괄호((MAIN))로 감싼다",
    "answerIndex": 2,
    "explanation": "섹션 3의 '따옴표 주의'에서 배운 내용으로, 문자열은 작은따옴표로 감싸고 큰따옴표는 열·테이블 이름용이라 뜻이 달라집니다. 숫자는 week = 1처럼 따옴표 없이 씁니다."
  },
  {
    "courseSlug": "sql",
    "question": "submission 테이블에서 '최근 제출 5건'을 보려고 합니다. SELECT 문 뒤에 이어 붙일 내용으로 옳은 것은 무엇인가요?",
    "option1": "ORDER BY submitted_at DESC LIMIT 5",
    "option2": "ORDER BY submitted_at ASC LIMIT 5",
    "option3": "LIMIT 5 ORDER BY submitted_at DESC",
    "option4": "WHERE submitted_at DESC LIMIT 5",
    "answerIndex": 0,
    "explanation": "섹션 4에서 DESC가 내림차순(최신순), LIMIT이 위에서 N개 자르기이며, 조합 순서는 FROM → WHERE → ORDER BY → LIMIT입니다. 관리자 화면의 '최근 제출물' 목록이 바로 이 쿼리예요."
  },
  {
    "courseSlug": "sql",
    "question": "submission 테이블의 user_id처럼, 다른 테이블의 행을 번호표(id)로 가리키는 열을 부르는 이름은 무엇인가요?",
    "option1": "기본키(primary key)",
    "option2": "별명(alias)",
    "option3": "와일드카드(wildcard)",
    "option4": "외래키(foreign key)",
    "answerIndex": 3,
    "explanation": "섹션 6에서 이름은 users에 한 번만 두고 다른 테이블은 번호표(id)로 가리키게 하는데, 이 번호표 열을 '다른(외) 테이블의 열쇠(키)'라는 뜻의 외래키라고 부릅니다. JOIN은 이 번호표를 실제 이름으로 바꿔 보는 일이에요."
  },
  {
    "courseSlug": "sql",
    "question": "수습생 A가 로컬 DB에서 BEGIN;을 실행한 뒤 UPDATE submission SET status = 'DONE';을 쳤는데, WHERE를 빼먹어 모든 행이 DONE으로 바뀐 걸 발견했습니다. 아직 확정 전이라면 원래대로 되돌리는 명령은 무엇인가요?",
    "option1": "COMMIT; — 지금까지의 변경을 저장한다",
    "option2": "DELETE FROM submission; — 잘못 바뀐 행을 지운다",
    "option3": "ROLLBACK; — BEGIN 이후의 변경을 전부 되돌린다",
    "option4": "SELECT status FROM submission; — 상태를 다시 조회한다",
    "answerIndex": 2,
    "explanation": "섹션 5의 트랜잭션은 '게임 보스전 앞 세이브 포인트' 비유 그대로, BEGIN 이후의 변경은 가안 상태라 ROLLBACK 한 방에 전부 원상복구됩니다. 반대로 확정하고 싶을 때만 COMMIT을 씁니다."
  }
]
