LabHub

큐와 비동기 API · 소비자 멱등성 · 퀴즈

퀴즈: 멱등성

LabHub 에서 이어서 보기

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

  1. '정확히 한 번'을 실무에서 달성하는 방법은?

    1. 브로커의 exactly-once 옵션을 켠다
    2. 최대 한 번 전달로 바꾼다
    3. 2PC 를 쓴다
    4. 적어도 한 번 전달 + 수신 측의 중복 제거
  2. HTTP 메서드 중 멱등하지 않은 것은?

    1. PUT — 보낸 표현으로 리소스를 통째로 덮어쓰기
    2. DELETE — 지정한 리소스를 지우기
    3. POST — 컬렉션에 새 리소스를 만들기
    4. GET — 리소스의 현재 표현을 읽기
  3. 멱등성 키 처리에서 '조회 후 없으면 저장' 구현의 문제는?

    1. 왕복이 두 번이라 응답이 느려진다
    2. 동시 도착한 두 요청이 둘 다 '처음 보는 키'로 판단해 이중 처리된다
    3. 키마다 조회 결과를 들고 있어야 해 메모리를 많이 쓴다
    4. 저장할 때 만료를 못 걸어 키가 영원히 남는다
  4. 같은 멱등성 키인데 요청 본문이 다르면?

    1. 새 요청으로 처리한다
    2. 첫 응답을 그대로 돌려준다
    3. 422 등으로 거부한다
    4. 본문을 병합한다
  5. 멱등성 키에 만료를 두는 이유는?

    1. 오래된 키가 유출되면 재사용될 수 있어서
    2. 만료가 있어야 중복 판정이 정확해져서
    3. 멱등성 규격이 TTL 을 필수로 정해 두어서
    4. 저장소가 무한히 자라는 것을 막기 위해 — 보통 24시간
  6. 확정적 실패(잔액 부족)와 일시적 실패(DB 타임아웃)를 멱등성 키에서 다르게 다루는 이유는?

    1. 일시적 실패는 재시도가 진짜로 다시 시도되어야 하기 때문
    2. 실패 로그를 종류별로 구분해 남기려고
    3. 확정적 실패를 캐시하면 DB 부하가 줄어 빨라져서
    4. 멱등성 규격이 두 실패를 나누도록 정해서