๋ธŒ๋ผ์šฐ์ €

1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
2. ์ ‘์†ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ์ดํŠธ์˜ url๋ฅผ ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•œ๋‹ค
3. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž…๋ ฅ๋œ url์˜ ์„œ๋ฒ„์—๊ฒŒ ์‚ฌ์ดํŠธ ์ •๋ณด๋ฅผ ๋ฐ›์•„์™€ ์ด๋ฅผ ํ™”๋ฉด์— ํ‘œํ˜„ํ•œ๋‹ค.
4. ํ‘œํ˜„๋œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ํ™œ์šฉํ•œ๋‹ค.

๊ธฐ๋ณธ ๊ตฌ์กฐ

๋ธŒ๋ผ์šฐ์ €๋ Œ๋”๋ง๊ตฌ์กฐ

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค : ์ฃผ์†Œ ํ‘œ์‹œ์ค„, ์ด์ „/๋‹ค์Œ ๋ฒ„ํŠผ, ๋ถ๋งˆํฌ ๋ฉ”๋‰ด, ์ƒˆ๋กœ๊ณ ์นจ, ํ™ˆ๋ฒ„ํŠผ ๋“ฑ ์š”์ฒญํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ฐฝ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ ์ง€ ๋ชจ๋“  ๋ถ€๋ถ„.

๋ธŒ๋ผ์šฐ์ € ์—”์ง„ : ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ Œ๋”๋ง ์—”์ง„ ์‚ฌ์ด์˜ ๋™์ž‘์„ ์ œ์–ด

๋ Œ๋”๋ง ์—”์ง„ : ์š”์ฒญํ•œ ์ฝ˜ํ…Œ์ธ ๋ฅผ ํ‘œ์‹œ. ์˜ˆ๋ฅผ ๋“ค๋ฉด HTML์„ ์š”์ฒญํ•˜๋ฉด HTML๊ณผ CSS๋ฅผ ํŒŒ์‹ฑ ํ•˜์—ฌ ํ™”๋ฉด์— ํ‘œ์‹œํ•œ๋‹ค.

ํ†ต์‹ : HTTP์š”์ฒญ๊ณผ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ์— ์‚ฌ์šฉ๋จ. ์ด๊ฒƒ์€ ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค์ด๊ณ  ๊ฐ ํ”Œ๋žซํผ ํ•˜๋ถ€์—์„œ ์‹คํ–‰๋œ๋‹ค.

UI ๋ฐฑ์—”๋“œ : ์ฝค๋ณด ๋ฐ•์Šค์™€ ์ฐฝ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์ธ ์žฅ์น˜๋ฅผ ๊ทธ๋ฆฐ๋‹ค. ํ”Œ๋žซํผ์—์„œ ๋ช…์‹œํ•˜์ง€ ์•Š์€ ์ผ๋ฐ˜์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, OS์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉ.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•ด์„๊ธฐ : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰.

์ž๋ฃŒ ์ €์žฅ์†Œ : ์ž๋ฃŒ๋ฅผ ์ €์žฅ. ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ž์›์„ ํ•˜๋“œ ๋””์Šคํฌ์— ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. HTML5 ๋ช…์„ธ์—๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›ํ•˜๋Š” ์›น๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋žœ๋”๋ง ์—”์ง„์ด ํฐ ์—ญํ• ์„ ํ•˜๋Š”๋ฐ ๋ Œ๋”๋ง ์—”์ง„์˜ ์—ญํ• ์€ ์š”์ฒญ๋ฐ›์€ ๋‚ด์šฉ์„ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ์ผ์ด๋‹ค.


๋ Œ๋”๋ง ๊ณผ์ •

๋ธŒ๋ผ์šฐ์ €๋ Œ๋”๋ง๊ฒฝ๋กœ

๋ถˆ๋Ÿฌ์˜ค๊ธฐ (loading) : HTTP ๋ชจ๋“ˆ ๋˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌ๋ฐ›์€ ๋ฆฌ์†Œ์Šค ์ŠคํŠธ๋ฆผ์„ ์ฝ๋Š” ๊ณผ์ •์œผ๋กœ ๋กœ๋”๊ฐ€ ์ด ์—ญํ• ์„ ๋งก๊ณ  ์žˆ๋‹ค. ๋กœ๋”๋Š” ๋‹จ์ˆœํžˆ ์ฝ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ด๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์—ˆ๋Š”์ง€๋„ ํ™•์ธํ•˜๊ณ , ํŒ์—…์ฐฝ์„ ์—ด์ง€ ๋ง์ง€, ๋˜๋Š” ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

๋‹ค์šด๋กœ๋“œํ•œ HTML, CSS๋ฅผ Object Model๋กœ ๋งŒ๋“ ๋‹ค (DOM, CSSOM์ƒ์„ฑ):

๋ธŒ๋ผ์šฐ์ €๋ Œ๋”๋งdom

  • DOM (Document Object Model) : HTMLํƒœ๊ทธ๋ฅผ JS์—์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ HTML๋ฌธ์„œ์˜ ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ํ‘œํ˜„ ๋ฐฉ์‹์ด๋‹ค. HTML์€ DOM์œผ๋กœ : HTMLํŒŒ์ผ์€ HTMLํŒŒ์„œ์— ์˜ํ•ด ํŒŒ์‹ฑ ๋˜์–ด DOMํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๋ Œ๋”๋งdom

  • CSS๋Š” CSSOM์œผ๋กœ : CSSํŒŒ์ผ์€ CSSํŒŒ์„œ์— ์˜ํ•ด ํŒŒ์‹ฑ ๋˜์–ด CSSOMํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ํŒŒ์‹ฑ์ด๋ž€? : ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํŒŒ์‹ฑ ๊ฒฐ๊ณผ๋Š” ๋ณดํ†ต ๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ ํŠธ๋ฆฌ์ธ๋ฐ ํŒŒ์‹ฑ ํŠธ๋ฆฌ ๋˜๋Š” ๋ฌธ๋ฒ• ํŠธ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

Render Tree์ƒ์„ฑ : DOM๊ณผ CSSOM์„ ํ•ฉ์น˜๋ฉฐ Render tree๋ฅผ ๋งŒ๋“ ๋‹ค. ๋ Œ๋”ํŠธ๋ฆฌ์—๋Š” ์Šคํƒ€์ผ ์ •๋ณด๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๊ณ , ์‹ค์ œ ํ™”๋ฉด์— ํ‘œํ˜„๋˜๋Š” ๋…ธ๋“œ๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๋ Œ๋”๋ง๋ Œ๋”ํŠธ๋ฆฌ

Layout : ๋ธŒ๋ผ์šฐ์ €์˜ ๋ทฐํฌํŠธ(Viewport) ๋‚ด์—์„œ ๊ฐ ๋…ธ๋“œ๋“ค์˜ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ƒ์„ฑ๋œ Render Tree ๋…ธ๋“œ๋“ค์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์Šคํƒ€์ผ๊ณผ ์†์„ฑ์— ๋”ฐ๋ผ์„œ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์˜ ์–ด๋А ์œ„์น˜์— ์–ด๋А ํฌ๊ธฐ๋กœ ์ถœ๋ ฅ๋ ์ง€ ๊ณ„์‚ฐํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค.(reflow ๋‹จ๊ณ„) ๋ ˆ์ด์•„์›ƒ ๋‹จ๊ณ„์—์„œ %, vh, vw์™€ ๊ฐ™์ด ์ƒ๋Œ€์ ์ธ ์œ„์น˜, ํฌ๊ธฐ ์†์„ฑ์€ ์‹ค์ œ ํ™”๋ฉด์— ๊ทธ๋ ค์ง€๋Š” ํ”ฝ์…€ ๋‹จ์œ„๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ViewPort : ๊ทธ๋ž˜ํ”ฝ์ด ํ‘œ์‹œ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์˜์—ญ, ํฌ๊ธฐ. ๋ทฐํฌํŠธ๋Š” ๋ชจ๋ฐ”์ผ์˜ ๊ฒฝ์šฐ ๋””์Šคํ”Œ๋ ˆ์ด์˜ ํฌ๊ธฐ, pc์˜ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค.

Paint : Layout ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋˜๋ฉด ์ด์ œ ์š”์†Œ๋“ค์„ ์‹ค์ œ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๊ฒŒ ๋œ๋‹ค. (repaint ๋‹จ๊ณ„) ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์Šคํƒ€์ผ์ด ๋ณต์žกํ• ์ˆ˜๋ก paint ๋‹จ๊ณ„์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ๊ธธ๋‹ค. (๊ฐ€๋ น ๊ทธ๋Ÿฌ๋ฐ์ด์…˜, ๊ทธ๋ฆผ์ž ํšจ๊ณผ > ๋‹จ์ƒ‰ ๋ฐฐ๊ฒฝ)