ํ๋์ ์น์ฌ์ดํธ์์๋ ๋๋ถ๋ถ์ script
๋ค์ด HTML
๋ณด๋ค "๋ฌด๊ฒ๋ค".
ํ๋ก์ ํธ๊ฐ ์ปค์ง์๋ก ๋ค์ด๋ก๋ํ ํฌ๊ธฐ๊ฐ ์ปค์ ธ์ ํ์ด์ง๊ฐ ๋ก๋๋๋ ์๋๊ฐ ๋๋ ค์ง๋ค. ๊ทธ๋งํผ User
์๊ฒ ๋ฆ๊ฒ ๋ณด์ฌ์ง ๊ฒ์ด๋ค.
์ด๋ฅผ ๊ณ ์น๊ธฐ์ํด ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐฑ์๋์์ ์ต์ ํ ์ฒ๋ฆฌ๋ฅผ ํ๊ฒ ๋๋ค. ํ์ง๋ง ์ด๋ณด๋ค ๋ ์ฝ๊ฒ ํ๋ก ํธ์๋์์ ํ์ด์ง๊ฐ ๋ก๋๋๋ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ป๊ฒ ๋ก๋ฉํ๋๋์ ๋ฐ๋ผ ํ๋ก์ธ์ฑ ์๋๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค.
๋ธ๋ผ์ฐ์ ธ๊ฐ HMTL
์ ๋ก๋ํ๋์ค์ <script>...</script>
ํ๊ทธ๋ฅผ ๋ง๋๋ฉด
์ด ์คํฌ๋ฆฝํธ๊ฐ ์คํ์ด ๋ ํ์ ์๋ฃ๊ฐ ๋๋ฉด ์ด์ด์ HTML
์ด ๋ก๋๊ฐ ๋๋ค.
<!DOCTYPE html>
<html>
<head>
<script>
// `HTML parser`๊ฐ ์ด์ค์ ์ค๋ฉด `script`๊ฐ ์คํ์ด ๋จ
// ์คํ์ด ๋๋๋ฉด ๋ค์ ๋จ์ `html`์ `parsing`ํจ
</script>
</head>
<body></body>
</html>
script
ํ๊ทธ์ ์์น์ ๋ฐ๋ฅธ ์ฅ๋จ์
<script asyn src="main.js"></script>
asyn๋ ๋ถ๋ฆฌ์ธํ์ ์ ์์๊ฐ์ด๋ผ ์ ์ธํ๋๊ฒ๋ง์ผ๋ก๋ true๋ก ์ค์ ๋์ด์ ๋ฐ๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
๋ณ๋ ฌ๋ก html parsing๊ณผ fetching(๋ค์ด๋ก๋)๊ฐ ๊ฐ์ด ์งํ์ด ๋๋ค๊ฐ ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋๋ฉด parsing์ ๋ฉ์ถ๊ณ js๋ฅผ ์คํํ๋ค.
์ฅ์ : ๋ฐ๋ ๋๋ณด๋ค fetching์ด ๊ฐ์ด ์งํ๋ผ์ด์ ๋ค์ด๋ก๋๋ฐ๋ ์๊ฐ๋งํผ ์ ์ฝ๋๋ค.
๋จ์ : ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ณด๋๋ฐ ์ฌ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. html์ด ์ ๋ถ parsing๋๊ธฐ ์ ์ js๊ฐ ์คํ์ด ๋์ด์ ์กฐ์ํ๋ ค๋ ์์ ์ ํด๋น html ๋ถ๋ถ์ด ์์ง ์ ์๋์ด์์ง ์์ ์ ์๋ค. * ๋จผ์ ๋ค์ด๋ก๋๊ฐ ๋ ๊ฒ๋ถํฐ ์คํ์ด๋จ. ์ ์๋ ์์๋ ์๊ด์์ด.
<script defer src="main.js"></script>
** ๐ defer์ต์ ์ ์ฐ๋ ์ด์ **:
์ถ์ฒ
- [Web Dev Simplified]https://www.youtube.com/watch?v=BMuFBYw91UQ
- [Scripts: async, defer]https://javascript.info/script-async-defer
- [๋๋ฆผ์ฝ๋ฉ]https://www.youtube.com/watch?v=tJieVCgGzhs