320x100
Web APIs
- API
- Application Programming Interfacer ์ ์ฝ์
- ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ ๋ด๋ถ์ ์กด์ฌํ๋ ๊ธฐ๋ฅ ๋ฐ ๊ท์น์ ์งํฉ
- ๊ฐ๋ฐ์๊ฐ ์ฑ์ ํตํด ์ฌ์ฉ์์ ์น๋ธ๋ผ์ฐ์ ์์ ์ํธ์์ฉํ ์ ์๋๋ก ํ๋ ์ฝ๋๊ธฐ๋ฅ๋ค, ์ฌ์ฉ์์ ์ปดํจํฐ ์์ ์๋ ๋ค๋ฅธ ์ํํธ์จ์ด ๋ฐ ํ๋ ์จ์ด, ๋๋ ์๋ํํฐ ์น์ฌ์ดํธ๋ ์๋น์ค์ ์งํฉ์ ์๋ฏธ
- ๊ฐ๋ฐ์๊ฐ ์ด๋ป๊ฒ ๋์ํ๋ ์ง ๋ชฐ๋ผ๋ ์ฌ์ฉ๋ฒ๋ง ์๋ฉด ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ธ ์ ์๋๋ก ๋์์ค๋ค.
- console.log(' hello world'); ๊ฐ ๊ฐ๋ฅํ ๊ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ WebAPI๋ฅผ ํตํด ํจ์๋ฅผ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
js ํ์ผ์ ๊ธฐ๋ณธ์ ์ธ ์์น
⇒ HTML์์ javaScript๋ฅผ ํฌํจํ ๋ ์ธ ์ ์๋ ๋ฐฉ๋ฒ๋ค
- js ํ์ผ์ headํ๊ทธ ์์ ์์น ์์ผฐ์ ๋
- ์์ : parsing HTML → fetching js → excuting js → parsing HTML : ํ์ด์ง ์ค๋น ๋
- parsing : HTMLํ์ผ์ ํ ์ค ์ฉ ์ฝ์
- fetching : js ํ์ผ ๋ค์ด๋ฐ์
- excuting : js ํ์ผ ์คํ
- ๋จ์ : ์ฌ์ฉ์๊ฐ jsํ์ผ์ ๋ฐ๋ ๋์์๋ ํ๋ฉด์ด ์์ฑ๋์ง ์์ ์ํ์ผ ์ ์์ → No good
- ์์ : parsing HTML → fetching js → excuting js → parsing HTML : ํ์ด์ง ์ค๋น ๋
- js ํ์ผ์ bodyํ๊ทธ ๋งจ ๋์ ์์น ์์ผฐ์ ๋
- ์์ : parsing HTML → fetching js → excuting js : ํ์ด์ง ์ค๋น ๋
- ์ฅ์ : ์ฌ์ฉ์๊ฐ htmlํ๋ฉด์ ๋นจ๋ฆฌ ๋ณผ ์ ์๋ค.
- ๋จ์ : ํ์ด์ง์์ js๊ฐ ์ค์ํ ์ญํ ์ ํ๋ค๋ฉด,
์ฌ์ฉ์๊ฐ ์๋ฏธ์๋ ํ์ด์ง๋ฅผ ๋ณด๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๊ธธ์ด์ง๋ค. → No good
- async์ defer ์ฌ์ฉํ๊ธฐ
- ๊ฐ script์์ ์ถ๊ฐ์ ์ผ๋ก ์ ์ธํ๋ ๋ฐฉ๋ฒ
- ๋ด์ฉ์ด ๊ธธ์ด์ ๋ฐ๋ก ์ ๋ฆฌํจ
async vs defer
- async
- head์์ script๋ฅผ ์ ์ธํ๋ async์ ํจ๊ป ์ฌ์ฉ
- parsing HTML์ ์์ → scriptํ๊ทธ ๋ง๋๋ฉด ๋ณ๋ ฌ์ ์ผ๋ก fetching js → ๋ณ๋ ฌ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค๊ฐ fetching ๋๋๋ฉด excuting js → parsing HTML
- ์ฅ์ : body๋์ ์์นํ๋ ๊ฒ ๋ณด๋ค๋ ์๊ฐ์ด ์ ์ฝ๋๋ค.
- ๋จ์
- html parsing ์ ์ js excuting์ด ๋๋์ js์์ html ์์๋ฅผ ์ฐธ์กฐํด์ผ ๋๋ค๋ฉด ํ์ด์ง๊ฐ ์์ง ์ ์๋์ง ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- js๋ฅผ ๋ค์ด๋ฐ์ ์คํํ๋ ๋์ html parsing์ด ์ค์ง ๋ ์ ์์ด์ ์ฌ์ ํ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ณด๋๋ฐ ๋ง์ ์๊ฐ ์์๋๋ค.
- ์ฐธ์กฐ js๊ฐ ์ฌ๋ฌ๊ฐ์ง ๋ผ๋ฉด ์์ฑ ์์์ ์๊ด์์ด ๋ค์ด๋ก๋ ๋ ์์๋๋ก ์คํ๋๋๋ฐ, ๋ง์ฝ ์์ฑ์์ ํ์ด์ง๊ฐ js์์์ ์์กด์ ์ด๋ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- defer
- head์์ script๋ฅผ ์ ์ธํ๋ defer์ ํจ๊ป ์ฌ์ฉ
- parsing HTML → script๋ง๋๋ฉด fetching js ๋ช ๋ น ํ ๋์์ parsing HTML ๊ณ์์งํ → parsing ๋๋๋ฉด jsํ์ผ excuting
- ์ด๊ฒ์ด ๊ฐ์ฅ ์ข์ ์ต์ , ์ฌ์ฉ์์๊ฒ ๋ฐ๋ก ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ณ , js ๋ฐ๋ก ์คํ๊ฐ๋ฅ
- js ํ์ผ์ด ์ฌ๋ฌ๊ฐ๋ผ๋ ํ์ผ์ ๋ค ๋ค์ด๋ฐ์ ๋๊ณ HTMLํ์ผ์ด ์ค๋น ๋ ํ์ ์์ฑ ์์๋๋ก jsํ์ผ์ ์คํ์ํค๊ธฐ ๋๋ฌธ์ async๊ฐ์ ๋ฌธ์ ๋ ๋ฐ์ํ์ง ์๋๋ค.
๋ฐ์ํ
๋๊ธ