[
  {
    "courseSlug": "server-anatomy",
    "question": "이 코스에서 말하는 '서버'의 정체로 가장 알맞은 것은?",
    "option1": "데이터를 표(테이블) 형태로 안전하게 보관하는 저장 전용 장치",
    "option2": "특정 포트를 열고 요청을 기다렸다가 응답하는 프로그램",
    "option3": "서버실에 설치된 고성능 전용 컴퓨터 기계 그 자체",
    "option4": "다른 컴퓨터에 먼저 요청을 보내는 쪽을 부르는 역할 이름",
    "answerIndex": 1,
    "explanation": "섹션 1의 핵심 — 서버는 기계가 아니라 '역할'이고, 포트를 열고 하루 종일 요청을 기다리는 프로그램이 그 역할을 맡습니다. 먼저 요청을 보내는 쪽은 클라이언트예요."
  },
  {
    "courseSlug": "server-anatomy",
    "question": "우리 회사(AWESOMEDEV) 학습 플랫폼의 3계층에서 각 역할을 맡은 프로그램을 옳게 짝지은 것은?",
    "option1": "웹서버=Spring Boot, WAS=Caddy, DB=PostgreSQL",
    "option2": "웹서버=PostgreSQL, WAS=Spring Boot, DB=Caddy",
    "option3": "웹서버=Caddy, WAS=Spring Boot, DB=PostgreSQL",
    "option4": "웹서버=Caddy, WAS=PostgreSQL, DB=Spring Boot",
    "answerIndex": 2,
    "explanation": "섹션 2~3에서 본 우리 스택 — 손님을 맞는 웹서버는 Caddy(HTTPS·정적 파일), 요리(비즈니스 로직)를 하는 WAS는 Spring Boot, 재료(데이터) 창고인 DB는 PostgreSQL입니다."
  },
  {
    "courseSlug": "server-anatomy",
    "question": "로그인 후 화면에 보이는 \"○○님, 진도 40%\" 문구에 대한 설명으로 옳은 것은?",
    "option1": "요청이 올 때마다 새로 만들어지는 동적 응답이라 Spring Boot와 DB가 처리한다",
    "option2": "미리 만들어 둔 정적 파일이라 Caddy가 파일을 그대로 건네준다",
    "option3": "누가 요청해도 내용이 같아서 자판기처럼 바로 꺼내 줄 수 있다",
    "option4": "React 빌드 결과물에 포함되어 있어 서버 없이 브라우저가 만들어 낸다",
    "answerIndex": 0,
    "explanation": "섹션 4의 구분 — 누가·언제 요청하냐에 따라 내용이 달라지는 것은 동적 응답이고, 주방(WAS)과 창고(DB)를 다녀와야 하므로 Spring Boot + DB가 처리합니다."
  },
  {
    "courseSlug": "server-anatomy",
    "question": "우리 반 30명이 동시에 이 페이지를 열었을 때, 코스에서 설명한 서버의 처리 방식으로 옳은 것은?",
    "option1": "1번 요청 처리가 끝날 때까지 나머지 29명의 접속은 모두 끊어 버린다",
    "option2": "요청이 올 때마다 DB로 가는 통로를 매번 새로 뚫어 속도를 높인다",
    "option3": "대기열이 가득 차더라도 에러 없이 요청을 무한정 받아 준다",
    "option4": "스레드 풀에 대기시켜 둔 스레드를 요청마다 한 명씩 붙여 겹쳐서 처리한다",
    "answerIndex": 3,
    "explanation": "섹션 5 — Spring Boot는 요청 처리 직원(스레드)을 스레드 풀에 미리 대기시켜 두고 요청마다 한 명씩 붙입니다. DB 통로는 커넥션 풀로 미리 뚫어 돌려쓰고, 대기열마저 차면 에러가 나요."
  },
  {
    "courseSlug": "server-anatomy",
    "question": "학습 플랫폼 사용자가 수만 명으로 늘어 서버가 힘들어하고, '한 대가 멈추면 서비스 전체가 멈추는' 위험까지 없애고 싶다. 코스 내용에 따른 알맞은 처방은?",
    "option1": "EC2 인스턴스 타입을 더 좋은 것으로 바꾸는 스케일 업을 한다",
    "option2": "앞에 로드 밸런서를 세우고 바쁜 WAS만 여러 대로 늘리는 스케일 아웃을 한다",
    "option3": "WAS가 데이터를 메모리에 직접 보관하게 해서 DB까지 가는 왕복을 없앤다",
    "option4": "정적 파일 서빙을 중단해서 웹서버(Caddy)의 부담부터 줄인다",
    "answerIndex": 1,
    "explanation": "섹션 6 — 스케일 업은 아무리 좋아도 '한 대'의 한계와 한 대가 죽으면 전부 멈추는 위험이 그대로입니다. 3계층으로 역할을 나눠 둔 덕분에 로드 밸런서를 세우고 바쁜 WAS만 부분 확장하는 스케일 아웃이 가능해요."
  }
]
