Token Bucket #technicalinterview #programming #lowleveldesign
- 토큰 버킷 알고리즘은 시스템의 리소스 사용량을 제어하는 데 사용되는 저수준 설계 패턴입니다. ⚙️
capacity는 각 버킷이 최대로 보유할 수 있는 토큰의 수를 정의합니다. 🪣
refill rate는 초당 추가되는 토큰의 수를 나타내어 버킷의 토큰 충전 속도를 결정합니다. ⏳
tokens는 사용자 ID를 키로, 현재 토큰 수를 값으로 하는 딕셔너리 형태로 관리됩니다. 🔑
last refill time (영상에서는 'last refill rate'로 언급되었으나 문맥상 시간으로 해석)은 각 사용자의 버킷이 마지막으로 채워진 시점을 추적합니다. ⏱️
lock은 여러 스레드가 동시에 버킷에 접근할 때 원자적 업데이트를 보장하여 데이터 일관성을 유지합니다. 🔒
internal refill 메서드는 사용자의 토큰과 마지막 충전 시간을 업데이트하여 요청 허용 여부를 결정하는 핵심 로직을 수행합니다. 🔄
can request 메서드는 사용자가 요청에 필요한 충분한 토큰을 가지고 있는지 확인하고, 필요한 경우 토큰을 차감합니다. ✅
available tokens 메서드는 특정 사용자의 현재 사용 가능한 토큰 수를 반환합니다. 🔢
- 제시된 코드는 모든 테스트를 통과하여 알고리즘의 구현이 성공적임을 보여줍니다. ✨
데브허브 | DEVHUB | Token Bucket #technicalinterview #programming #lowleveldesign