45

캐싱 시스템 구현 (TTL + LRU)

로깅+캐싱 시스템 구축 - 주간 프로젝트

학습 목표

TTL 기반 캐시 엔트리를 구현한다 LRU 정책의 MemoryCache를 만든다 @cache 데코레이터를 구현한다

데코레이터와 제네릭을 활용하여 캐싱 시스템을 구현합니다.

구현 순서

  1. CacheEntry - Generic으로 타입 안전한 캐시 엔트리
  2. CacheStats - dataclass로 캐시 통계
  3. CacheBackend - Protocol로 백엔드 인터페이스
  4. MemoryCache - OrderedDict로 LRU 구현
  5. @cache 데코레이터 - TTL + maxsize 지원

핵심 포인트

  • Generic: CacheEntry[V]로 타입 보존
  • Protocol: CacheBackend로 인터페이스 정의
  • OrderedDict: move_to_end()로 LRU 구현
  • TTL: datetime.now() > expires_at로 만료 체크
에디터 로딩 중...
정답 보기
에디터 로딩 중...