๐Ÿ›ต [JS] | 13์žฅ. ์›น๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐ์ฒด

post-thumbnail

์‚ฌ์ง„ ์ถœ์ฒ˜ ย ย ย ย ย ย  ๋„์„œ ๊ตฌ๋งค
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž…๋ฌธ | ์ด์†Œ ํžˆ๋กœ์‹œ ์ง€์Œ | ์„œ์žฌ์› ์˜ฎ๊น€ ์ฑ…์„ ์ฝ๊ณ  ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด ์ฑ…์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ์›๋ฆฌ์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…๋“ค์„ ์•„์ฃผ ์‰ฝ๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์ฑ…์ž…๋‹ˆ๋‹ค. ์ด ์ฑ… ๋•๋ถ„์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น ๊ฐœ๋ฐœ๋„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•๋ ฅ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.





13. ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐ์ฒด

  • ์ด ์žฅ์—์„œ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ˜ธ์ŠคํŠธ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์šด๋‹ค.
  • ํ˜ธ์ŠคํŠธ ๊ฐ์ฒด : ECMASCRIPT๋กœ ๊ทœ์ •๋œ ๊ธฐ๋ณธ ๊ฐ์ฒด ์™ธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ์— ์ •์˜๋œ ๊ฐ์ฒด
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ํ˜ธ์ŠคํŠธ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด CSS๋กœ ์Šคํƒ€์ผ ์ œ์–ด,
    HTML๋ฌธ์„œ ์ œ์–ด, ์›น๋ธŒ๋ผ์šฐ์ €์˜ window๊ฐ์ฒด ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋Œ€ํ™”ํ˜•(Interactive) ์›นํŽ˜์ด์ง€๋ฅผ ๋™์ (Dynamic)์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”น ํด๋ผ์ด์–ธํŠธ ์ธก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(ํด๋ผ์ด์–ธํŠธ ์ธก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)์˜ ์ „์ฒด ๋™์ž‘์„ ์ •๋ฆฌํ•œ๋‹ค.

๐Ÿ”น ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•˜๋Š” ์ผ

  1. ์›นํŽ˜์ด์ง€์˜ Document๊ฐ์ฒด ์ œ์–ด
    • HTML์š”์†Œ์™€ css์Šคํƒ€์ผ ์ž‘์—…
    • DOM APIํ™œ์šฉ
  2. ์›นํŽ˜์ด์ง€์˜ Window๊ฐ์ฒด ์ œ์–ด ๋ฐ ๋ธŒ๋ผ์šฐ์ € ์ œ์–ด
    : ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋‚ด์žฅ๋œ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด๋ฅผ ํ™œ์šฉ
  3. ์›น ํŽ˜์ด์ง€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
    : ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ์™€ ํƒ€์ด๋จธ
  4. HTTP๋ฅผ ์ด์šฉํ•œ ํ†ต์‹  ์ œ์–ด
    : XMLHttpRequest๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•œ HTTPํ†ต์‹ 

๐Ÿ”น ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์ˆœ์„œ

  • ๋ Œ๋”๋ง ์—”์ง„ : ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ HTML๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ํ‘œ์‹œํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
  • ๋ Œ๋”๋ง ์—”์ง„์€ ๋‹ค์Œ ๊ณผ์ •์„ ๊ฑฐ์ณ HTML๋ฌธ์„œ์˜ ๊ตฌ๋ฌธ์„ ๋ถ„์„ํ•˜๊ณ  DOMํŠธ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•œ ํ›„์— HTML์•ˆ์— ์ €์žฅ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  1. ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ์—ด๋ฉด ๊ฐ€์žฅ ๋จผ์ € window๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
    Window๊ฐ์ฒด๋Š” ์›นํŽ˜์ด์ง€์˜ ์ „์—ญ ๊ฐ์ฒด๋กœ ์›น ํŽ˜์ด์ง€์™€ ํƒญ๋งˆ๋‹ค ์ƒ์„ฑ๋œ๋‹ค.
  2. Document๊ฐ์ฒด๊ฐ€ Window๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ์›นํŽ˜์ด์ง€๋ฅผ ํ•ด์„ํ•ด์„œ DOMํŠธ๋ฆฌ์˜ ๊ตฌ์ถ•์„ ์‹œ๋„ํ•œ๋‹ค.
    Document๊ฐ์ฒด๋Š” readyStateํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด ํ”„๋กœํผํ‹ฐ์—๋Š” HTML๋ฌธ์„œ์˜ ํ•ด์„ ์ƒํƒœ๋ฅผ ๋œปํ•˜๋Š” ๋ฌธ์ž์—ด์ด ์ €์žฅ๋œ๋‹ค.
    readyStateํ”„๋กœํผํ‹ฐ์˜ ์ดˆ๊ธฐ๊ฐ’์€ "loading"์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค.
ํ”„๋กœํผํ‹ฐ (p92)
- ๊ฐ์ฒด : ์ด๋ฆ„๊ณผ ๊ฐ’์„ ํ•œ ์Œ์œผ๋กœ ๋ฌถ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋ชจ์€ ๊ฒƒ์ด๋‹ค.
- ํ”„๋กœํผํ‹ฐ : ๊ฐ์ฒด์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ ํ•˜๋‚˜, 
  (์ด๋ฆ„๊ณผ ๊ฐ’์˜ ์Œ)์„ ๊ฐ€๋ฆฌ์ผœ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ผ๊ณ  ํ•œ๋‹ค.
ex.
var card = {
  suit : "ํ•˜ํŠธ", โ† ํ”„๋กœํผํ‹ฐ
  rank : "A"  โ† ํ”„๋กœํผํ‹ฐ
};
  1. HTML๋ฌธ์„œ๋Š” HTML๊ตฌ๋ฌธ์„ ์ž‘์„ฑ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ถ„์„ํ•˜์—ฌ Document๊ฐ์ฒด ์š”์†Œ์™€ ํ…์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐ„๋‹ค.
  2. HTML๋ฌธ์„œ ์•ˆ์— script์š”์†Œ๊ฐ€ ์žˆ์œผ๋ฉด script์š”์†Œ ์•ˆ์˜ ์ฝ”๋“œ ๋˜๋Š” ์™ธ๋ถ€ ํŒŒ์ผ์— ์ €์žฅ๋œ ์ฝ”๋“œ์˜ ๊ตฌ๋ฌธ์„ ๋ถ„์„ํ•œ๋‹ค.
    ๊ทธ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ ์‹œ์ ์— ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    ์ด ๋•Œ script์š”์†Œ๋Š” ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.
    ์ฆ‰, script์š”์†Œ์˜ ๊ตฌ๋ฌธ์„ ๋ถ„์„ํ•ด์„œ ์‹คํ–‰ํ•  ๋•Œ๋Š” HTML๋ฌธ์„œ์˜ ๊ตฌ๋ฌธ ๋ถ„์„์ด ์ผ์‹œ์ ์œผ๋กœ ๋ง‰ํžˆ๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ์™„๋ฃŒํ•œ ํ›„์—๋Š” ์ผ์‹œ์ ์œผ๋กœ ๋ง‰ํ˜€ ์žˆ์—ˆ๋˜ HTML๋ฌธ์„œ์˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์žฌ๊ฐœํ•œ๋‹ค.
๋™๊ธฐ : ์ˆœ์ฐจ์ ์œผ๋กœ
  1. HTML๋ฌธ์„œ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ์ฝ์€ ํ›„์— DOMํŠธ๋ฆฌ ๊ตฌ์ถ•์„ ์™„๋ฃŒํ•˜๋ฉด document.readyStateํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ด interactive๋กœ ๋ฐ”๋€๋‹ค.
interactive : ๋Œ€ํ™”ํ˜•, ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š”
  1. ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” Document๊ฐ์ฒด์— DOMํŠธ๋ฆฌ ๊ตฌ์ถ• ์™„๋ฃŒ๋ฅผ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด DOMContentLoaded์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
  2. img๋“ฑ์˜ ์š”์†Œ๊ฐ€ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋“ฑ์˜ ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฝ์–ด ๋“ค์—ฌ์•ผ ํ•œ๋‹ค๋ฉด ์ด ์‹œ์ ์— ์ฝ์–ด ๋“ค์ธ๋‹ค.
  3. ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์ฝ์–ด๋“ค์ธ ํ›„์—๋Š” document.readyStateํ”„๋กœํผํ‹ฐ ๊ฐ’์ด "complete"๋กœ ๋ฐ”๋€๋‹ค.
    ๋งˆ์ง€๋ง‰์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” Window๊ฐ์ฒด๋ฅผ ์ƒ๋Œ€๋กœ load์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
  4. ์ด ์‹œ์ ๋ถ€ํ„ฐ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ(์‚ฌ์šฉ์ž์ •์˜ ์ด๋ฒคํŠธ, ๋„คํŠธ์›Œํฌ ์ด๋ฒคํŠธ)๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉฐ, ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๋น„๋™๊ธฐ๋กœ ํ˜ธ์ถœ๋œ๋‹ค.
profile
๋ช‡ ๋ฒˆ์„ ๋„˜์–ด์ ธ๋„ ์•ž์œผ๋กœ ๊ณ„์† ๋‚˜์•„๊ฐ€์ž

1๊ฐœ์˜ ๋Œ“๊ธ€

13.1.3 ๊นŒ์ง€ ์ž‘์„ฑํ•จ

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ