JavaScript
Javascript
โ๋์ ์ผ๋ก ์ปจํ ์ธ ๋ฅผ ๋ฐ๊พธ๊ณ , ๋ฉํฐ๋ฏธ๋์ด๋ฅผ ๋ค๋ฃจ๊ณ , ์์ง์ด๋ ์ด๋ฏธ์ง ๋ฑ์ ํ ์ ์๋ ์คํฌ๋ฆฝํธ ์ธ์ดโ
1. ์๋ฐ์คํฌ๋ฆฝํธ์ ํต์ฌ
- ๋ณ์์์ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
- ํ๋ก๊ทธ๋ฐ์์ โ๋ฌธ์์ด(strings)โ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฌธ์๋ค๋ ์กฐ์ ๊ฐ๋ฅํ๋ค.
- ์น ํ์ด์ง์์ ์ด๋ฒคํธ์ ์๋ตํ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
ํนํ๋, ์๋ฐ์คํฌ๋ฆฝํธ์์์ ๊ธฐ๋ฅ์ด ์ด๋ง์ด๋งํ๋ค. Application Programming Interfaces (APIs) ๋ผ๋ ๊ฒ์ ์ฌ๋ฌ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ์ฌ์ฉํ ์ ์๋ ์ถ๊ฐ์ ์ธ ๊ฐ๋ ฅํ ๋ง๋ฒ๋ค์ ์ ๊ณตํ๋ค๊ณ ๋ณผ ์ ์๋ค.
API๋, ์ด๋ฏธ ๋ง๋ค์ด์ง ์ฝ๋์ ์งํฉ์ฒด๋ผ๊ณ ๋ณผ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ๋ง๋ค๊ธฐ ์ด๋ ต๊ณ ํ๋ ๋ถ๋ถ์ ์ฝ๊ฒ ๊ตฌํํ๋๋ก ํ๋ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
- Browser API : ์น ๋ธ๋ผ์ฐ์ ์ ์ค์น๋ API๋ค๋ก, ์ปดํจํฐ ํ๊ฒฝ๊ตฌ์ฑ์ผ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ด๊ฒ ํ๊ณ ๋ณต์กํ ์ผ๋ค์ ํ๊ฒ ํ๋ค.
- Third party API : ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋ API๊ฐ ์๋ ์ธํฐ๋ท์์ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ณด์ ์ฝ๋๋ฅผ ์ป์ด ํ๋ก๊ทธ๋๋ฐํ ๊ฒ์ด๋ค.
2. ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฐ๊ฒฐ
์๋ฐ์คํธ๋ฆฝํธ๋ CSS์ ๊ฐ์ด HTMLํ์ด์ง์ ์ ์ฉ์ด ๋๋ค. CSS๋ ์ธ๋ถ์ ์คํ์ผ์ํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ํด link ์์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ด๋ถ์ ์คํ์ผ์ํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ํด style ์์๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ฐํด, ์๋ฐ์คํฌ๋ฆฝํธ๋ HTML์์์ ์ค์ง script ํํฌ๋ง์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- HTML ๋ด๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฐ๊ฒฐ
<script>
// ์ด ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์
๋ ฅ
</script>
** </body> ์ง์ ์ ์์ฑํ ๊ฒ.
- ์ธ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฐ๊ฒฐ
HTML ํ์ผ์ด ์๋ ํด๋ ์์ script.js๋ผ๋ ์๋ก์ด ํ์ผ์ ๋ง๋ค์ด์ ์ฐ๊ฒฐํ๋ค.
<script src="script.js"></script>
3. ์๋ฐ์คํฌ๋ฆฝํธ ์คํ
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ํ, ์๋จ์ use strict๋ฅผ ์ ์ธํด์ฃผ๋ฉด ์ข๋ค.
๊ทธ ์ด์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด์ผ ํด์ ๊ต์ฅํ ์ ์ฐํ ์ธ์ด์ด๋ฉฐ, ์ด๋ก์ธํด ์ํ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์ ์ธ๋์ง ์์ ๋ณ์์ ๊ฐ์ ํ ๋นํ ์ ์๋ ๋ฑ ๋ฌธ์ ๋ค์ด ๋ง์ผ๋ฉฐ, ์ด ๋ฌธ์ ํด๊ฒฐ์ ์ํด ECMA5์ ์ถ๊ฐ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
a = 1;
// ์ ์ธ๋์ง ์์ a์ ๊ฐ์ ํ ๋นํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ๋ฌธ์ ๋ ์๋ค.
("use strict");
a = 1;
// use strict ์ ์ธํ๊ฒ ๋๋ฉด a๋ ์ ์๋์ด ์์ง ์๋ค๊ณ ์๋ฌ๊ฐ ๋ฌ๋ค.
// ์ด ์๋ฌ๋ฅผ ํด๊ฒฐํด์ฃผ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ด ์์ฑํ ์ ์๋ค.
("use strict");
let a = 1;
- use strict์ ์ฅ์
- ์ข ๋ ์์์ ์ธ ๋ฒ์ ๋ด์์ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋์ฑ ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ถ์ ๊ฐ๋ฅ
- ์คํํ๋๋ฐ ์์ด ๋ ๋์ ์ฑ๋ฅ ๊ฐ์ ๊ธฐ๋
4. script async ์ defer์ ์ฐจ์ด์
- script async
async๋ booleanํ์ ์ ์์ฑ์ด๊ธฐ ๋๋ฌธ์ ์ ์ธํ๋ ๊ฒ๋ง์ผ๋ก๋, True๋ก ์ค์ ๋์ด async์ต์ ์ ์ฌ์ฉํ ์ ์๋ค.
- ํ์ด์ง ๋ ๋๋ง์ ์ค๋จ ์์ด ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋ ํ๊ณ , ์คํฌ๋ฆฝํธ์ ๋ค์ด๋ก๋๊ฐ ๋๋์ ๋ง์ ์ด๋ฅผ ์คํํ๋ค.
- ์ธ๋ถ ์คํฌ๋ฆฝํธ๋ผ๋ฆฌ์ ๊ตฌ์ฒด์ ์ธ ์คํ ์์๋ ๋ณด์ฅํ์ง ์๋๋ค.
- ๋๋จธ์ง ํ์ด์ง๊ฐ ๋ํ๋๋ ๋์ ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ๋ฐฉ์์ผ๋ก ๋ค์ด๋ก๋ ๋์ด ์ค๋จ๋์ง ์๋๋ค๋ ๊ฒ๋ง ๋ณด์ฅํ๋ค.
- ๊ฐ๊ฐ์ ์คํฌ๋ฆฝํธ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก, ์๋ก์๊ฒ ์์กดํ์ง ์๋ ๊ด๊ณ์ผ ๋ ์ ์ ํ๋ค.
<script src="script1.js"></script>
<script src="script2.js"></script>
<script src="script3.js"></script>
์์ฒ๋ผ ์ ๋ ฅ ์, 3๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ฉํ์ง๋ง ์ด๋ค์ ์์๋ ๋ณด์ฅํ ์ ์๋ค.
- script defer
defer๋ ์์๋๋ก ๋ค์ด๋ก๋ ํ ํ ๋ชจ๋ ์คํฌ๋ฆฝํธ์ ๋ด์ฉ์ด ๋ค์ด๋ก๋ ๋์์ ๋ ์คํํ๋ค.
<script src="script1.js"></script>
<script src="script2.js"></script>
<script src="script3.js"></script>
script1.js โ script2.js โ script3.js ์ ์์๊ฐ ๋ณด์ฅ๋๋ค.
์ถ์ฒ : ๋๋ฆผ์ฝ๋ฉ by ์๋ฆฌ https://youtu.be/tJieVCgGzhs