ํฐ์คํ ๋ฆฌ ๋ทฐ
๐localStorage๋?
- ์๋ฒ์ ์ ์ฅํ ์ ๋๋ก ์ค์ํ์ง ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ
- ์ค์ํ์ง ์์ ์ ๋ณด๋ ์ ๋ณด๊ฐ ๋ ๋ผ๊ฐ๋ ์๊ด์ ์์ง๋ง ์์ผ๋ฉด ํธ๋ฆฌํ ์ ๋ณด
ex) “์ค๋ ๊ทธ๋ง ๋ณด๊ธฐ” ๋ฒํผ ํด๋ฆญ ์ฌ๋ถ - DB๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฐ์ต์ฉ์ผ๋ก ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅ, ์ญ์ ํ๋ ์ฐ์ต
๐localStorage ๋ค์ํ ์ฌ์ฉ๋ฒ
- ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐ or ์์ ํ๊ธฐ
localStorage.setItem("์ํ๋ช
", "๋ฉ์๋ ์
์ธ ")

- ๋ก์ปฌ์คํ ๋ฆฌ์ง์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
localStorage.getItem("์ํ๋ช
")
// "๋ฉ์๋ ์
์ธ "
- ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ
localStorage.removeItem("์ํ๋ช
")

๐๋ก์ปฌ์คํ ๋ฆฌ์ง์ ๋ฌธ์ ์
1. ์ ์ฅ ๋ฐ ๋ถ๋ฌ์ค๊ธฐ ์ ๋ฐ์ดํฐ๊ฐ ๋ฌธ์์ด๋ก๋ง ์ ์ฅ๋๋ค.

2. Array, Object๋ฅผ ์ ์ฅํ๋ ค๋ฉด ๋ฐ์ดํฐ๊ฐ ์ด์ํด์ง๋ค.

๐ํด๊ฒฐ ๋ฐฉ๋ฒ : JSON.Stringify() ํ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅ,
๋ก์ปฌ์คํ ๋ฆฌ์ง์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์จ ํ์๋ JSON.parse() ํด์ผ ํ๋ค.
// ๋ฐ์ดํฐ ์ ์ฅ ์ JSON.stringify()๋ฅผ ํด์ค์ผ ํจ
localStorage.setItem("ํค", JSON.stringify({ name: "๋ณ์", age: 30 }));
// ๋ฐ์ดํฐ ๊ฐ์ ธ์จ ํ JSON.parse() ํด์ค์ผ ํจ
localStorage.getItem("ํค"); // ๋ก์ปฌ์คํ ๋ฆฌ์ง์์ ๊ฐ์ ธ์จ ๋ฌธ์์ด ๋ฐ์ดํฐ
// '{"name":"๋ณ์","age":30}'
JSON.parse(localStorage.getItem("ํค")); // ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ
// {"name":"๋ณ์","age":30}
๐์์ฉ ๋ฌธ์ ํ์ด๋ณด๊ธฐ
๋ฌธ์ 1.
์๋์ ์ผํ๋ชฐ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ๋ฃ์ด์ฃผ๊ธฐ
const products = [
{
id: 1,
brand: "์๋๋ค์ค",
name: "๋ฉ์ง ์๋๋ค์ค ๋ฐํํฐ",
price: 32000,
},
{
id: 2,
brand: "๋์ดํค",
name: "๋ฉ์ง ๋์ดํค ๋ฐ์ง",
price: 30000,
},
];
localStorage.setItem("products", JSON.stringify(products))
๋ค์ ์ํ์ ์ํ๋ฆฌ์คํธ(products)์ ์ถ๊ฐํ๊ธฐ
const newProduct = {
id: 3,
brand: "๋ด๋ฐ",
name: "๋ฉ์ง ๋ด๋ฐ ์ ๋ฐ",
price: 78000,
};
๊ฒฐ๊ณผ ์์

๐ํด์ค ๋ฐ ์ ๋ต
- ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ๊ธฐ์กด ๋ฐ์ดํฐ์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ํฉ์น ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ๋ค
- ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ๋ค์ ๋ฃ๋๋ค.
const products = JSON.parse(localStorage.getItem("products"));
localStorage.setItem("products", JSON.stringify([...products, newProduct]))
๋ฌธ์ 2.
id๊ฐ 1์ธ ์ํ์ ๊ฐ๊ฒฉ์ 35000์์ผ๋ก ๋ณ๊ฒฝ ํ ๋ค์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ธฐ
๐ํด์ค ๋ฐ ์ ๋ต
- id๊ฐ 1์ธ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์, ๋๋จธ์ง๋ ๊ทธ๋๋ก ๋๊ณ ๊ฐ๊ฒฉ๋ง ๋ณ๊ฒฝํ๋ค.
- ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ ๊ทธ๋๋ก ๋๋ค.
const ํ์ฌ์ํ๋ค = JSON.parse(localStorage.getItem("products"));
let newProducts = ํ์ฌ์ํ๋ค.map((product) => {
if (product.id === 1) {
return {
id: product.id,
brand: product.brand,
name: product.name,
price: 35000, // ์๋ง ๋ณ๊ฒฝ
}
} else {
return product;
}
});
localStorage.setItem("products", JSON.stringify(newProducts));
- ๋ฆฌํฉํ ๋ง 1) spread operator๋ฅผ ํ์ฉํ๋ค.
const ํ์ฌ์ํ๋ค = JSON.parse(localStorage.getItem("products"));
let newProducts = ํ์ฌ์ํ๋ค.map((product) => {
if (product.id === 1) {
return {
...product,
price: 35000, // ์๋ง ๋ณ๊ฒฝ
}
} else {
return product
}
});
localStorage.setItem("products", JSON.stringify(newProducts));
- ๋ฆฌํฉํ ๋ง 2) return์ด ์ข ๋ฃ๊ฐ ๋๋ค๋ ๊ฒ์ ํ์ฉํ์ฌ ๋ ๊ฐ๋จํ๊ฒ ์ฝ๋๋ฅผ ์ง ๋ค.
const ํ์ฌ์ํ๋ค = JSON.parse(localStorage.getItem("products"));
let newProducts = parsed.map((product) => {
if (product.id === 1) {
return {
...product,
price: 35000, // ์๋ง ๋ณ๊ฒฝ
}
}
return product; // else ์์จ๋ ๋จ
});
localStorage.setItem("products", JSON.stringify(newProducts));
๋ฌธ์ 3.
id๊ฐ 1์ธ ์ํ ์ญ์ ํ๊ณ ๋ค์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ธฐ
๊ฒฐ๊ณผ ์์

๐์ ๋ต
let ์ํ๋ค = JSON.parse(localStorage.getItem("products"));
let ํํฐ๋ง๋_์ํ๋ค = ์ํ๋ค.filter((์ํ) => ์ํ.id !== 1)
localStorage.setItem("products", JSON.stringify(ํํฐ๋ง๋_์ํ๋ค))
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๐ฆ] ์๋~ ์ง๋๋ฒจ๋ก ์๋ ค๋๋ฆด๊ฒ์! (3) - try, catch (0) | 2025.01.17 |
|---|---|
| [๐ฆ] ์๋~ ์ง๋๋ฒจ๋ก ์๋ ค๋๋ฆด๊ฒ์! (2) - async, await (0) | 2025.01.17 |
| [๐ฆ] ์ด๋ฒคํธ ๋ฒ๋ธ๋ง ๐ซง (0) | 2025.01.17 |
| ๊ฐํน๊ฐ๋ค ํท๊ฐ๋ฆด ์ ์๋ ๋ฌธ์ ๋ค ! - ๋ฌธ์ ์ํ ์ค๋ต ํ์ด (1) | 2025.01.16 |
| [๐ฆ] ์๋~ ์ง๋๋ฒจ๋ก ์๋ ค๋๋ฆด๊ฒ์! (1) - promise (0) | 2025.01.16 |