Sliding Window- Low Level Design #technicalinterview #programming #lowleveldesign
- 슬라이딩 윈도우의 저수준 설계는 클라이언트별 요청 제한(Rate Limiting)을 관리하는 데 중점을 둡니다. ⚙️
- 주요 구성 요소는 클라이언트가 특정 윈도우 내에서 만들 수 있는 최대 요청 수(
Max requests)와 윈도우의 길이(Window seconds)입니다. ⏱️
request timestamps 딕셔너리는 클라이언트 ID를 키로, 해당 클라이언트의 요청 타임스탬프 목록을 값으로 저장합니다. 💾
- 동시성 문제를 방지하고 원자적 업데이트를 보장하기 위해
lock 메커니즘이 사용됩니다. 🔒
internal clean all request methods는 현재 슬라이딩 윈도우를 벗어난 오래된 타임스탬프를 제거하여 데이터의 관련성을 유지합니다. 🧹
can request method는 클라이언트가 현재 요청을 할 수 있는지 여부를 확인하고, 요청 타임스탬프를 업데이트하며, 할당량을 초과하지 않았는지 검증합니다. ✅
get remaining request method는 클라이언트가 현재 시점에서 추가로 보낼 수 있는 요청 수를 반환합니다. 🔢
- 제시된 코드는 모든 테스트를 통과하여 설계의 유효성을 입증했습니다. 👍
데브허브 | DEVHUB | Sliding Window- Low Level Design #technicalinterview #programming #lowleveldesign