입력을 키로 사용
계산 전에 해당 입력의 결과가 저장되어 있는지 확인한다. 있으면 바로 돌려주고 없으면 계산한 뒤 저장한다. 입력을 구별하는 키가 부정확하면 서로 다른 계산에 같은 결과를 재사용하는 오류가 생긴다.
재귀 계산의 예
피보나치 수를 단순 재귀로 계산하면 같은 작은 번호를 여러 경로에서 다시 계산한다. 번호별 결과를 저장하면 이미 구한 부분 문제를 다시 전개하지 않아도 된다. 재귀를 쓰는 것 자체와 저장을 통해 중복을 줄이는 것은 다르다.
결과가 달라지는 함수
같은 인수를 주어도 시간이나 외부 상태에 따라 결과가 바뀌면 이전 결과의 재사용이 올바르지 않을 수 있다. 외부 상태를 키에 포함하거나 갱신 기준을 정해야 한다. 매 호출의 부수 효과가 필요한 함수도 그대로 메모화하기 어렵다.
공간과 동시 호출
저장 항목이 계속 늘면 메모리 사용도 증가한다. 크기 제한과 제거 정책을 둘 수 있지만 제거한 입력은 나중에 다시 계산할 수 있다. 또한 캐시 자료구조가 동시 접근에 안전하다는 사실만으로 같은 입력의 동시 계산이 한 번만 실행된다는 보장은 없다.