SeouliteLab

파이썬 캐싱 라이브러리의 강력한 도구: cachetools 본문

프로그래밍

파이썬 캐싱 라이브러리의 강력한 도구: cachetools

Seoulite Lab 2024. 4. 16. 08:43

cachetools는 파이썬에서 캐싱을 구현하기 위한 유용한 도구 모음입니다. 이 라이브러리를 사용하면 함수 호출 결과를 캐시하여 성능을 향상시킬 수 있습니다. cachetools는 다양한 캐시 전략을 제공하며, 메모이제이션(memoization)과 같은 일반적인 캐싱 패턴을 구현하는 데 사용됩니다. 아래는 cachetools의 주요 기능과 사용법을 살펴보겠습니다.

기능 1: Memoization(메모이제이션) 구현

cachetools를 사용하면 함수 호출 결과를 캐시하여 동일한 인수로 호출될 때 다시 계산하지 않고 캐시된 결과를 반환할 수 있습니다. 이를 통해 중복된 계산을 방지하고 성능을 향상시킬 수 있습니다.

예제 1: 간단한 함수 메모이제이션

from cachetools import cached

@cached(cache={})
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))

기능 2: TTL(Time-To-Live) 설정

cachetools를 사용하면 캐시된 항목이 얼마 동안 유효한지를 설정할 수 있습니다. TTL 설정을 통해 캐시된 데이터의 최신성을 유지할 수 있습니다.

예제 2: TTL 설정하기

from cachetools import TTLCache

cache = TTLCache(maxsize=100, ttl=60)

cache['key'] = 'value'
print(cache['key'])  # 'value' 출력

# 60초 후
print(cache['key'])  # KeyError 발생

기능 3: LRUCache 사용

cachetools의 LRUCache를 사용하면 가장 최근에 사용된 데이터를 저장하고 오래된 데이터를 자동으로 삭제할 수 있습니다. 이를 통해 메모리 사용량을 효율적으로 관리할 수 있습니다.

예제 3: LRUCache 사용하기

from cachetools import LRUCache

cache = LRUCache(maxsize=3)

cache['a'] = 1
cache['b'] = 2
cache['c'] = 3
cache['d'] = 4

print(cache)  # {'b': 2, 'c': 3, 'd': 4}