๐ŸŸจ JavaScript

    [์ฝ”๋”ฉ์• ํ”Œ] Local Storage ์‚ฌ์šฉ๋ฒ• (Session Storage, IndexedDB, Cookies, Cache Storage)

    [์ฝ”๋”ฉ์• ํ”Œ] Local Storage ์‚ฌ์šฉ๋ฒ• (Session Storage, IndexedDB, Cookies, Cache Storage)

    ๋ธŒ๋ผ์šฐ์ € ์•ˆ์— ์œ ์ € ๋ชฐ๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. F12 ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ Application(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜) > Storage(์ €์žฅ์šฉ๋Ÿ‰) ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ณด์ž. 1. Local Storage key : value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. 5MB ์ดํ•˜์˜ ๋ฌธ์ž/์ˆซ์ž ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. (array, object ์ €์žฅ ๋ถˆ๊ฐ€๋Šฅ) ์‚ฌ์ดํŠธ๋ฅผ ์žฌ์ ‘์†ํ•ด๋„ ์œ ์ง€๋œ๋‹ค. 2. Session Storage key : value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. 5MB ์ดํ•˜์˜ ๋ฌธ์ž/์ˆซ์ž ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. (array, object ์ €์žฅ ๋ถˆ๊ฐ€๋Šฅ) ์‚ฌ์ดํŠธ๋ฅผ ๋‚˜๊ฐ€๋ฉด ์‚ญ์ œ๋œ๋‹ค. 3. IndexedDB ๊ตฌ์กฐํ™”๋œ ๋Œ€์šฉ๋Ÿ‰๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. 3. Cookies ์œ ์ €์˜ ์ธ์ฆ์ •๋ณด(๋กœ๊ทธ์ธ์ •๋ณด ๋“ฑ)๋ฅผ ์ €์žฅํ•œ๋‹ค. 4. Cache..

    Level 3 : 5~8 (ajax, json, array, sort)

    5. ์นด๋“œ๋ ˆ์ด์•„์›ƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์นด๋“œ 3๊ฐœ ์ƒ์„ฑํ•˜๊ธฐ ์›์‹œ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฒ„์ „ let cardWrap = document.querySelector('.row'); let products = [ { id : 0, price : 70000, title : 'Blossom Dress' }, { id : 1, price : 50000, title : 'Springfield Shirt' }, { id : 2, price : 60000, title : 'Black Monastery' } ]; products.forEach(function(a, i){ let card = ` ${products[i]['title']} ${products[i]['price']} ` cardWrap.insertAdjacentHTML('bef..

    [์ฝ”๋”ฉ์• ํ”Œ] ajax๋กœ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ ์ฃผ๊ณ ๋ฐ›๊ธฐ (1)

    ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š” ๋ฒ• ์–ด๋–ค ๋ฐ์ดํ„ฐ์ธ์ง€ url์„ ์ œ๋Œ€๋กœ ์ž‘์„ฑํ•œ๋‹ค (ํ‹€๋ฆฐ url๋กœ ์š”์ฒญ์‹œ 404error๊ฐ€ ๋œฌ๋‹ค) ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์š”์ฒญํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค (GET/POST .. PUT, DELETE ๋“ฑ) GET GET ์š”์ฒญ์€ ์„œ๋ฒ„์— ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์‹ถ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— url์„ ์ ์œผ๋ฉด ๊ทธ๊ณณ์œผ๋กœ GET ์š”์ฒญ์„ ๋‚ ๋ฆฐ๋‹ค. POST POST ์š”์ฒญ์€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. POST ์š”์ฒญ์„ ๋‚ ๋ฆฌ๊ณ  ์‹ถ์œผ๋ฉด form ํƒœ๊ทธ + method="post" + action="url"์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. GET๊ณผ POST๋Š” ์š”์ฒญํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ๋œ๋‹ค. AJAX ์„œ๋ฒ„์— GET, POST ์š”์ฒญ์„ ํ•  ๋•Œ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋Šฅ์ด๋‹ค. (ex. ๋Œ“๊ธ€์„ ์„œ..

    [mdn, ์ฝ”๋”ฉ์• ํ”Œ ๋“ฑ] for, forEach, for in

    for ์ผ๋ฐ˜์ ์œผ๋กœ ์ง€์ •๋œ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. forEach forEach๋ฌธ์€ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. forEach๋ฌธ์€ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. forEach๋ฌธ์€ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์ธ element๋ฅผ ๊ธฐ์ค€์œผ๋กœ index๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ๋•Œ๋ฌธ์— index๋กœ array์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๋‹ค. ๋˜ํ•œ break, continue ๋“ฑ์˜ ์ œ์–ด๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ํ™”์‚ดํ‘œํ•จ์ˆ˜ ๋ฒ„์ „/์ผ๋ฐ˜๋ฒ„์ „ ํ™”์‚ดํ‘œํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ํ•จ์ˆ˜ ๋‚ด์˜ this๊ฐ’์„ ๋ฐ”๊นฅ์—์„œ ๊ฐ€์ ธ์™€ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜. const array = ['a', 'b', 'c']; array.forEach(element => console.log(element)); co..

    Level 3 : 4 (array, object, forEach)

    4. ๋ฐ”์ง€ ์„ ํƒํ•˜๋ฉด array์— ์ €์žฅํ•œ ๋ฐ”์ง€์‚ฌ์ด์ฆˆ ์…€๋ ‰๋ฐ•์Šค ๋งŒ๋“ค๊ธฐ ์กฐ๊ฑด ๋ฐ”์ง€๋ฅผ ์„ ํƒํ•˜๋ฉด array์— ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์ด์ฆˆ ์…€๋ ‰๋ฐ•์Šค์— ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•œ๋‹ค. ํ‹€๋ฆฐ ํ’€์ด ์ƒํ’ˆ ์„ ํƒ ๋ชจ์ž ์…”์ธ  ๋ฐ”์ง€ 100 let pants = [28, 30, 32]; let selectBox = document.querySelector('.form-select'); let selectSize = document.querySelector('.form-popup'); function pantsSize() { if (selectBox.value == '๋ฐ”์ง€') { selectSize.classList.remove('form-hide'); for (i = 0; selectSize.length = pants.length; i++..

    Level 3 : 1~3 (array, object)

    1. object ์ž๋ฃŒํ˜•์— ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ html์— ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ var car2 = {name: '์†Œ๋‚˜ํƒ€', price: 50000} document.querySelector('.card > span:first-child').innerHTML = `${car2.name}`; document.querySelector('.card > span:last-child').innerHTML = `${car2.price}`; 2. object ์ž๋ฃŒํ˜•์— ๋„ฃ์€ 'array ๋ฐ์ดํ„ฐ'๋ฅผ html์— ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ var car2 = {name: '์†Œ๋‚˜ํƒ€', price : [50000, 3000, 4000]} document.querySelector('.car-price').innerHTML = `${car2.price[..