๊ฐœ๋ฐœ ๊ณต๋ถ€/๋ฐ๋ธŒ์ฝ”์Šค TIL

[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240104 - JavaScript ๋“ค์–ด๊ฐ€๊ธฐ ์ „

๊ฐ€์šค์ด 2024. 1. 4. 16:36

Intro...


์–ด์ œ๊นŒ์ง€ ํ•ด์„œ HTML/CSS ๊ฐ•์˜๊ฐ€ ๋์ด๋‚˜๊ณ , ์˜ค๋Š˜๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๊ฐ•์‚ฌ๋‹˜์˜ JS ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค.

JavaScript ๊ฐ„๋‹จ ์†Œ๊ฐœ๋ถ€ํ„ฐ ์•ž์œผ๋กœ ๋ฌด์–ผ ๋ฐฐ์šธ ์ง€์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ECMA ํƒ„์ƒ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

 

 

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•™์Šต ๋ชฉํ‘œ

: ์œ ์ €์˜ Pain Point(์†Œ๋น„์ž๊ฐ€ ๋ถˆํŽธ, ๋ถˆ์•ˆ, ๊ณ ํ†ต์„ ๋А๋ผ๋Š” ์ง€์ )๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด

โžก๏ธ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ ๋‹ค.

์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด

โžก๏ธ ์›น ๊ฐœ๋ฐœ์„ ๋ฐฐ์šด๋‹ค.

์›น์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด

โžก๏ธ JavaScript๋ฅผ ๋ฐฐ์šด๋‹ค.

 

 

 

๋ธŒ๋ผ์šฐ์ €์™€ ๋””๋ฒ„๊น… - console

  • console.log: ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ฝ˜์†”์— ํ•œ์ค„ ํ•œ์ค„ ์ถœ๋ ฅ
  • console.dir: ์ฃผ์ž…๋œ ๊ฐ’์˜ ๋ชจ๋“  ์†์„ฑ์„ ํ™•์ธํ•  ๋•Œ
  • console.table: ํ‘œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”๋กœ ํ‘œํ˜„

 

 

 

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠน์ง•

  • ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด
    • ๋ณ€ํ™˜ํ™”๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์‹คํ–‰, ์‹คํ–‰ํ•˜๋ฉด์„œ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ ์ง„ํ–‰ํ•œ๋‹ค.
    • => ์ปดํŒŒ์ผ ๋‹จ๊ณ„๊ฐ€ ์—†์œผ๋‚˜, ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด์— ๋น„ํ•ด ์‹คํ–‰ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.
  • ๋™์  ํƒ€์ž… ์–ธ์–ด
    • ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์— ๋”ฐ๋ผ ๋Ÿฐํƒ€์ž„ ์‹œ ํƒ€์ž… ์ถ”๋ก 
  • ์ผ๊ธ‰ ๊ฐ์ฒด
    • ํ•จ์ˆ˜๋Š” ์ผ๊ธ‰ ๊ฐ์ฒด์˜ ํŠน์„ฑ์„ ๊ฐ€์ง„๋‹ค.
    • ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์™€ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ
    • ํ•จ์ˆ˜๋Š” ๊ฐ’๊ณผ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰ (๋ณ€์ˆ˜ ํ• ๋‹น๋ฌธ, ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ๊ฐ’, ๋ฐฐ์—ด์˜ ์š”์†Œ, ํ˜ธ์ถœ์˜ ์ธ์ˆ˜, ํ•จ์ˆ˜ ๋ฐ˜ํ™˜๋ฌธ)
  • ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ์ƒ์†
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ด๋‹ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์ƒ์† ๊ฐ€๋Šฅ
  • ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ง€์›
    • ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • ...

 

 

JavaScript ํƒ„์ƒ ๋ฐฐ๊ฒฝ๊ณผ ECMAScript

  • ์ž์‚ฌ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์šฉ์˜ ์ ์œ ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๋™์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฒฝ์Ÿ์ ์œผ๋กœ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

โžก๏ธ ๊ฐ™์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ธ๋ฐ IE์—์„œ ๋™์ž‘ํ•˜๊ณ , Netscape์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. (ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ)

  • ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

โžก๏ธ ECMA ์š”์ฒญ, ํ‘œ์ค€ํ™” ์ž‘์—… ์ง„ํ–‰

 

 

 

ECMAScript2015

: 2009๋…„๋ถ€ํ„ฐ ์ง„ํ–‰ํ•œ ์ž‘์—…์ด๋ฉฐ ๋Œ€๊ทœ๋ชจ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ƒ์„ฑ, ๋‹ค๋ฅธ ์–ธ์–ด์˜ ์ปดํŒŒ์ผ์˜ ๋Œ€์ƒ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉํ‘œ๋กœ ์ž‘์—…ํ•˜์˜€๋‹ค.

๋ชจ๋“ˆ,ํด๋ž˜์Šค ์„ ์–ธ, ๋ธ”๋ก๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„, iterator์™€ generator, ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, promise, ๊ตฌ์กฐ๋ถ„ํ•ด ํŒจํ„ด ๋“ฑ์˜ ๊ฐœ์„ ์ด ์กด์žฌํ•œ๋‹ค.

 

 

โš ๏ธ ๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „๋งˆ๋‹ค ์ง€์›ํ•˜๋Š” JS ์ŠคํŽ™์ด ์ƒ์ดํ•œ๋ฐ, ๊ฐœ๋ฐœ์—์„  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€๋ฐ ํ•ด๋‹น ๋ธŒ๋ผ์šฐ์ € ์ง€์›์ด ์•ˆ ๋  ๊ฒฝ์šฐ..

  • polyfill
    • ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ตœ์‹  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ฝ”๋“œ
    • ํด๋ฆฌํ•„์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.
  • Babel
    • ์ด์ „ ๋ฒ„์ „์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ES6 ์ด์ „ ๋ฒ„์ „์˜ JavaScript๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ
    • ๋ฌธ๋ฒ•์„ ๋ฒˆ์—ญ ๋ฐ ๋ฐ˜ํ™˜
    • ํด๋ฆฌํ•„ ๊ธฐ๋Šฅ ์ง€์›

 

๋”๋ณด๊ธฐ)

 

ํด๋ฆฌํ•„

 

ko.javascript.info

 

 

 

 

 

๋งˆ๋ฌด๋ฆฌ


์˜ค๋Š˜์€ ๋„ˆ๋ฌด ํ”ผ๊ณคํ•ด์„œ ์ง‘์—์„œ ๋‚˜์™€ ์นดํŽ˜์—์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. ๋” ์ง‘์ค‘์ด ์ž˜๋˜๋Š” ๋А๋‚Œ์ด๋‹ค.

๋‹คํ–‰ํžˆ ์˜ค๋Š˜๊นŒ์ง€๋„ ํฌ๊ฒŒ ์–ด๋ ค์šด ๋‚ด์šฉ์ด ์—†์–ด์„œ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•™์Šตํ–ˆ๋‹ค. ๐Ÿ˜

๋‚ด์ผ๋„ ํ™”์ดํŒ…!!