Jieunny์˜ ๋ธ”๋กœ๊ทธ

Unit 11. ํŽ˜์ด์ง€ ๋„ค์ด์…˜ & ์›น ์Šคํ† ๋ฆฌ์ง€ ๋ณธ๋ฌธ

CodeStates/learning contents

Unit 11. ํŽ˜์ด์ง€ ๋„ค์ด์…˜ & ์›น ์Šคํ† ๋ฆฌ์ง€

Jieunny 2023. 1. 4. 12:52

๐Ÿ“ฃ  ํŽ˜์ด์ง€๋„ค์ด์…˜

โœ”๏ธ ํŽ˜์ด์ง€๋„ค์ด์…˜ : ์ฝ˜ํ…์ธ ๋ฅผ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„์–ด ๋‹ค์Œ ๋˜๋Š” ์ด์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ

๋ฆฌ์ŠคํŠธ๊ฐ€ ๋งŽ์•„ ํ•œ ํ™”๋ฉด์— ๊ณผํ•œ ์Šคํฌ๋กค์ด ๋ฐœ์ƒํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

(๊ตฌํ˜„์€ ์‹ค์Šต ๋ถ€๋ถ„์—์„œ ๋‹ค๋ฃฐ ๊ฒƒ)

๐Ÿ“ฃ  ์›น ์Šคํ† ๋ฆฌ์ง€ 

โœ”๏ธ ๋ธŒ๋ผ์šฐ์ € ์ƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ 

โœ”๏ธ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

โœ”๏ธ ํฌ๋กฌ -> ๊ฐœ๋ฐœ์ž ๋„๊ตฌ -> Application -> storage

// ํ‚ค์— ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ
localStorage.setItem("key", value);

// ํ‚ค๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ
localStorage.getItem("key");

// ํ‚ค์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ
localStorage.removeItem("key");

// ๋ชจ๋“  ํ‚ค์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ
localStorage.clear();

// ์ €์žฅ๋œ ํ‚ค/๊ฐ’ ์Œ์˜ ๊ฐœ์ˆ˜
localStorage.length;

 

โœ”๏ธ  ์˜ค์ง ๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…๋งŒ ์ง€์›ํ•œ๋‹ค.

๐Ÿšจ ๊ฐ์ฒดํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ฒฝ์šฐ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

localStorage.setItem('obj', {a: 1, b: 2})

localStorage.getItem('obj')
// "[object Object]"

โœ”๏ธ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ฒฝ์šฐ ๋ฌธ์žํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๐Ÿ“Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• : JSON ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋ฉด ํ•ด๊ฒฐ 

localStorage.setItem('json', JSON.stringify({a: 1, b: 2}))

JSON.parse(localStorage.getItem('json'))
// {a: 1, b: 2}

โž• JSON ๋ฐ์ดํ„ฐ๋ž€?

๋”๋ณด๊ธฐ

โœ”๏ธ JSON (JavaScript Object Notaion)

โžฐ JS ์—์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‘œํ˜„์‹

โžฐ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ•˜๋‚˜์˜ ํ˜•ํƒœ

โžฐ JSON ํŒŒ์ผ์€ ํ•˜๋‚˜์˜ ๋ฌธ์ž ๋ฐ์ดํ„ฐ

โžฐ JS ํŒŒ์ผ ๋‚ด ์–ด๋””์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ „์—ญ ๊ฐ์ฒด

 

โœ”๏ธ JSON.stringfy()

โžฐ JSํŒŒ์ผ ๋‚ด์—์„œ ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ json ํ˜•ํƒœ๋กœ ๋ฌธ์ž ๋ฐ์ดํ„ฐํ™” ์‹œ์ผœ์ฃผ๋Š” ๋ฉ”์†Œ๋“œ

โžฐ ์‰ฝ๊ฒŒ jsonํ™” ์‹œ์ผœ์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

โœ”๏ธ JSON.parse()

โžฐ JS์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ ์‹œ์ผœ์ฃผ๋Š” ๋ฉ”์†Œ๋“œ

 

โœ”๏ธ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์•„๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์‚ญ์ œํ•ด์ค˜์•ผ ํ•œ๋‹ค.

localStorage.length
// 5
localStorage.key(0)
// "email"
localStorage.removeItem('obj')
// undefined
localStorage.length
// 4
localStorage.clear()
// undefined
localStorage.length
// 0

 

 

1๏ธโƒฃ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ (localStorage)

โœ”๏ธ ์›น ํŽ˜์ด์ง€์˜ ์„ธ์…˜์ด ๋๋‚˜๋”๋ผ๋„ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์›Œ์ง€์ง€ ์•Š๋Š”๋‹ค. (๋ฐ์ดํ„ฐ ์˜์†์„ฑ)

โœ”๏ธ ์—ฌ๋Ÿฌ ์ฐฝ์ด๋‚˜ ํƒญ ๊ฐ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ๊ณต์œ ๋œ๋‹ค.

โœ”๏ธ ๋™์ผํ•œ ์ปดํ“จํ„ฐ์—์„œ ๋™์ผํ•œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ํ•ด๋‹นํ•œ๋‹ค.

// ํ‚ค์— ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ
localStorage.setItem("key", value);

// ํ‚ค๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ
localStorage.getItem("key");

// ํ‚ค์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ
localStorage.removeItem("key");

// ๋ชจ๋“  ํ‚ค์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ
localStorage.clear();

// ์ €์žฅ๋œ ํ‚ค/๊ฐ’ ์Œ์˜ ๊ฐœ์ˆ˜
localStorage.length;

 

2๏ธโƒฃ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ (sessionStorage)

โœ”๏ธ ์›น ํŽ˜์ด์ง€์˜ ์„ธ์…˜์ด ๋๋‚  ๋•Œ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์›Œ์ง„๋‹ค.

โœ”๏ธ ์—ฌ๋Ÿฌ ์ฐฝ์ด๋‚˜ ํƒญ์„ ์—ด ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ๊ฒฉ๋ฆฌ๋˜์–ด ์ €์žฅ๋œ๋‹ค.