ํด๋ก์
๋ ์ค์ฒฉ๋ ํจ์๋ฅผ ์ด์ฉํด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ฉฐ ์คํ ์ปจํ
์คํธ๊ฐ ๋๋๋ ๋ณ์์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ. ํธ์ด์คํ
์ ๋ณ์๋ ํจ์ ์ ์ธ์ด ์ค์ฝํ์ ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง ๊ฒ ๊ฐ์ ํ์, ์ ์ธ ์ด์ ์ ๋ณ์๋ ํจ์์ ์ ๊ทผํ๋ ค๊ณ ํ ๋ ์ค๋ฅ๊ฐ ๋์ง ์์. const, let
์ ์ ์ธ์ด์ ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด TDZ(์ผ์์ ์ฌ๊ฐ์ง๋)
์ ๋ค์ด๊ฐ์ ์๋ฌ๊ฐ ๋๋ค. ํจ์์ ๋ณ์๊ฐ ์ ์ธ๋ ์์ ๊ณผ ์ ๊ทผํ๊ธฐ ์ ๊น์ง๋ฅผ TDZ๋ผ๊ณ ํ๋ค. TDZ๋ ๋ณ์๋ ํจ์ ์ ์ธ ์ด์ ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์๋ฌ๋ฅผ ๋ธ๋ค.์ด๋ฒคํธ ์บก์ณ๋ง
์ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์บก์ณ๋ง์ ์์๋
ธ๋์์ ํ์๋
ธ๋๋ฅผ ํ์ํด ๋๊ฐ๋ฉด์ ์ด๋ฒคํธ์ ์ง์์ง๋ฅผ ์ฐพ์๋๊ฐ๋ ๊ณผ์ ์ด๋ค. ์บก์ฒ๋ง ๋จ๊ณ์์ ์ค๊ฐ์ ๋ง๋๋ ๋ชจ๋ ์บก์ฒ๋ง ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์คํ์ํจ๋ค. ์ด๋ฒคํธ ๋ฒ๋ธ๋ง
์ ์ด๋ฒคํธ ์ง์์ง๋ฅผ ์ฐพ๊ณ ํ์๋
ธ๋์์ ์์๋
ธ๋๋ก ๋๊ฐ๋ ๊ณผ์ ์ด๋ค. DOM ํธ๋ฆฌ๋ฅผ ๋ฐ๋ผ ์ฌ๋ผ๊ฐ๋ฉฐ ๋ง๋๋ ๋ชจ๋ ๋ฒ๋ธ๋ง ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์คํํ๋ค.์ด๋ฒคํธ ์ ํ
๋ผ๊ณ ํ๋ค.์ด๋ฒคํธ ์์์
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฒคํธ ์ ํ๋ฅผ ํตํด ์ด๋ฒคํธ ๋ฐ์ ์์ ์ ํ์ํ๋ ํน์ฑ์ ์ด์ฉํ์ฌ ๋ถ๋ชจ์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ํตํด ์์์ ์ด๋ฒคํธ๋ฅผ ํธ๋ค๋ง ํ ์ ์๋ ํ
ํฌ๋์ ์๋ฏธํ๋ค. ๋ฉ์ธ์ฐ๋ ๋
์์ task queue
๋ผ๋๊ณณ์ผ๋ก ์ด๋ํ์ฌ ๋๊ธฐํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ์ธ์ฐ๋ ๋์ ์๋ ๋ชจ๋ ๋ช
๋ น๋ค์ด ์คํ๋์ด ํ
๋น๊ฒ ๋๋ฉด, ๋ฉ์ธ์ฐ๋ ๋๋ฅผ ๊ฐ์ํ๋ ์ด๋ฒคํธ ๋ฃจํ
๊ฐ ํ
์คํฌ ํ์ ์๋ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ๋ฉ์ธ์ฐ๋ ๋๋ก ์ด๋์์ผ ์คํํ๊ฒ ๋๋ค.์์๋
- ๋ช ๋ น์ด ๋ฉ์ธ์ฐ๋ ๋๋ก ์ด๋ํ๋ค.
- ๋ฉ์ธ์ฐ๋ ๋์ ์์ธ ์์๋๋ก ๋ช ๋ น์ด ์คํ๋๋ค.
- ๋ฉ์ธ์ฐ๋ ๋๊ฐ clear ๋๋ฉด ๋ง์ดํฌ๋ก ํ ์คํฌ ํ์์ ์๋ ์ฝ๋๋ค์ด ์คํ๋๋ค.
- ์ด๋ฒคํธ ๋ฃจํ๋ ๋ฉํฌ๋ก task queue ๋ฅผ ํ์ธํด์ ์คํ ์ํฌ๊ฒ์ด ์๋์ง ํ์ธํ๋ค.
-> ์ด๋ฐ ์์ผ๋ก ์ฝ๋๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์ promise ๋ ๋ timeout ๋ณด๋ค ๋จผ์ ์คํ๋๋ค.
<!-- ์ ์ง์ ํฅ์๊ธฐ๋ฒ ์ค ํ๋ -->
<!-- picture: ํ๊ฒฝ์ ๋ง๊ฒ, ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ฅ ์ด์ธ๋ฆฌ๋ ์ด๋ฏธ์ง๋ฅผ ์ ํํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ์์.
picture๋ผ๋ ์์๋ฅผ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ๋ ๋ชจ๋ฆ. ๋ ๊ฑฐ์ ๋ธ๋ผ์ฐ์ ๋ ์ ์์๋ ํ๊ทธ๋ฅผ ๋ดค์ ๋ ์ธ๋ผ์ธ ์์๋ก ์ฒ๋ฆฌํด๋ฒ๋ฆผ
(span์์์ฒ๋ผ ์ฒ๋ฆฌ) ๋ฐ๋ผ์ picture, source๋ ์๋ํ์ง ์์. img ํ๊ทธ๋ง ์๋)-->
<picture>
<source srcset="test.webp" type="image/webp">
<source srcset="test.avif" type="image/avif">
<img src="test.jpeg" alt="ํ
์คํธ ์ด๋ฏธ์ง์
๋๋ค.">
</picture>
<!-- ์ฐ์ํ ์ฑ๋ฅ์ ํ: video, canvas์ ๊ฐ์ด ๋์ฒดํ ์ ์๋ ๊ธฐ์ ์ ์ฌ์ฉํ ๋ ์ -->
<!-- ๋ง์ฝ์ ๋ธ๋ผ์ฐ์ ๊ฐ video tag์์ฒด๋ฅผ ์ง์ํ์ง ์์ผ๋ฉด? -->
<video>
<source src="test.mp4" type="video/mp4">
<source src="test.webm" type="video/webm">
<p>
์ฌ์ฉํ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋น๋์ค๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ์
๊ทธ๋ ์ด๋ ํด์ฃผ์ธ์.
<a href="์ต์ ๋ธ๋ผ์ฐ์ ๋งํฌ">์ฌ๊ธฐ์์ ์ต์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ค์ด๋ฐ์ผ์ธ์</a>
</p>
</video>
์ ์ง์ ํฅ์
์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๊ณ ์ ํ๋ ๊ธฐ๋ฅ์ 100% ์ ๊ณต ํ๋ฉด์ ์ต์ ํ๊ฒฝ์์๋ ๊ทธ ์ด์์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ค ํ๋ค.<script>
์ async ์์ฑ๊ณผ defer ์์ฑ์ ์ฐจ์ด์ ๋ํด ์ค๋ช
ํด๋ณด์ธ์.async
๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋๋์ ๋ ๊ณง๋ฐ๋ก ํ๊ฐ ์คํํ๊ณ defer
๋ ๋ฌธ์(HTML)์ ์์ ํ ๋ค ์ฝ์ ํ์ ์คํํ๋ค. async๋ ๋จผ์ ๋ค์ด๋ก๋๋ ์์๋๋ก ์คํํ๊ณ defer์ ์ ์๋ ์์๋๋ก ์คํ๋๋ค.
๋์ ์ฌ์ฉํ๊ณ ์์ฐจ์ ์ผ๋ก ์คํ๋์ผ ํ๋ค๋ฉด defer (๋ณ๋ ฌ๋ก ๋ค์ดํ๊ธด ํ์ง๋ง ์คํ์ ์ ์ธ ์์๋๋ก)
๋์ ์ฌ์ฉํ์ง ์๊ณ ์คํ ์์์ ์๊ด์์ด ์คํฌ๋ฆฝํธ๋ฅผ ๋ณ๋ ฌ๋ก ๋น ๋ฅด๊ฒ ๋ก๋ํ๊ณ ์ถ๋ค๋ฉด async (Async ๋ ๊ถ๊ทน์ ์ผ๋ก ์ฝ๋๋ฅผ ์คํํ๋๋ฐ ๋น ๋ฅด๊ฒ ๋ชจ๋ ์ค๋น๋ฅผ ๋ง์น๊ธฐ ์ํด์ ๋ง๋ค์ด์ก๋ค.)