함수형 프로그래밍에서는 캐싱을 어떻게 구현할까? 클래스 내부에 캐시를 두면 결국 상태값을 클래스에 보관하는 것이 아닐까? 함수안에 변수를 쌓아둘 수는 없을까? 함수형 프로그래밍을 접하게 되면 위와 같은 고민을 자연스럽게 하게 될 것이다. '함수형 사고' 책 4장에는 이러한 고민을 덜어줄 기법이 나온다. 바로 '메모이제이션'이라는 기법이다. 도널드 미치의 Memo functions and machine learning 논문에서 처음 등장했다고 한다. 메모이제이션은 함수 레벨에서 캐싱을 할 수 있도록 도와준다. 그루비에서는 memoize()라는 함수를 제공한다. someFunction.memoize() 와 같이 호출할 수 있다. 이렇게 되면 클래스 내부에 캐시를 가지고 있지 않더라도 캐시와 동일한 기능을 구..