๐Ÿ–ฅ ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘ ์›๋ฆฌ์™€ ์ตœ์ ํ™”

์€์œ ๋กœ๊ทธยท2022๋…„ 1์›” 27์ผ
0

๐Ÿ“š study

๋ชฉ๋ก ๋ณด๊ธฐ
20/21
post-thumbnail

๋ธŒ๋ผ์šฐ์ €๋ž€?

๋ธŒ๋ผ์šฐ์ €๋Š” ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์›น ํŽ˜์ด์ง€์— ์ ‘๊ทผ์„ ํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด๋‹ค.

<๋„ค์ด๋ฒ„, ๊ตฌ๊ธ€, ๋‹ค์Œ> ๋“ฑ์˜ ์›น ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด <ํฌ๋กฌ, ์‚ฌํŒŒ๋ฆฌ, ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ>์™€ ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ ‘์†ํ•ด์•ผ ํ•œ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์ฃผ์š” ๊ธฐ๋Šฅ

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

์ž์›์€ ๋ณดํ†ต HTML ๋ฌธ์„œ์ง€๋งŒ PDF, ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ํ˜•ํƒœ์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— URL์„ ์ž…๋ ฅ ํ›„ ์›น ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋ฉด, ์›น ์„œ๋ฒ„์—์„œ ์ž์›์„ ์‘๋‹ตํ•˜๊ณ  ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ ์›น ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋ณดํ†ต ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์œ„์น˜ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์›น ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰์ค‘์ธ ์ปดํ“จํ„ฐ์˜ ์ฃผ์†Œ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ, ์ด ์ฃผ์†Œ๋ฅผ IP ์ฃผ์†Œ๋ผ๊ณ  ํ•œ๋‹ค.

IP ์ฃผ์†Œ๋Š” 192.168.0.1๊ณผ ๊ฐ™์€ ์ˆซ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ์™ธ์šฐ๊ธฐ ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— naver.com, google.com๊ณผ ๊ฐ™์€ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋•Œ IP ์ฃผ์†Œ์™€ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์„œ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์“ฐ์ด๋Š” ๊ฒƒ์ด DNS๋‹ค.

๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

  • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)
    : ์ฃผ์†Œ์ฐฝ, ์ด์ „/๋‹ค์Œ ๋ฒ„ํŠผ, ๋ถ๋งˆํฌ ๋“ฑ ์š”์ฒญํ•œ ํŽ˜์ด์ง€๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ชจ๋“  ๋ถ€๋ถ„
  • ๋ธŒ๋ผ์šฐ์ € ์—”์ง„
    : ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ Œ๋”๋ง ์—”์ง„ ์‚ฌ์ด์˜ ๋™์ž‘ ์ œ์–ด
  • ๋ Œ๋”๋ง ์—”์ง„
    : ์š”์ฒญํ•œ ์ฝ˜ํ…์ธ  ํ‘œ์‹œ
  • ํ†ต์‹ 
    : ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ(HTTP ์š”์ฒญ)์— ์‚ฌ์šฉ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•ด์„๊ธฐ
    : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰
  • UI ๋ฐฑ์—”๋“œ
    : ์ฒดํฌ ๋ฐ•์Šค, ์ฝค๋ณด ๋ฐ•์Šค ๋“ฑ ๊ธฐ๋ณธ์ ์ธ ์žฅ์น˜ ๋ Œ๋”๋ง
  • ์ž๋ฃŒ ์ €์žฅ์†Œ
    : ์ฟ ํ‚ค ์ €์žฅ๊ณผ ๊ฐ™์€ ์ž๋ฃŒ ์ €์žฅํ•˜๋Š” ๊ณ„์ธต. ์›น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ Œ๋”๋ง ๋™์ž‘ ๊ณผ์ •

์œ„ ๊ทธ๋ฆผ์€ ๋ Œ๋”๋ง ์—”์ง„์˜ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๊ณผ์ •์ด๋‹ค. ์›นํ‚ท ์—”์ง„ ๊ธฐ์ค€์œผ๋กœ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

1. DOM(Document Object Model)๊ณผ CSSOM(CSS Object Model ์ƒ์„ฑ, JS ํ•ด์„

  • HTML๊ณผ CSS(Style Sheets) ๋ฌธ์„œ๋Š” ๊ฐ๊ฐ Parser๋ฅผ ํ†ตํ•ด ํŒŒ์‹ฑ๋˜์–ด ๊ฐ๊ฐ Object Model๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค. ๊ทธ๊ฒƒ์ด DOM๊ณผ CSSOM์ด๋‹ค.
  • DOM ๊ตฌ์ถ•์€ ์ ์ง„์ ์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด ์ „์ฒด HTML์ด ํŒŒ์‹ฑ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ , ์ ์ง„์ ์œผ๋กœ ๋จผ์ € ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค.
  • HTML ๋ฌธ์„œ๋Š” ๋ฌธ๋ฒ•์  ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์ตœ์†Œ ๋‹จ์œ„์ธ ํ† ํฐ์œผ๋กœ ๋ถ„ํ•ดํ•œ ๋’ค, ํ† ํฐ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฐ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋…ธ๋“œ๋“ค์€ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํ˜•์„ฑํ•˜์—ฌ DOM์„ ์ƒ์„ฑํ•œ๋‹ค.
  • HTML ๋ฌธ์„œ๋ฅผ ํ•œ์ค„์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ํŒŒ์‹ฑํ•˜์—ฌ DOM์„ ์ƒ์„ฑํ•˜๋‹ค๊ฐ€, style ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด DOM ์ƒ์„ฑ์„ ์ž ์‹œ ๋ฉˆ์ถ”๊ณ  CSSOM ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•œ๋‹ค.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•˜๋Š” script ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด DOM ์ƒ์„ฑ์„ ์ž ์‹œ ์ค‘๋‹จํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ํ†ตํ•ด ํŒŒ์‹ฑํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

2. Render Tree ๊ตฌ์ถ•

  • ์ƒ์„ฑ๋œ DOM๊ณผ CSSOM์„ ํ•ฉ์น˜๋Š” ๊ณผ์ •(Attachment)์„ ๊ฑฐ์น˜๋ฉด ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ํ˜•์„ฑํ•œ๋‹ค.
  • DOM์˜ ๋ฃจํŠธ๋ถ€ํ„ฐ ๋ชจ๋‘ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ์ผ๋ถ€ ๋…ธ๋“œ๋“ค(script, meta ํƒœ๊ทธ ๋“ฑ)๊ณผ display:none๊ฐ™์€ ์†์„ฑ์ด ์žˆ๋Š” ๋…ธ๋“œ๋“ค์€ ๋ Œ๋” ํŠธ๋ฆฌ์—์„œ ์ œ์™ธ๋œ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œ๋˜๋Š” ๊ฐ ๋…ธ๋“œ์— ๋งž๋Š” CSSOM ๊ทœ์น™์„ ์ฐพ์•„ ์ ์šฉํ•˜๊ณ  ์ฝ˜ํ…์ธ  ๋ฐ ๊ณ„์‚ฐ๋œ ์Šคํƒ€์ผ๊ณผ ํ•จ๊ป˜ ๋ Œ๋” ํŠธ๋ฆฌ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

3. Layout ๋ฐฐ์น˜

  • ๋ Œ๋” ํŠธ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋œ ํ›„, ๋ทฐํฌํŠธ์˜ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋Œ€ ๋‹จ์œ„(vh, vw, %, rem ...)๊ฐ€ ์ ˆ๋Œ€ ๋‹จ์œ„์ธ px๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

4. Render Tree ๊ทธ๋ฆฌ๊ธฐ

  • ๋ Œ๋” ํŠธ๋ฆฌ์˜ ๊ฐ ๋…ธ๋“œ๋“ค์„ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œํ•  ๋•Œ painting ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ํ™”๋ฉด์— UI๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋œ๋‹ค.

์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”

  1. ํ†ต์‹ ์„ ํ†ตํ•ด ์‘๋‹ต ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ ํฌ๊ธฐ(๋ฐ”์ดํŠธ ์ˆ˜) ์ตœ์†Œํ™”ํ•˜๊ธฐ
  2. ์ค‘์š”ํ•œ ์ž์›(๋ฆฌ์†Œ์Šค)์˜ ๊ฐœ์ˆ˜ ์ค„์ด๊ธฐ
  3. CRP(Critical Rendering Path)์˜ ๊ธธ์ด ์ค„์ด๊ธฐ
CRP์˜ ๊ธธ์ด๋ž€?
์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ค‘์š”ํ•œ ์ž์›์„ ์‘๋‹ต ๋ฐ›๊ธฐ ์œ„ํ•ด ์™•๋ณตํ•ด์•ผํ•˜๋Š” ํšŸ์ˆ˜
  • ์ตœ์†Œํ™”, ์••์ถ•, ์บ์‹ฑ
    : HTML, CSS, JS
  • css๋Š” ๋ Œ๋”๋ง ์ง„ํ–‰์„ ๋ฐฉํ•ดํ•œ๋‹ค. ๋ Œ๋”๋ง์„ ๋ง‰์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€?
    : inline style sheet ๋˜๋Š” ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์‚ฌ์šฉ
  • js๋Š” html ๋ฌธ์„œ ํŒŒ์‹ฑ์„ ๋ฐฉํ•ดํ•œ๋‹ค. ํŒŒ์‹ฑ์„ ๋ง‰์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€?
    : js ์‹คํ–‰ ๋ณด๋ฅ˜. defer ์†์„ฑ ๋˜๋Š” async ์†์„ฑ ์‚ฌ์šฉ

์ฐธ๊ณ 
๋ธŒ๋ผ์šฐ์ €๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€?_NaverD2
์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋™์ž‘์›๋ฆฌ๋ฅผ ์•Œ์•„๋ณด์ž_thyoondev๋‹˜
[IT ๊ธฐ์ˆ ] ์›น๋ธŒ๋ผ์šฐ์ € ๋™์ž‘์›๋ฆฌ_๊ฐœ๋ฐœ ๊นŒ๋งˆ๊ท€๋‹˜
Web Performance Optimization_Udacity ์œ ํŠœ๋ธŒ

profile
เน‘โ€ขโ€ฟโ€ขเน‘

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