[
  {
    "courseSlug": "cache-nosql",
    "question": "코스에서 설명한 '캐시 히트(hit)'에 해당하는 상황은 무엇인가?",
    "option1": "캐시에 데이터가 없어 DB까지 다녀온 뒤 응답하는 경우",
    "option2": "원본 DB가 바뀌어 캐시의 낡은 사본을 지워야 하는 경우",
    "option3": "캐시에 찾는 데이터가 있어 DB에 가지 않고 바로 응답하는 경우",
    "option4": "브라우저가 강력 새로고침으로 캐시를 무시하고 요청하는 경우",
    "answerIndex": 2,
    "explanation": "섹션 2의 사물함 비유처럼 캐시에 찾는 게 있으면 히트, 없으면 미스입니다. 미스일 때는 DB에 다녀오면서 캐시에 사본을 복사해 두어 다음 요청부터 히트가 납니다."
  },
  {
    "courseSlug": "cache-nosql",
    "question": "코스에서 Redis가 빠른 비결로 든 두 가지 이유를 바르게 묶은 것은?",
    "option1": "데이터를 메모리(RAM)에 두고, 키를 해시 계산 한 번으로 바로 찾기 때문",
    "option2": "데이터를 디스크에 압축해 저장하고, 인덱스를 미리 정렬해 두기 때문",
    "option3": "데이터를 표(테이블) 구조로 저장해 JOIN 연산이 강력하기 때문",
    "option4": "모든 데이터를 브라우저에 복사해 두어 네트워크를 타지 않기 때문",
    "answerIndex": 0,
    "explanation": "섹션 3에서 Redis는 디스크보다 훨씬 빠른 메모리(RAM)에 데이터를 두고, 키를 해시로 계산해 위치를 바로 알아내서 데이터가 백만 개여도 찾는 시간이 거의 같다고 설명합니다."
  },
  {
    "courseSlug": "cache-nosql",
    "question": "캐시의 유통기한(TTL)을 1시간처럼 길게 잡았을 때 생기는 문제로 코스가 설명한 것은?",
    "option1": "DB에 너무 자주 다녀오게 되어 캐시 효과가 떨어진다",
    "option2": "메모리 대신 디스크에 저장되어 읽기 속도가 크게 느려진다",
    "option3": "키를 해시로 찾을 수 없게 되어 검색 시간이 점점 늘어난다",
    "option4": "원본이 바뀌어도 낡은 정보를 계속 보여줄 위험이 커진다",
    "answerIndex": 3,
    "explanation": "섹션 4의 우유 유통기한 비유입니다. TTL이 짧으면 신선하지만 DB에 자주 다녀오고, 길면 빠르지만 낡은 정보를 보여줄 위험이 커지는 트레이드오프가 캐시 무효화가 어려운 이유입니다."
  },
  {
    "courseSlug": "cache-nosql",
    "question": "실습에서 확인한 상태 코드 304 Not Modified가 뜻하는 것은 무엇인가?",
    "option1": "서버가 요청받은 파일 전체를 본문에 담아 새로 보내 주었다",
    "option2": "파일이 안 바뀌었으니 브라우저가 가진 사본을 그대로 쓰라는 답장이다",
    "option3": "서버에 묻지 않고 메모리 캐시에서 바로 꺼내 썼다는 표시이다",
    "option4": "요청한 파일이 서버에서 삭제되어 더 이상 찾을 수 없다는 뜻이다",
    "answerIndex": 1,
    "explanation": "섹션 8에서 304는 서버가 ETag 등으로 버전을 비교해 보고 '안 바뀌었으니 네 사본을 써'라고 본문 없이 답장만 보내는 신호, 즉 브라우저 캐시 히트의 영수증이라고 설명합니다."
  },
  {
    "courseSlug": "cache-nosql",
    "question": "학습 플랫폼을 설계한다. 학생마다 형식이 제각각인 자유 양식 학습일지, 날아가도 다시 만들 수 있는 로그인 세션, 절대 사라지면 안 되는 수강 기록 — 섹션 7의 결정 기준에 맞는 배치는?",
    "option1": "학습일지는 Redis, 세션은 PostgreSQL, 수강 기록은 MongoDB",
    "option2": "학습일지는 PostgreSQL, 세션은 MongoDB, 수강 기록은 Redis",
    "option3": "학습일지는 MongoDB, 세션은 Redis, 수강 기록은 PostgreSQL",
    "option4": "학습일지는 Redis, 세션은 MongoDB, 수강 기록은 PostgreSQL",
    "answerIndex": 2,
    "explanation": "섹션 7의 세 질문 그대로입니다. 사라지면 안 되는 원본(수강 기록)은 PostgreSQL, 날아가도 재생성 가능한 것(세션)은 Redis, 문서마다 모양이 다른 것(자유 양식 학습일지)은 MongoDB가 맡습니다."
  }
]
