๐ŸŸจ JavaScript/๊ฐœ๋…

    [์ œ๋กœ์ดˆ] Promise์™€ ๋™๊ธฐ/๋น„๋™๊ธฐ ๊ด€๋ จ ์งค๋ง‰ ํ‚ค์›Œ๋“œ์ •๋ฆฌ

    https://sunshineyellow.tistory.com/64 ์œ„๋Š” ๊ฐ™์ด ๋ณผ๋งŒํ•œ ๋“œ๋ฆผ์ฝ”๋”ฉ ์ฝœ๋ฐฑ์ง€์˜ฅ ํƒˆ์ถœ Promise ๊ธฐ์ดˆ ๊ฒŒ์‹œ๊ธ€. ์ œ๋กœ์ดˆ ์ธ๊ฐ„JS์—”์ง„ ๋ณด๋‹ค๊ฐ€ ์ถ”๊ฐ€์ ์ธ ํ‚ค์›Œ๋“œ ๋ฌธ์žฅ ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•ด ์ž‘์„ฑํ•œ๋‹ค. Promise๋ž€? ์‹คํ–‰์€ ๋๋Š”๋ฐ!!! ๊ฒฐ๊ณผ๊ฐ’์„ ๋‚˜์ค‘์— ์“ธ ์ˆ˜ ์žˆ๋‹ค. "์‹คํ–‰์€ ๋๋Š”๋ฐ"๊ฐ€ ์ค‘์š”. ๊ทธ๋ž˜์„œ new Promise ์•ˆ์˜ ์ต๋ช…ํ•จ์ˆ˜๋Š” ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰์ด ๋œ๋‹ค. ๋™๊ธฐ๋น„๋™๊ธฐ ์‹คํ–‰์ˆœ์„œ ๊ด€๋ จํ•ด์„œ ์•„๋ž˜ ์ฝ”๋“œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. ๊ธฐ์–ตํ•ด ๋†“์ž. let a = 2; const p = new Promise((resolve, reject) => { console.log('์‹คํ–‰1'); setTimeout(() => { a = 5; console.log('์‹คํ–‰3', a); resolve(a); }, 0); }); // ..

    [์ฝ”๋”ฉ์• ํ”Œ] 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..

    [์ฝ”๋”ฉ์• ํ”Œ] 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..

    [์ฝ”๋”ฉ์• ํ”Œ,mdn] js๋กœ html ์ƒ์„ฑํ•˜๋Š” ๋ฒ• (appendChild, createElement, insertAdjacentHTML ๋“ฑ)

    1. document.createElement() / appendChild() / clondeNode() / importNode() document.createElement() : html ์ž๋ฃŒ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. element.appendChild() : ํ•œ ๋…ธ๋“œ๋ฅผ ํŠน์ • ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ ๋ฆฌ์ŠคํŠธ ์ค‘ ๋งˆ์ง€๋ง‰ ์ž์‹์œผ๋กœ ๋ถ™์ธ๋‹ค. (ํ•œ ๋…ธ๋“œ๋Š” ๋ฌธ์„œ์ƒ์˜ ๋‘ ์ง€์ ์— ๋™์‹œ์— ์กด์žฌํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ๋…ธ๋“œ๊ฐ€ ์ด๋ฏธ ๋ถ€๋ชจ๊ฐ€ ์žˆ๋‹ค๋ฉด ์‚ญ์ œ๋˜๊ณ  ์ƒˆ๋กœ์šด ์œ„์น˜๋กœ ์ด๋™ํ•œ๋‹ค.) * append()์™€์˜ ์ฐจ์ด์  : append๋Š” jquery์—์„œ ์ง€์›ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ, ์›์‹œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ธ appendChild()์™€ ๋‹ค๋ฅด๋‹ค. ๋˜ํ•œ append๋Š” .append(`๋‚ด์šฉ`) ์ฒ˜๋Ÿผ ์š”์†Œ๋ฅผ ๋ฐ”๋กœ ๋•Œ๋ ค๋ฐ•์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด, appendChild()๋Š” creat..

    [์ฝ”๋”ฉ์• ํ”Œ] ์ž๋ฃŒํ˜• : Array, Object (ํŠน์ง•๊ณผ ์ฐจ์ด์ )

    https://sunshineyellow.tistory.com/38 ์ด๊ฑฐ์— ์ด์–ด์„œ.. Array ์ž๋ฃŒํ˜• let car = ['์†Œ๋‚˜ํƒ€', 50000, 'white']; ์ˆœ์„œ๊ฐœ๋…์ด ์žˆ๋‹ค. -> ์ˆซ์ž์˜์–ด๊ฐ€๋‚˜๋‹ค์ˆœ ์ •๋ ฌ(sort)/x๋ฒˆ์ž๋ฃŒ๋ถ€ํ„ฐ x๋ฒˆ์ž๋ฃŒ๊นŒ์ง€ ์ž๋ฅด๊ธฐ(slice)/x๋ฒˆ์ž๋ฃŒ ๋ฐ”๊พธ๊ธฐ/๋งจ ๋’ค, ๋งจ ์•ž์— ์ž๋ฃŒ ๋„ฃ๊ธฐ/์›ํ•˜๋Š” ์ž๋ฃŒ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. Object ์ž๋ฃŒํ˜• let car2 = { name : '์†Œ๋‚˜ํƒ€', price : 50000 }; ์ œ๋ชฉ(key)๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ์ˆœ์„œ๊ฐœ๋…์ด ์—†๋‹ค. (์•ž์— ์ผ๋‹ค๊ณ  ๋งจ์ฒ˜์Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๋Š” ๊ฒŒ ์•„๋‹˜) -> key๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ์ž๋ฃŒ ๋ฝ‘์„ ๋•Œ array๋ณด๋‹ค ์‰ฝ๋‹ค. object์—์„œ ์ž๋ฃŒ ๋ฝ‘๋Š” ๋ฒ• ๋‘๊ฐ€์ง€ console.log(car2['name']); //์†Œ๋‚˜ํƒ€ ..