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

๐Ÿ“‹Technical interview(Front)10

HTML์ด ๋ Œ๋”๋ง ์ค‘์— JavaScript๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋ Œ๋”๋ง์ด ๋ฉˆ์ถ”๋Š” ์ด์œ  ๋จผ์ €!! ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง๊ณผ์ • ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ HTML๊ณผ CSS ์ž์›์„ ๋ฐ›์•„์™€์„œ DOM Tree์™€ SSOM Tree๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. DOM Tree์™€ SSOM Tree๋กœ ๋ธŒ๋ผ์šฐ์ €์— ๋ ˆ์ด์•„์›ƒ์„ ์žก์•„์ค„ ๋ Œ๋”ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋ Œ๋”ํŠธ๋ฆฌ ๋…ธ๋“œ ์žˆ๋Š” ์†์„ฑ์ด๋‚˜ ์Šคํƒ€์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €์— ํฌ๊ธฐ, ์œ„์น˜, ํฌ๊ธฐ์— ๋งž๊ฒŒ ๋ ˆ์ด์•„์›ƒ์„ ์žก๋Š”๋‹ค. ๋ธŒ๋ผ์šฐ์ €์— ํŽ˜์ธํŠธ ํ•œ๋‹ค. ์ด์œ  #1 ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ • ์ค‘์— ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด ์ง„ํ–‰์ค‘์ธ HTMLํŒŒ์‹ฑ์„ ์ค‘์ง€ํ•˜๊ณ  js์—”์ง„์œผ๋กœ ์ œ์–ด ๊ถŒํ•œ์„ ๋„˜๊ธด๋‹ค. JSํŒŒ์‹ฑ๊ณผ ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜๋ฉด ๋ Œ๋”๋ง ์—”์ง„์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ€ ํŒŒ์‹ฑ์ด ์ค‘๋‹จ๋œ ์‹œ์ ๋ถ€ํ„ฐ ๋‹ค์‹œ ํŒŒ์‹ฑ์„ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์‚ฌ์šฉ์ž๋Š” ์†๋„๊ฐ€ ๋Š๋ ค์ง„ ๊ฒƒ ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๊ณ  ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. ์ด๋Ÿฌํ•œ ์›๋ฆฌ ๋•Œ๋ฌธ์— ์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค๋Š” body ํƒœ๊ทธ ๋์— ๋‘๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ์ž.. 2023. 1. 9.
Get๊ณผ Post์˜ ์ฐจ์ด GET GET method๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์–ด๋– ํ•œ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰ํ•  ๋•Œ์— ์‚ฌ์šฉ๋˜๋Š” method๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. GET์€ ์š”์ฒญ์„ ์ „์†กํ•  ๋•Œ URL ์ฃผ์†Œ ๋์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํฌํ•จ๋˜์–ด ์ „์†ก๋˜๋ฉฐ, ์ด ๋ถ€๋ถ„์„ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง(QueryString)์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. GET ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ด ์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ HTTP Request Message์˜ Header ๋ถ€๋ถ„์˜ url์— ๋‹ด๊ฒจ์„œ ์ „์†ก๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์š”์ฒญ์‹œ url ์ƒ์— ? ๋’ค์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ™์–ด์„œ request๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ &๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. https://localhost:3000/category?postId=3&page=3 ๊ทธ๋ฆฌ๊ณ  GET ์š”์ฒญ์€ ์˜ค๋กœ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ .. 2022. 12. 16.
[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.