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

Language/JavaScript

[๐Ÿฆ] localStorage

์ฑ„._. 2025. 1. 17. 15:08

๐Ÿ“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,
};

 

๊ฒฐ๊ณผ ์˜ˆ์‹œ

๋”๋ณด๊ธฐ

๐Ÿ“Œํ•ด์„ค ๋ฐ ์ •๋‹ต

  1. ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
  2. ๊ธฐ์กด ๋ฐ์ดํ„ฐ์™€ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์นœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค
  3. ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ๋‹ค์‹œ ๋„ฃ๋Š”๋‹ค.
const products = JSON.parse(localStorage.getItem("products"));
localStorage.setItem("products", JSON.stringify([...products, newProduct]))

 

 

๋ฌธ์ œ 2.

id๊ฐ€ 1์ธ ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์„ 35000์›์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ ๋‹ค์‹œ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•˜๊ธฐ

๋”๋ณด๊ธฐ

๐Ÿ“Œํ•ด์„ค ๋ฐ ์ •๋‹ต

  1. id๊ฐ€ 1์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ์•„, ๋‚˜๋จธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๊ฐ€๊ฒฉ๋งŒ ๋ณ€๊ฒฝํ•œ๋‹ค.
  2. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ๋Š” ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค.
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(ํ•„ํ„ฐ๋ง๋œ_์ƒํ’ˆ๋“ค))
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ