Python의 functools
모듈은 함수형 프로그래밍을 위한 강력한 도구를 제공합니다. 이 중 cache
, cached_property
, lru_cache
는 성능 최적화를 위해 계산 결과를 저장하는 기능을 합니다.
-
cache: 함수 결과를 메모이제이션하여 동일한 입력에 대해 재계산을 피합니다. 순수 함수에 적합하며, 메모리가 허용하는 한 무제한으로 저장합니다.
-
cached_property: 클래스 메서드를 한 번만 계산하고 인스턴스 속성으로 캐시합니다. 계산이 비싼 클래스 속성에 유용하며, 이후 호출 시 캐시된 값을 반환합니다.
-
lru_cache: LRU(Least Recently Used) 알고리즘을 사용하여 지정된 크기만큼 결과를 캐시합니다. 재귀 알고리즘이나 반복 호출이 많은 함수에 적합하며,
cache_info()
로 캐시 상태를 확인할 수 있습니다.
이 도구들은 코드의 효율성을 높이고, 불필요한 계산을 줄이는 데 큰 도움이 됩니다.