ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿ’พ Memoization Explained Like You're 5
Dev.toDev.to
Backend

์ค‘๋ณต ๊ณ„์‚ฐ ์ œ๊ฑฐ๋ฅผ ํ†ตํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ตœ์ ํ™”

๐Ÿ’พ Memoization Explained Like You're 5

Sreekar Reddy2026๋…„ 4์›” 14์ผ2๋ถ„beginner

Context

๋™์ผํ•œ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ๊ณ ๋น„์šฉ ๊ณ„์‚ฐ์œผ๋กœ ์ธํ•œ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„ ๋ฐœ์ƒ. ํŠนํžˆ Recursive Function ๊ตฌ์กฐ์—์„œ ์ค‘๋ณต Subproblem์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋ฉฐ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ €ํ•˜ ์œ ๋ฐœ.

Technical Solution

  • Calculation ๊ฒฐ๊ณผ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ณ„๋„์˜ ์ €์žฅ์†Œ(Notepad)๋ฅผ ํ™œ์šฉํ•œ Memoization ๊ธฐ๋ฒ• ๋„์ž…
  • Check ๋‹จ๊ณ„์—์„œ ๊ธฐ์กด ์ €์žฅ์†Œ ๋‚ด ๋™์ผ ์ž…๋ ฅ๊ฐ’ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์šฐ์„  ํ™•์ธํ•˜๋Š” ๋กœ์ง ์„ค๊ณ„
  • Cache Miss ๋ฐœ์ƒ ์‹œ์—๋งŒ ์‹ค์ œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅ์†Œ์— ๊ธฐ๋กํ•˜๋Š” Write-through ๋ฐฉ์‹ ์ ์šฉ
  • Cache Hit ์‹œ ๊ณ„์‚ฐ ๊ณผ์ •์„ ์ƒ๋žตํ•˜๊ณ  ์ €์žฅ๋œ ๊ฐ’์„ ์ฆ‰์‹œ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์—ฐ์‚ฐ๋Ÿ‰ ์ตœ์†Œํ™”
  • Fibonacci ์ˆ˜์—ด๊ณผ ๊ฐ™์€ ์ค‘๋ณต ํ•˜์œ„ ๋ฌธ์ œ ๊ตฌ์กฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ง€์ˆ˜ ์‹œ๊ฐ„์—์„œ ์„ ํ˜• ์‹œ๊ฐ„์œผ๋กœ ๊ฐœ์„ 

- Pure Function ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์—ฌ ์ž…๋ ฅ๊ฐ’๊ณผ ์ถœ๋ ฅ๊ฐ’์˜ ์ผ๊ด€์„ฑ ๋ณด์žฅ - ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€์™€ ์—ฐ์‚ฐ ์†๋„ ํ–ฅ์ƒ ์‚ฌ์ด์˜ Trade-off ๋ถ„์„ - ๋ฐ˜๋ณต๋˜๋Š” Subproblem์˜ ๋นˆ๋„์™€ ๊ณ„์‚ฐ ๋น„์šฉ์„ ์ธก์ •ํ•˜์—ฌ ์ ์šฉ ์šฐ์„ ์ˆœ์œ„ ๊ฒฐ์ •

์›๋ฌธ ์ฝ๊ธฐ