๋ธ๋ผ์ฐ์ ๋ HTML์ ์ฝ๋ค๊ฐ script ํ๊ทธ๋ฅผ ๋ง๋๋ฉด ์คํฌ๋ฆฝํธ๋ฅผ ๋จผ์ ์คํํด์ผํ๋ฏ๋ก DOM ์์ฑ์ ๋ฉ์ถ๋ค.
src ์์ฑ์ด ์๋ ์ธ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ฌ์ ๋๋ ๋ง์ฐฌ๊ฐ์ง
์ธ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ฐ๊ณ ์คํํ ํ์์ผ ๋จ์ ํ์ด์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
๋ง์ฝ jsํ์ผ ์ฌ์ด์ฆ๊ฐ ํฌ๊ณ ์ธํฐ๋ท์ด ๋ถ์์ ํ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ๋ฅผ ๋ณผ ๋๊น์ง ์๊ฐ์ด ์์๋๋ค.
body๋ ๋ถ๋ถ์๋ scriptํ๊ทธ๋ฅผ ์์น ์ํค๋ฉด html ๋ค์ด๋ก๋๊ฐ ๋๋๋ค ๋ค์ด ๋ฐ๋๋ค.
์ฌ์ฉ์ ์ ์ฅ์์๋ ํ์ด์ง๊ฐ js๋ฅผ ๋ฐ๊ธฐ๋ ์ ์ ์ด๋ฏธ ์ค๋น๊ฐ ๋์ด์์ด ํ์ด์ง์์ ์ฝํ ์ธ ๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ ์ ์๋ค๋ ์ฅ์ ์ด ์๊ธด๋ค.
๋จ์ ์ ์น์ฌ์ดํธ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ์์กด์ ์ธ ์ํ๋ก ๊ฐ๋ฐ์ด ๋์๋ค๋ฉด js๋ฅผ ๋ค์ด ๋ฐ์ง ์์๋๋ฐ๋ ์์๋ฅผ ํด๋ฆญํ์ฌ js๊ฐ ์ ๋๋ก ๋์ํ์ง ์์ ์ ์๋ค.
async์์ฑ์ DOM ๋ ๋๋ง ๊ณผ์ ์ ๋ฐฉํดํ์ง ์๋๋ก ํ๋ค.
ํ์ง๋ง async๋ ์คํ์์๊ฐ ์ ํด์ ธ ์์ง์์ js๋๊ฐ๊ฐ ์๋ก ์์กด์ฑ์ด ์๋ค๋ฉด ์ ๋๋ก ๋์ํ์ง ์์ ์ ์๋ค.
๋ํ ์์ ํ ๋น๋๊ธฐ๋ก ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ DOM์ด ๋ชจ๋ ๋ก๋๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ DOMcontentLoaded
์ด๋ฒคํธ ์ฝ๋ฐฑ์ผ๋ก ๋ก๋๋ฅผ ๋ณด์ฅํ ์ ์๋ค.
defer๋ async์ ๋น์ทํ๊ฒ ๋์ํ๋ค.
defer๋ ๋ชจ๋ DOM์ด ๋ก๋๋ ํ์์ผ ์คํ์ด ๋๋ค.
์ค์ ๋ก ๋ ๋นจ๋ฆฌ ๋ก๋๋๋ ์คํฌ๋ฆฝํธ๊ฐ ์๋ค๊ณ ํ๋๋ผ๋ ์คํ์ ํญ์ ์ ์ธํ ์์๋๋ก ์คํ๋๋ค.
๋ฌผ๋ก DOM๊ตฌ์ฑ์ด ๋๋์ดํ์..