๋งค์ฃผ ์ 7, ํ 10์๋ง๋ค ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ๋ค์ด๋ธ ๊ต์ฌ๋ฅผ ๋ฐํ์ผ๋ก ์คํฐ๋๋ฅผ ์งํํ๊ธฐ๋ก ํ๋ค.
์ฑํฐ๋ณ๋ก ๊ฐ์ ์ ์ ํ ์ง๋ฌธ 3๊ฐ๋ฅผ ์ค๋นํด ํจ๊ป ํ์ด๋ณด๋ฉฐ, js ๋ฅผ ๊น๊ฒ ์ดํดํ๊ณ ์ ํ๋ค.
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ ์ ํฌ๊ฒ ๋ ํํธ๋ก ๋๋์ด์ง๋๋ค. construction ๊ณผ operation.
์ด ์ค, operation ๋ถ๋ถ์ ์ดํด๋ณด๋ฉด, layout ์ ๋จผ์ ์ด๋ค ์์๋ฅผ ์ด๋ป๊ฒ ๋ฐฐ์นํ ์ง์ ๋ํ ํ์ ์ก๋ ๋จ๊ณ์ ๋๋ค.
paint ๋ ํฌํ ์ต์ ์๊ฐํ๋ฉด ์ฌ์ด๋ฐ, ๊ด๋ จ ์๋ ์์๋ฅผ ๋ ์ด์ด๋ก ๋ถ๋ฆฌ ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฑ๋ฅ์ต์ ํ๋ฅผ ์ํด ์ผ๋ถ ์์๊ฐ ์ด๋ฒคํธ๋ ์ ๋๋ฉ์ด์ ์ผ๋ก ์ธํด ๋ณ๊ฒฝ๋ ๋, ๊ด๋ จ์๋ ๋ค๋ฅธ ์์๋ค๋ ํ๊บผ๋ฒ์ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ๋ณํ๊ฐ ์ผ์ด๋ ์ ์๋ ์์๋ค๋ผ๋ฆฌ ๊ทธ๋ฃนํ ์ํค๋ ์์ ์ ๋๋ค. ์์ปจ๋ฐ, css ์๋ will-change ๋ผ๋ ์์ฑ์ด ์๋๋ฐ, ์ด๋ ํด๋น ์์๊ฐ ๋ณ๊ฒฝ๋ ์์๋ค๋ ์๋ฏธ๋ก ์ด ์์ฑ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ธ๋ผ์ฐ์ ์์ ๋จ๋ ์ ์ธ ๋ ์ด์ด๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฌ๋, ๋๋ฌด ์์ฃผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ ์ด์ด๋ฅผ ๋ง์ด ์์ฑํ๊ฒ ๋๋ฉด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค๋ ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ ์ ํ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ปดํฌ์ง์ ์ ๋ ์ด์ด๋ก ๋ถ๋ฆฌ๋ ๊ฒ๋ค์ ํฉ์ณ์ ์์ ํ ํํ๋ก ๊ตฌํํ๋ ๋จ๊ณ์ ๋๋ค. ์ต๋ํ, ์์๋จ๊ณ์ธ ๋ ์ด์์๋ถํฐ ๋ค์ ๊ทธ๋ ค์ง๋ ๊ฒ์ ๋ง๊ณ , ๋์ค ๋จ๊ณ์ ์์ ๋ง ์ด๋ค์ง๋๋ก ํ๋ ๊ฒ์ด ์ฑ๋ฅ ๊ฐ์ ์ ๋์์ด ๋ฉ๋๋ค.
์๋์ ์ฌ์ดํธ์์, css ์ ์์ฑ๋ณ๋ก ๋ธ๋ผ์ฐ์ ์์ ์ด๋ค ๋จ๊ณ๊น์ง ๋ณํ๋ฅผ ์๊ตฌํ๋ ์ง ํ์ธํด ๋ณผ ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ณ๋ก ์กฐ๊ธ์ฉ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, ๊ฐ๊ธฐ ์ฒดํฌํด๋ด์ผํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ html ์ ๋ ๋๋ง์์ง์ผ๋ก ๋๊ธฐ์ ํ์ฑํ๋ค๊ฐ, css ํ์ผ์ ๋ก๋ํ๋ linkํ๊ทธ๋, ์ด๋ฏธ์ง ํ์ผ์ ๋ก๋ํ๋ imgํ๊ทธ, js๋ฅผ ๋ก๋ํ๋ script ํ๊ทธ๋ฑ์ ๋ง๋๋ฉด html์ ํ์ฑ์ ์ค๋จ(๋ธ๋กํน)ํ๊ณ ํด๋น ๋ฆฌ์์ค ํ์ผ์ ์๋ฒ๋ก ์์ฒญํ๊ฒ ๋๋ฉด์ js ์์ง์ผ๋ก ์ ์ด๊ถ์ ๋๊ธด๋ค.
๋ ๋๋ง ์์ง์ html ๊ณผ css๋ฅผ ํ์ฑํ์ฌ ๋ ๋ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค. ๋ ๋ํธ๋ฆฌ๋ html๋ DOM ๊ณผ CSSOM ํธ๋ฆฌ๊ฐ ํฉ์ณ์ ธ ๊ตฌ์ฑ๋๋ค. ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ์ด์์์ ๊ณ์๋๊ณ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ html ์์๊ฐ ํ์ธํ ๋๋ค. js ์์ง์ js๋ฅผ ํ์ฑํ์ฌ AST ๋ฅผ ์์ฑํ๊ณ ๋ฐ์ดํธ ์ฝ๋๋ก ๋ณํํ์ฌ ์คํํ๋ค. ์ด๋ DOM API ๋ฅผ ํตํด DOM ์ด๋ CSSOM ์ ๋ณ๊ฒฝํ ์ ์๋ค.
display: none ์ ๋ ๋ํธ๋ฆฌ์ ๊ทธ๋ ค ์ง์ง ์๊ณ , ๋๋ฌธ์ dom api ๋ฅผ ์ฌ์ฉํด ์กฐ์์ด ๋ถ๊ฐ๋ฅ ํ๋ค. visibility hidden ์ ๋ ๋ํธ๋ฆฌ์ ์กด์ฌํ์ง๋ง ๋ณด์ฌ์ง์ง ์๋ ์์ฑ์ผ๋ก, width ์ height๋ฅผ ์ค ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์์ ์ผ์ ๊ณต๊ฐ์ ์ฐจ์งํ ์ ์๊ณ dom api๋ฅผ ํตํ ์กฐ์๋ ๊ฐ๋ฅํ๋ค.
async ์ defer ์ดํธ๋ฆฌ๋ทฐํธ๋ html ํ์ฑ๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ๋ก๋๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋์์ ์คํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ํ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์ ์คํ์์ ์ ์ฐจ์ด๊ฐ ์๋ค.
async ๋ ์๋ฐ์คํฌ๋ฆฝํธํ์ผ์ ๋ก๋๊ฐ ์๋ฃ๋๋ฉด ์ฆ์ ์คํ๋๋ฉฐ, ์ด๋ก์ธํด htmlํ์ฑ์ด ์ค๋จ๋๋ค. ์ฌ๋ฌ๊ฐ์ script ํ๊ทธ์ async ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ง์ ํ๋ฉด script ํ๊ทธ ์์์ ์๊ด์์ด ๋ก๋ ์๋ฃ๋ js๋ถํฐ ์คํ๋๋ฏ๋ก ์์๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค.
defer์ html ํ์ฑ๊ณผ js ๋ก๋๊ฐ ๋์์ ์คํ๋์ง๋ง, html ํ์ฑ์ด ์๋ฃ๋ ์ดํ(dom ์ด ์์ฑ๋ ์ดํ) ์์ฐจ์ ์ผ๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ ์์๊ฐ ๋ณด์ฅ๋๋ค. (๊ถ์ฅ)