멱등성 — 두 번 눌러도 한 번만 결제되게 · 재시도와 중복 · 퀴즈
멱등성 확인
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
클라이언트가 응답을 못 받았을 때 알 수 있는 것은?
- 요청이 서버에 도착하지 않았다
- 구별할 수 없다 — 도착했는데 응답만 못 온 것일 수도 있다
- 처리 중에 서버가 죽었다
- 보내는 도중 네트워크가 끊겼다
멱등성 키를 어디에 저장해야 하나?
- 모두가 같이 보는 곳 — DB 나 Redis
- 서버 프로세스의 메모리 사전
- 서버 로컬 디스크의 파일
- 클라이언트 쪽 저장소
같은 키에 다른 본문이 오면?
- 422 로 거절한다
- 그냥 처리한다
- 덮어쓴다
- 무시한다
같은 키로 동시에 10개가 오면 순진한 구현이 깨지는 이유는?
- 처리가 느려 밀리기 때문에
- 열 개가 동시에 '없다' 를 읽어서
- 메모리가 부족해지기 때문에
- 타임아웃이 먼저 나기 때문에
재시도하면 안 되는 응답은?
- 500 — 서버 내부 오류
- 503 — 일시적 과부하
- 400 — 영원히 400 이다
- 타임아웃 — 응답이 없음
재시도에 jitter 를 주는 이유는?
- 재시도가 정확히 같은 간격으로 오게 하려고
- 재시도 속도를 높이려고
- 재시도 패턴을 감추려고
- 여러 클라이언트가 동시에 재시도해 서버를 다시 눕히지 않게