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

javascript/๐Ÿ“– study39

[10์ฃผ์ฐจ ์Šคํ„ฐ๋””]43์žฅ-Ajax Ajax Ajax๋ž€? Ajax๋ž€ Asynchronous JavaScript And Xml ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ์›นํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๊ณตํ•˜๋Š” Web API์ธ XMLHttpRequest ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ ์ด์ „์˜ ์›นํŽ˜์ด์ง€๋Š” HTML์„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „์†ก ๋ฐ›์•„ ์›นํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ ํ•จ ์ „ํ†ต์ ์ธ ๋ฐฉ์‹์˜ ๋‹จ์  ์ด์ „ ์›นํŽ˜์ด์ง€์™€ ์ฐจ์ด๊ฐ€ ์—†์–ด ๋ณ€๊ฒฝํ•  ํ•„์š” ์—†๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ํฌํ•จํ•œ ์™„์ „ํ•œ HTML์„ ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋งค๋ฒˆ ๋‹ค์‹œ ์ „์†ก ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์ด ๋ฐœ์ƒ ํ™”๋ฉด ์ „ํ™˜์ด ์ผ์–ด๋‚˜๋ฉด์„œ ์ˆœ๊ฐ„์ ์œผ๋กœ ๊นœ๋นก์ด๋Š” ํ˜„์ƒ ๋ฐœ์ƒ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์ด ๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘.. 2022. 4. 2.
[์Šคํ„ฐ๋”” 10์ฃผ์ฐจ]42์žฅ- ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋™๊ธฐ ์ฒ˜๋ฆฌ์™€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ๊ฐœ๋… ์•Œ๊ณ  ๊ฐ€๊ธฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ฝ”๋“œ๊ฐ€ ํ‰๊ฐ€ ๋˜์–ด ์ฝœ์Šคํƒ์— ํ‘ธ์‹œ ๋˜๊ณ  ํ•จ์ˆ˜ ์ฝ”๋“œ ์‹คํ–‰์ด ์ข…๋ฃŒ ๋˜๋ฉด ํ•จ์ˆ˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ์Šคํƒ์—์„œ ํŒ๋˜์–ด ์ œ๊ฑฐ ๋จ ํ•จ์ˆ˜ ์ฝ”๋“œ ํ‰๊ฐ€ ๊ณผ์ •์„ ํ†ตํ•ด ํ•จ์ˆ˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์ƒ์„ฑ ๋จ ์ฆ‰, ์ฝœ์Šคํƒ์— ํ•จ์ˆ˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ํ‘ธ์‹œ ๋จ === ํ•จ์ˆ˜ ์‹คํ–‰์˜ ์‹œ์ž‘์„ ์˜๋ฏธ ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์ˆœ์„œ๋Š” ์‹คํ–‰์ปจํ…์ŠคํŠธ ์Šคํ…์œผ๋กœ ๊ด€๋ฆฌ ๋จ ๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์ดํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋‹จ ํ•˜๋‚˜์˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์Šคํƒ ๊ฐ–๋Š”๋‹ค ๋™์‹œ์— 2๊ฐœ ์ด์ƒ์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ์ตœ์ƒ์œ„ (์‹คํ–‰ ์ค‘์ธ ํ•จ์ˆ˜)๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋‘ ์‹คํ–‰ ๋Œ€๊ธฐ ์ค‘์ธ ํƒœ์Šคํฌ(Task) ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํƒœ์Šคํฌ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(single thread) .. 2022. 4. 2.
[9์ฃผ์ฐจ ์Šคํ„ฐ๋””]41์žฅ-ํƒ€์ด๋จธ ํƒ€์ด๋จธ ํ˜ธ์ถœ ์Šค์ผ€์ค„๋ง ํ•จ์ˆ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ผ์ • ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผ๋œ ์ดํ›„์— ํ˜ธ์ถœ์„ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ์„ ํ˜ธ์ถœ ์Šค์ผ€์ค„๋ง ์ด๋ผ ํ•จ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ํƒ€์ด๋จธ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณต ํƒ€์ด๋จธ ์ƒ์„ฑ ํ•จ์ˆ˜ : setTimeout, setInterval ํƒ€์ด๋จธ ์ œ๊ฑฐ ํ•จ์ˆ˜ : clearTimeout, clearInterval ํƒ€์ด๋จธ ํ•จ์ˆ˜๋Š” ECMAScript ์‚ฌ์–‘์— ์ •์˜๋œ ๋นŒํŠธ์ธ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค. Node.js ํ™˜๊ฒฝ์—์„œ ์ „์—ญ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ์ฆ‰, ํ˜ธ์ŠคํŠธ ๊ฐ์ฒด ํƒ€์ด๋จธ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์„ฑํ•œ ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋˜๋ฉด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๋™์ž‘ ๋ฐฉ์‹ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(single thread)๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ€์ด๋จธ ํ•จ์ˆ˜ setTimeout, setInterval์€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ ํ•œ๋‹ค. ํƒ€์ด๋จธ ํ•จ์ˆ˜ setTimeout/ c.. 2022. 3. 27.
[9์ฃผ์ฐจ ์Šคํ„ฐ๋””]40์žฅ-์ด๋ฒคํŠธ ์ด๋ฒคํŠธ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ํŠน์ • ์‚ฌ๊ฑด์ด ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฒคํŠธ(event)๋ฅผ ๋ฐœ์ƒ ์‹œํ‚ต๋‹ˆ๋‹ค. ํŠน์ • ํƒ€์ž…์˜ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ํ˜ธ์ถœ ๋  ํ•จ์ˆ˜๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์•Œ๋ ค ํ˜ธ์ถœ์„ ์œ„์ž„ ํ•œ๋‹ค. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋  ํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(event handler)๋ผ๊ณ  ํ•จ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์„ ๋•Œ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ํ•ธ๋“ค๋Ÿฌ์˜ ํ˜ธ์ถœ์„ ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์„ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ์ด๋ฒคํŠธ ๋“œ๋ฆฌ๋ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ผ ํ•œ๋‹ค. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ธŒ๋ผ์šฐ์ €์— ํ˜ธ์ถœ์„ ์œ„์ž„ํ•œ ํ•จ์ˆ˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก ๋ฐฉ๋ฒ• 3๊ฐ€์ง€ ์ธ๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๋ฐฉ์‹ HTML ์š”์†Œ์˜ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์ค‘์— ์ด๋ฒคํŠธ์— ๋Œ€์‘ํ•˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์žˆ๋‹ค. ์–ดํŠธ.. 2022. 3. 27.
[8์ฃผ์ฐจ ์Šคํ„ฐ๋””]39์žฅ-DOM DOM DOM(Document Object Model)์€ HTML ๋ฌธ์„œ์˜ ๊ณ„์ธต์  ๊ตฌ์กฐ์™€ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋ฉฐ ์ด๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” API ์ฆ‰, ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ์ด๋‹ค. ๋…ธ๋“œ HTML ์š”์†Œ๋Š” HTML ๋ฌธ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐœ๋ณ„ ์ ์ธ ์š”์†Œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. HTML ์š”์†Œ๋Š” ๋ Œ๋”๋ง ์—”์ง„์— ์˜ํ•ด ํŒŒ์‹ฑ๋˜์–ด DOM์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ ๋…ธ๋“œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ HTML ์š”์†Œ ๊ฐ„์—๋Š” ์ค‘์ฒฉ ๊ด€๊ณ„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๊ด€๊ณ„๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ HTML ์š”์†Œ๋ฅผ ๊ฐ์ฒดํ™”ํ•œ ๋ชจ๋“  ๋…ธ๋“œ ๊ฐ์ฒด๋“ค์„ ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. ๋…ธ๋“œ ๊ฐ์ฒด์˜ ํƒ€์ž… ๋…ธ๋“œ ๊ฐ์ฒด๋Š” ์ƒ์† ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ด 12๊ฐœ ์ข…๋ฅ˜์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ 4๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋…ธ๋“œ ํƒ€์ž…์„ ์ •๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์„œ ๋…ธ๋“œ(document node) DOM ํŠธ๋ฆฌ์˜ ์ตœ์ƒ์œ„์— ์กด์žฌํ•˜๋Š” ๋ฃจํŠธ .. 2022. 3. 27.
[8์ฃผ์ฐจ ์Šคํ„ฐ๋””]38์žฅ-๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ • ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ € ์œ„์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML, CSS, javascript ๋กœ ์ž‘์„ฑ๋œ ํ…์ŠคํŠธ ๋ฌธ์„œ๋ฅผ ์–ด๋–ป๊ฒŒ ํŒŒ์‹ฑํ•˜์—ฌ ๋ Œ๋”๋งํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์‹ฑ(parsing) ํŒŒ์‹ฑ(๊ตฌ๋ฌธ ๋ถ„์„ syntax analysis)์€ ํ…์ŠคํŠธ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋“ค์—ฌ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ…์ŠคํŠธ ๋ฌธ์„œ์˜ ๋ฌธ์ž์—ด์„ ํ† ํฐ(token)์œผ๋กœ ๋ถ„ํ•ด(์–ดํœ˜ ๋ถ„์„ lexical analysis)ํ•˜๊ณ  ํ† ํฐ์˜ ๋ฌธ๋ฒ•์  ์˜๋ฌด์™€ ๊ตฌ์กฐ๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ํŒŒ์Šค ํŠธ๋ฆฌ(parse tree)๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์‹ฑ์ด ์™„๋ฃŒ๋œ ์ดํ›„์—๋Š” ํŒŒ์ŠคํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ค‘๊ฐ„์–ธ์–ด์ธ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ Œ๋”๋ง(rendering) ๋ Œ๋”๋ง HTML, CSS ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ๋œ ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—.. 2022. 3. 27.