๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Zoo48

์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž€? โ“์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ? ์ƒํƒœ๋ž€(State)? React์—์„œ State๋Š” component ์•ˆ์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๊ฒƒ์ด๋‹ค. state๋Š” ์˜ค๋กœ์ง€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ๋งŒ ์ „๋‹ฌํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ƒํƒœ๊ด€๋ฆฌ ํ•„์š”์„ฑ 1. ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋“ค ๊ฐ„์˜ ๋‹ค์ด๋ ‰ํŠธ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค. 2. ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋“ค ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด์„œ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค. 3. ๊ทธ๋Ÿฐ๋ฐ ์ž์‹์ด ๋งŽ์•„์ง„๋‹ค๋ฉด ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ๋งค์šฐ ๋ณต์žกํ•ด์ง€๋ฉฐ ์ž์‹์ด ๋งŽ์•„์งˆ ์ˆ˜๋ก ๋ฐ์ดํ„ฐ์ด๋™์ด ๋งŽ์•„์ ธ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค. ๋งŒ์•ฝ ์œ„๊ทธ๋ฆผ ์ฒ˜๋Ÿผ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ƒํƒœ๋ฅผ ์ „๋‹ฌ๋ฐ›์•„์•ผํ•˜๋Š” ComponentD๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ์ด์˜ ์ปดํฌ๋„ŒํŠธ์— ํ•ด๋‹น ์ƒํƒœ๋ฅผ ์ „๋‹ฌํ•ด์„œ ๋„์ฐฉ์ง€์ธ ComponentD์— ์ƒํƒœ๋ฅผ ์ „๋‹ฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์‹ฌ์ง€์–ด ๊ทธ ์‚ฌ์ด์˜ ComponentB.. 2022. 12. 7.
[JS]์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ฒ˜๋ง(Bubbling & Capturing) ๐Ÿ‘‰๐ŸปJavaScript์—๋Š” click , keypress , focus , submit , scroll , change ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ๋“ค์ด ์žˆ๋‹ค. ๋งŒ์•ฝ ๋ถ€๋ชจ ์š”์†Œ์™€ ์ž์‹ ์š”์†Œ์— ๋‘˜ ๋‹ค ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ด๋ฒคํŠธ๊ฐ€ ํ• ๋‹น ๋˜์–ด์žˆ์„ ๋•Œ, ์ด๋ฒคํŠธ๋ฅผ ๋™์ž‘์‹œํ‚ค๋ฉด ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋ ๊นŒ? ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง ( Event Bubbling ) ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์€ ํŠน์ • ํ™”๋ฉด ์š”์†Œ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์ด๋ฒคํŠธ๊ฐ€ ๋” ์ƒ์œ„์˜ ํ™”๋ฉด ์š”์†Œ๋“ค๋กœ ์ „๋‹ฌ๋˜์–ด ๊ฐ€๋Š” ํŠน์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์ด ๋ธŒ๋ผ์šฐ์ €๋Š” ํŠน์ • ํ™”๋ฉด ์š”์†Œ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์ตœ์ƒ์œ„์— ์žˆ๋Š” ํ™”๋ฉด ์š”์†Œ๊นŒ์ง€ ์ด๋ฒคํŠธ๋ฅผ ์ „ํŒŒ์‹œํ‚ค๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ํ•˜์œ„์—์„œ ์ƒ์œ„ ์š”์†Œ๋กœ์˜ ์ด๋ฒคํŠธ ์ „ํŒŒ ๋ฐฉ์‹์„ ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง(Event Bubbling)์ด๋ผ๊ณ  ํ•œ๋‹ค... 2022. 11. 27.
๋ธŒ๋ผ์šฐ์ € ์ €์žฅ์†Œ ์ฐจ์ด์  ( Localstorage, SessionStorage, Cookie ) ๐Ÿ”” ๋ธŒ๋ผ์šฐ์ € ์ €์žฅ์†Œ๋กœ Cookie์™€ Web Storage๊ฐ€ ์žˆ๋‹ค HTML5 ์—๋Š” ์›น์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์ž๋ฃŒ๊ตฌ์กฐ์ธ Web Storage ์ŠคํŽ™์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ( Web Storage์˜ ๊ฐœ๋…์€ ํ‚ค/๊ฐ’ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. ) ๋” ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•œ ์ €์žฅ์†Œ ์ œ๊ณต์„ ์œ„ํ•ด ์ƒˆ๋กœ์šด localStorage์™€ sessionStorage API๋ฅผ ์ œ๊ณตํ•œ๋‹ค. WebStorage์˜ ํŠน์ง• - ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ์กด์žฌํ•  ๋ฟ ์„œ๋ฒ„๋กœ ์ „์†ก์€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค. ์ด๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๋น„์šฉ์„ ์ค„์—ฌ ์ค€๋‹ค๋Š” ์ฃผ์š”ํ•œ ์žฅ์ ์ด ๋œ๋‹ค. - WebStorage๋Š” ์šฉ๋Ÿ‰์˜ ์ œํ•œ์ด ์—†๋‹ค. - ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์˜ ์„ค์ •์ด ์—†๋‹ค. ์ฆ‰ ํ•œ๋ฒˆ ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋Š” ์˜๊ตฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. -.. 2022. 11. 16.
Promise Promise๊ฐ€ ๋ญ”๊ฐ€์š”? ํ”„๋กœ๋ฏธ์Šค๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ž€ ‘ํŠน์ • ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์„ฑ’์„ ์˜๋ฏธํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ๋•Œ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด API๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, API๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์„œ๋ฒ„์—๋‹ค๊ฐ€ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ๋ณด๋‚ด์˜จ ๋ฐ์ดํ„ฐ์˜ ๋ฐ˜ํ™˜๊ฐ’์ด๋‚˜, ์—๋Ÿฌ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๋ฏธ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. promise๋ฅผ ์‚ฌ์šฉํ•œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ function async() { return new Promise((resolve, reject) => { setTimeout(() => { // setTimeout { console.log(res); }).. 2022. 11. 16.