ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

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

JavaScript, Python, Java์™€ ๊ฐ™์€ ํ•˜์ด ๋ ˆ๋ฒจ ์–ธ์–ด๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, C์–ธ์–ด ๊ฐ™์€ ๋กœ์šฐ ๋ ˆ๋ฒจ ์–ธ์–ด์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ์œ„ํ•ด mallock()๊ณผ free()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

*๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection)

์“ธ๋ชจ ์—†์–ด์ง„ ๊ฐ์ฒด๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•˜๋Š” ๊ฒƒ

- ์žฅ์  : ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

- ๋‹จ์  : ์–ธ์ œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ง„ํ–‰๋ ์ง€ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต๊ณ , ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋“ ๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ ์ƒ์กด์ฃผ๊ธฐ

๋ฉ”๋ชจ๋ฆฌ ์ƒ์กด์ฃผ๊ธฐ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๊ด€๊ณ„์—†์ด ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

 

1. ํ•„์š”ํ•  ๋•Œ ํ• ๋‹น

2. ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉ(์ฝ๊ธฐ, ์“ฐ๊ธฐ)

3. ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š” ์—†์–ด์ง€๋ฉด ํ•ด์ œ

 

์ด๋•Œ, 1,3์„ ์•”๋ฌต์ ์œผ๋กœ ์‹œํ–‰ํ•จ์— ์žˆ์–ด ํ•˜์ด ๋ ˆ๋ฒจ ์–ธ์–ด๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜์™€ ๋ฉ”๋ชจ๋ฆฌ

1. Primitive Type

- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์›์‹œ ํƒ€์ž…์€ ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋ถˆ๋ฆฌ์–ธ, null, undefined, ์‹ฌ๋ณผ ์ด๋ ‡๊ฒŒ 6๊ฐ€์ง€๊ฐ€ ์žˆ์Œ

- ์›์‹œ ํƒ€์ž… ๋ฐ์ดํ„ฐ๋Š” ๋ถˆ๋ณ€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋กœ, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ํ• ๋‹น๋ฐ›์œผ๋ฉด ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ

let num  // undefined
num = 80
num = 100

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๊ฐ’์„ ์žฌํ• ๋‹นํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์•„ ๊ฐ’์„ ๋„ฃ๊ณ , ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฏ€๋กœ

์ด์ „ ๊ฐ’์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

(** C์—์„œ๋Š” ๋ณ€์ˆ˜์— ๊ฐ’์„ ์žฌํ• ๋‹นํ•˜๋ฉด, ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ์˜ ๊ฐ’์ด ๋ฐ”๋กœ ๋ณ€๊ฒฝ๋จ)

 

2. Object Type

- ์›์‹œ ํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ, ๊ฐ์ฒด, ๋ฐฐ์—ด, ํ•จ์ˆ˜ ๋“ฑ์ด ๋ชจ๋‘ ๊ฐ์ฒด ํƒ€์ž…

- ๊ฐ์ฒด ํƒ€์ž…์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด, ๋ณ€์ˆ˜์—๋Š” ์‹ค์ œ ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋œ ํž™ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋จ

 

์•„๋ž˜์™€ ๊ฐ™์€ person ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

const person = {
  name: 'Lee'
}


// ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๊ฐ์ฒด
const p1 = person
p1 === person  // true

// ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด
const p2 = { ...person }
p2 === pserson  // false

 

- p1์ฒ˜๋Ÿผ ๊ฐ์ฒด ํƒ€์ž…์„ ๋‹ด์€ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ด

- p2์ฒ˜๋Ÿผ ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด, ๊ฐ์ฒด์˜ ๊ตฌ์„ฑ์€ ๊ฐ™์„ ์ˆ˜ ์žˆ์–ด๋„ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด์ž„

 

์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ํ†ตํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ผ์ข…์˜ ํฌ์ธํ„ฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๊ฐ€ ํ•˜๋‚˜๋„ ์—†์œผ๋ฉด ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฏ€๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ž๋ฐ”์ŠคํŠธ๋ฆฝํŠธ์—์„œ์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

1. ๊ฐ’ ์ดˆ๊ธฐํ™”

- ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ํ• ๋‹น ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ ์ž์œ ๋กญ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ’์„ ์„ ์–ธํ•  ๋Œ€ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

 

2. ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ํ†ตํ•œ ํ• ๋‹น

- ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ ๊ฒฐ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ์ผ์–ด๋‚˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

- ๋ฉ”์„œ๋“œ์—์„œ๋„ ์ƒˆ๋กœ์šด ๊ฐ’์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ• ๋‹น ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์ฝ๋Š”๊ฒƒ์„ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ์‚ดํŽด๋ณด์•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ, ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋” ์ด์ƒ ํ•„์š” ์—†์„ ๋•Œ ํ•ด์ œ๋ฅผ ํ•ด์•ผํ•˜๋Š”๋ฐ,

์ ์ ˆํ•œ ์‹œ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ธ”๋ก์ด ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์‹œ์ ์„ ํ™•์ธํ•˜์—ฌ ํšŒ์ˆ˜ํ•˜๋Š” ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ๋ผ๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ํ˜•์‹์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(์•Œ๊ณ ๋ฆฌ์ฆ˜)

1. Reference-Counting

์ฐธ์กฐ ๊ฐœ์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•˜์—ฌ ์ฐธ์กฐ๊ฐ€ ํ•˜๋‚˜๋„ ์—†์œผ๋ฉด ๊ฐ€๋น„์ง€๋กœ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•

 

ํ•œ๊ณ„ : ์ˆœํ™˜ ์ฐธ์กฐ

- ๋‘๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ์„œ๋กœ ์ฐธ์กฐํ•˜๋ฉด ์ˆœํ™˜ ๊ตฌ์กฐ๊ฐ€ ์ƒ์„ฑ๋˜์–ด, ๊ฐ€๋น„์ง€๋กœ ์ธ์ง๋˜์ง€ ์•Š์Œ

- IE 6,7 ๋ฒ„์ „์—์„œ๋Š” ์นด์šดํŒ… ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆœํ™˜ ์ฐธ์กฐ๋กœ ์ธํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์‹ ๊ฒฝ์“ฐ๋ฉฐ ๊ฐœ๋ฐœํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

2. Mark-and-Sweep

๊ฐ€๋น„์ง€๋ฅผ "๋‹ฟ์„ ์ˆ˜ ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ"๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

roots ๋ผ๋Š” ์ „์—ญ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ, roots๊ฐ€ ์ฐธ์กฐํ•œ๋Š” ๊ฐ์ฒด -> ๊ทธ ์ž์‹๋“ค์ด ์ฐธ์†Œํ•˜๋Š” ๊ฐ์ฒด -> ...

์ด๋Ÿฐ์‹์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋“ค์„ ์„ ๋ณ„ํ•˜๊ณ , ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋“ค์„ ๊ฐ€๋น„์ง€๋กœ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

- ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์†Œ๋ฉธํ•˜๋Š” ์ˆœ๊ฐ„, ์ ‘๊ทผํ•˜๊ธฐ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœํ™˜ ์ฐธ์กฐ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

- 2012๋…„๋ถ€ํ„ฐ ๋ชจ๋“  ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €๋“ค์ด Mark-and-Sweep ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

Mark-and-Sweep์˜ 3๊ฐ€์ง€ ์ƒํƒœ

- White : ์•„์ง ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ํƒ์ƒ‰ํ•˜์ง€ ๋ชปํ•œ ์ƒํƒœ

- Gray : ๊ฐ€๋ฐ”์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ํƒ์ƒ‰ํ–ˆ์œผ๋‚˜, ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๋“ค์€ ํƒ์ƒ‰ํ•˜์ง€ ๋ชปํ•œ ์ƒํƒœ

- Black : ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ํƒ์ƒ‰ํ–ˆ๊ณ , ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐํ•œ๋Š” ๊ฐ์ฒด๋“ค๋„ ํƒ์ƒ‰ ์™„๋ฃŒํ•œ ์ƒํƒœ

 

Mark-and-Sweep์˜ ๋™์ž‘ ๊ณผ์ •

1. Marking

- roots๋ฅผ ๋ชจ๋‘ ํšŒ์ƒ‰์œผ๋กœ ๋งˆํ‚นํ•˜๊ณ , Deque์— pushํ•จ

- Deque์—์„œ pop frontํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๊บผ๋‚ด์–ด ๊ฒ€์€์ƒ‰์œผ๋กœ ๋งˆํ‚น

- ๊ฒ€์€์ƒ‰์œผ๋กœ ๋งˆํ‚น๋œ ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๋“ค์„ ํšŒ์ƒ‰์œผ๋กœ ๋งˆํ‚นํ•˜๊ณ , push front

- Deque๊ฐ€ ์™„์ „ํžˆ ๋นŒ ๋•Œ๊นŒ์ง€ ์ด๋ฅผ ๋ฐ˜๋ณต

- ์ตœ์ข…์ ์œผ๋กœ ๊ฒ€์€์ƒ‰๊ณผ ํฐ์ƒ‰์œผ๋กœ ๋ถ„๋ฅ˜๋˜๊ณ  Deque๋Š” ์™„์ „ํžˆ ๋น”

 

2) Sweep

- ํš์ƒ‰์œผ๋กœ ๋งˆํ‚น๋œ ๊ฐ์ฒด๋“ค์„ ๊ฐ€๋น„์ง€๋กœ ์ธ์‹ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œ

 

3) Compact

- ๋ฉ”๋ชจ๋ฆฌ์˜ ํŒŒํŽธํ™”๊ฐ€ ์‹ฌํ•ด์ง€์ง€ ์•Š๋„๋ก ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™•๋ณด

 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Memory_Management

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ - JavaScript | MDN

C ์–ธ์–ด๊ฐ™์€ ์ €์ˆ˜์ค€ ์–ธ์–ด์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด malloc() ๊ณผ free()๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ์ž๋™์œผ

developer.mozilla.org

https://velog.io/@bumsu0211/JavaScript-Garbage-Collection

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ (JavaScript Garbage Collection)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์–ธ์–ด์ด๋‹ค. ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋น„์›Œ์ฃผ๋Š”๋ฐ, ๊ทธ ๋™์ž‘๊ณผ์ •์ด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž

velog.io

https://eblee-repo.tistory.com/52

 

[JavaScript] ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋™์ž‘ ๋ฐฉ์‹

์ตœ๊ทผ ๋ฉด์ ‘ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐ›์€ ์งˆ๋ฌธ ์ค‘, ํด๋กœ์ €๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์„ ๋ฐ›์•˜์œผ๋‚˜ ์„ ๋œป ๋Œ€๋‹ตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ข ์ด์— ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.๋ผ๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ 

eblee-repo.tistory.com

 

'JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JavaScript] ์›น ์Šคํ† ๋ฆฌ์ง€(localStorage, sessionStorage)๋ž€?  (0) 2022.07.13
[JavaScript] ์“ฐ๋ ˆ๋“œ(Thread)  (0) 2022.06.20