몽땅뚝딱 개발자

성능 최적화하기 - (16) memoization 적용 본문

Development/성능최적화

성능 최적화하기 - (16) memoization 적용

레오나르도 다빈츠 2022. 6. 21. 08:47

◽ memoization

const cache = {}

export function getAverageColorOfImage(imgElement) {
  if(cache.hasOwnProperty(imgElement)) {
    return cache[imgElement]
  }

  // ... 실행로직

  return averageColor;
}

 

 

◽ memoization 모듈화

function memoize(fn) {
  const cache = {}

  return function(...args) {
    // 파라미터가 여러개인 경우의 방어로직
    if(args.length !== 1) {
      return fn(...args)
    }

    if(cache.hasOwnProperty(args)) {
      return cache[args]
    }

    const result = fn(...args)
    cache[args] = result

    return result
  }
}
Comments