JavaScript

Javascript

โ€œ๋™์ ์œผ๋กœ ์ปจํ…์ธ ๋ฅผ ๋ฐ”๊พธ๊ณ , ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด๋ฅผ ๋‹ค๋ฃจ๊ณ , ์›€์ง์ด๋Š” ์ด๋ฏธ์ง€ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ดโ€

1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•ต์‹ฌ

  • ๋ณ€์ˆ˜์•ˆ์— ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ฐ์—์„œ โ€˜๋ฌธ์ž์—ด(strings)โ€™์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฌธ์ž๋“ค๋„ ์กฐ์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์›น ํŽ˜์ด์ง€์ƒ์˜ ์ด๋ฒคํŠธ์— ์‘๋‹ตํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠนํžˆ๋‚˜, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ธฐ๋Šฅ์ด ์–ด๋งˆ์–ด๋งˆํ•˜๋‹ค. Application Programming Interfaces (APIs) ๋ผ๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€์ ์ธ ๊ฐ•๋ ฅํ•œ ๋งˆ๋ฒ•๋“ค์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

API๋ž€, ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์ฝ”๋“œ์˜ ์ง‘ํ•ฉ์ฒด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“ค๊ธฐ ์–ด๋ ต๊ณ  ํž˜๋“  ๋ถ€๋ถ„์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • Browser API : ์›น ๋ธŒ๋ผ์šฐ์ €์— ์„ค์น˜๋œ API๋“ค๋กœ, ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ๊ตฌ์„ฑ์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ๋ณต์žกํ•œ ์ผ๋“ค์„ ํ•˜๊ฒŒ ํ•œ๋‹ค.
  • Third party API : ๋ธŒ๋ผ์šฐ์ €์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋œ API๊ฐ€ ์•„๋‹Œ ์ธํ„ฐ๋„ท์—์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ณด์™€ ์ฝ”๋“œ๋ฅผ ์–ป์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ ๊ฒƒ์ด๋‹ค.

2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์—ฐ๊ฒฐ

์ž๋ฐ”์ŠคํŠธ๋ฆฝํŠธ๋Š” CSS์™€ ๊ฐ™์ด HTMLํŽ˜์ด์ง€์— ์ ์šฉ์ด ๋œ๋‹ค. CSS๋Š” ์™ธ๋ถ€์˜ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด link ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋‚ด๋ถ€์˜ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด style ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋ฐ˜ํ•ด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTML์ƒ์—์„œ ์˜ค์ง script ํƒœํฌ๋งŒ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  1. HTML ๋‚ด๋ถ€์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ๊ฒฐ
<script>

  // ์ด ์•ˆ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ

</script>

** </body> ์ง์ „์— ์ž‘์„ฑํ•  ๊ฒƒ.
  1. ์™ธ๋ถ€์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ๊ฒฐ

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์˜ ์žฅ์ 
    1. ์ข€ ๋” ์ƒ์‹์ ์ธ ๋ฒ”์œ„ ๋‚ด์—์„œ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
    2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๋”์šฑ ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ถ„์„ ๊ฐ€๋Šฅ
    3. ์‹คํ–‰ํ•˜๋Š”๋ฐ ์žˆ์–ด ๋” ๋‚˜์€ ์„ฑ๋Šฅ ๊ฐœ์„  ๊ธฐ๋Œ€

4. script async ์™€ defer์˜ ์ฐจ์ด์ 

  1. script async

async๋Š” booleanํƒ€์ž…์˜ ์†์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ ์–ธํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„, True๋กœ ์„ค์ •๋˜์–ด async์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํŽ˜์ด์ง€ ๋ Œ๋”๋ง์˜ ์ค‘๋‹จ ์—†์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ , ์Šคํฌ๋ฆฝํŠธ์˜ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋๋‚˜์ž ๋งˆ์ž ์ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  • ์™ธ๋ถ€ ์Šคํฌ๋ฆฝํŠธ๋ผ๋ฆฌ์˜ ๊ตฌ์ฒด์ ์ธ ์‹คํ–‰ ์ˆœ์„œ๋Š” ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋‚˜๋จธ์ง€ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๋™์•ˆ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋น„๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ๋˜์–ด ์ค‘๋‹จ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ๋งŒ ๋ณด์žฅํ•œ๋‹ค.
  • ๊ฐ๊ฐ์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ, ์„œ๋กœ์—๊ฒŒ ์˜์กดํ•˜์ง€ ์•Š๋Š” ๊ด€๊ณ„์ผ ๋•Œ ์ ์ ˆํ•˜๋‹ค.
<script src="script1.js"></script>
<script src="script2.js"></script>
<script src="script3.js"></script>

์œ„์ฒ˜๋Ÿผ ์ž…๋ ฅ ์‹œ, 3๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋”ฉํ•˜์ง€๋งŒ ์ด๋“ค์˜ ์ˆœ์„œ๋Š” ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.

  1. 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