LabHub
배우기 러닝패스 코스

연결 하나가 느려지자 나머지가 전부 멈췄다 · 말 없는 연결을 언제 끊나 · 퀴즈

퀴즈: 말 없는 연결을 언제 끊나

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 조용한 연결과 죽은 연결을 구분하는 방법은?

    1. 소켓 상태를 조회해 확인한다
    2. 읽기 준비가 오는지 잠시 기다려 본다
    3. 연결마다 마지막 활동 시각을 적어 두고 비교한다
    4. 커널의 연결 표에서 사라졌는지 확인한다
  2. 이벤트가 하나도 없는 동안 유휴 정리가 돌게 하려면?

    1. 다중화 호출의 대기 시간에 상한을 둔다
    2. 만료 목록을 미리 정렬해 둔다
    3. 유휴 검사를 별도의 블로킹 호출로 옮긴다
    4. 연결마다 알람 신호를 걸어 둔다
  3. 경과 시간 계산에 단조 시계를 쓰는 이유는?

    1. 벽시계보다 해상도가 항상 높기 때문에
    2. 여러 서버의 시각을 맞춰 주기 때문에
    3. 소켓을 논블로킹으로 바꿔 주기 때문에
    4. 시각 동기화로 벽시계가 조정돼도 흔들리지 않아서
  4. TCP keepalive 가 보장하는 것과 보장하지 않는 것은?

    1. 전송 계층의 생존은 확인하지만 업무 진행은 확인하지 못한다
    2. 상대 프로세스가 요청을 처리 중임을 확인해 준다
    3. 애플리케이션의 유휴 정책을 대신해 준다
    4. 연결이 끊기면 프로그램의 상태까지 정리해 준다
  5. 연결을 끊을 때의 올바른 순서는?

    1. 소켓만 닫고 목록은 다음 깨어남에서 정리한다
    2. 관심 목록에서 빼고 상태를 지운 뒤 소켓을 닫는다
    3. 상태만 지우고 소켓은 가비지 컬렉션에 맡긴다
    4. 소켓을 닫은 뒤 같은 서술자를 다시 등록한다
  6. 유휴 제한을 지나치게 짧게 잡으면 생기는 일은?

    1. 서버의 파일 서술자가 더 빨리 바닥난다
    2. 느린 손님이 빠른 손님을 막는 현상이 사라진다
    3. 커널이 유휴 제한을 자동으로 늘려 준다
    4. 연결을 재사용하던 클라이언트가 매번 새로 연결한다