Python의 decorator에 대한 설명으로 대표적인 것이 이름을 출력하는 예제일 것이다. 그러나 실제로 그런 일을 할 일이 별로 없기 때문에 마음에 와닿지가 않아 이해도 잘 되지 않았다. 가장 실용적인 사례로서 DP(dynamic programming)을 위한 memoization의 경우에 활용되는 @cache()라는 decorator를 피보나치 수를 구하는 예제에 적용하여 그 내부 동작을 살펴본다. 먼저 팩토리얼을 구하는 코드를 소개한다. 아래 데코레이터는 @cache로서, DP의 top-down시 많이 활용하는 lru_cache(maxsize=None)과 동일한 결과를 돌려주는 것으로 3.9에서 추가된 함수이다. @cache def factorial(n): return n * factorial(..