/
๐Ÿ“™

JS Memory management

JavaScript
Table of contents

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฒ„๋ ค์ง„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ํ•ด์ œํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ

๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ฐธ์กฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์ฐธ์กฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ์ฒด ์ „์ฒด๋ฅผ ๋ฒ”์œ„ ๋‚ด์—์„œ ๋กœ๋”ฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฐธ์กฐ๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด ๋‚ด์— ๋งŽ์ด ์žˆ๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

DOM ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜

DOM ํ•ญ๋ชฉ์„ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ด๋ฒคํŠธ ์ฝœ๋ฐฑ ์™ธ๋ถ€์— ์„ ์–ธ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น DOM ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๋”๋ผ๋„ ํ•ด๋‹น ํ•ญ๋ชฉ์€ ์—ฌ์ „ํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๊ฒŒ ๋œ๋‹ค. (=ํ•ด๋‹น DOM์ด HTML์—์„œ ์‚ฌ๋ผ์ง€๋”๋ผ๋„ ํ•ด๋‹น DOM์ด ์ด๋ฒคํŠธ ์ฝœ๋ฐฑ์—์„œ ์‚ฌ์šฉ๋๋‹ค๋ฉด ์ฐธ์กฐ๋Š” ๋‚จ๋Š”๋‹ค.) HTML DOM ๊ฐ์ฒด๋“ค์€ ์‚ญ์ œ๋œ ์ดํ›„์—๋Š” ์ฐธ์กฐ๋ผ์„œ๋Š” ์•ˆ ๋œ๋‹ค.

  • ์ด๋ฒคํŠธ ์ฝœ๋ฐฑ ๋‚ด๋ถ€์—์„œ ์ฐธ์กฐ๋ฅผ ์„ ์–ธํ•˜๊ฑฐ๋‚˜ ํด๋ฆญ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•œ ๋’ค ๋“ฑ๋ก ํ•ด์ง€๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.

window ์ „์—ญ ๊ฐ์ฒด

๊ฐ์ฒด๊ฐ€ window ์ „์—ญ ๊ฐ์ฒด์— ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ์ฒด๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•œ๋‹ค. window๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ „์—ญ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— window์˜ ์†์„ฑ์œผ๋กœ ์„ ์–ธ๋œ ์ถ”๊ฐ€์ ์ธ ๊ฐ์ฒด๋Š” ๋ชจ๋‘ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค.(window๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)

  • ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„, ๋ˆ„์ˆ˜๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด ์ฐธ์กฐ ์ œํ•œํ•˜๊ธฐ

๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฐธ์กฐ๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด๋Š” (๊ฐ€๋น„์ง€ ์ปฌ๋Ÿญํ„ฐ์— ์˜ํ•ด) ์ œ๊ฑฐ๋œ๋‹ค. ๊ฐ์ฒด์˜ ๋‹จ ํ•˜๋‚˜์˜ ์†์„ฑ๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ „์ฒด ๊ฐ์ฒด๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.

  • ์ „์ฒด ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ํ•„์š”ํ•œ ์†์„ฑ๋งŒ ์ „๋‹ฌํ•˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

delete ์—ฐ์‚ฐ์ž

์›์น˜ ์•Š๋Š” ๊ฐ์ฒด ์†์„ฑ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด delete ์—ฐ์ž์‚ฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.(๊ฐ์ฒด ์™ธ์˜ ๊ฒƒ๋“ค์— ๊ด€ํ•ด์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค) <- ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋ผ๊ณ  ๋“ค์—ˆ์Œ

logo
Things I've Learned