์œคํœด๋จผ
ddooyn.log
์œคํœด๋จผ
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (19)
    • FRONT-END (6)
      • Projects (0)
      • Retrospective (6)
    • HTML CSS (0)
    • JavaScript (6)
    • React (4)
    • Node.js (0)
    • Python (2)
    • Algorithm (0)
    • Tips (1)
    • Books (0)

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • react
  • WIL
  • javascript
  • AWS
  • jQuery
  • mongodb
  • github
  • ESLint
  • Tip
  • Next.js
  • PYTHON

์ตœ๊ทผ ๋Œ“๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
์œคํœด๋จผ

ddooyn.log

[WIL] ES๋ž€? | ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ ๋™๋ถ๊ถŒ - 2์ฃผ์ฐจ ํšŒ๊ณ 
FRONT-END/Retrospective

[WIL] ES๋ž€? | ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ ๋™๋ถ๊ถŒ - 2์ฃผ์ฐจ ํšŒ๊ณ 

2022. 7. 3. 16:14

๐Ÿšข ์ด๋ฒˆ ํ•ญํ•ด๋Š”?

๊ธˆ์š”์ผ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ 6์ผ๊ฐ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ๊ฐ€ ๋”ฑ 6์›”์— ๋์ด ๋‚ฌ๋‹ค.

2์ฃผ์ฐจ ํŒ€์›๋ถ„๋“ค๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ 50๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋Š”๋ฐ, ๋‹ฌ๋ฆฌ๊ธฐ๋ฐ˜์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ณด๋‹ค 12๋ฌธ์ œ๋ฅผ ๋” ํ‘ผ ์…ˆ์ด๋‹ค.

์šฐ๋ฆฌ ํŒ€์€ ๋…ธ์…˜์„ ์ ๊ทน ํ™œ์šฉํ–ˆ๋‹ค. ๊ฐ์ž์˜ ํ’€์ด๋„ ๊ณต์œ ํ•˜๊ณ  ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์€ ๊ธ€๋“ค์ด๋‚˜ ํ•„์š”ํ–ˆ๋˜ ๊ฐœ๋…๋“ค์„ ๊ณ„์† ๋…ธ์…˜์— ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐ”๋‹ค. 6์ผ๋งŒ์— ์ œ๋ฒ• ์Œ“์—ฌ์„œ ๋ณต์Šตํ•  ๋•Œ ํ™œ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹จ ์ƒ๊ฐ์ด ๋“ ๋‹ค.

๋’ค๋กœ ๊ฐˆ์ˆ˜๋ก 1๋‹จ๊ณ„ ๋‚ด์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ๊ธธ๊ณ  ์กฐ๊ธˆ ์ƒ๊ฐ์„ ํ•ด์•ผ ํ•˜๋Š” (์ฃผ๋กœ ์นด์นด์˜ค) ๋ฌธ์ œ๋“ค์„ ์ ‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ๋ฉด ์‰ฝ๊ฒŒ ํ’€๋ ธ๋˜ ๋น„๋ฐ€์ง€๋„ ๋ฌธ์ œ๋‚˜, ์ •๊ทœํ‘œํ˜„์‹์œผ๋กœ ๊น”๋”ํ•˜๊ฒŒ ํ‘ผ ํ’€์ด๋ฅผ ๋ณด๊ณ  ๋†€๋ž๋˜ ๋‹คํŠธ๊ฒŒ์ž„ ๋ฌธ์ œ ๋“ฑ์ด ๊ธฐ์–ต์— ๋‚จ๋Š”๋‹ค. ๋น ๋ฅธ ์‹œ์ผ ๋‚ด์— ์ง‘์ค‘ํ•ด์„œ 1๋‹จ๊ณ„ ๋ฌธ์ œ๋“ค์„ ๋Œ€๋ถ€๋ถ„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์˜๋ฏธ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

์ด์ œ 1๋‹จ๊ณ„๋Š” ์ ‘์ˆ˜(?)ํ–ˆ์œผ๋‹ˆ ์ด์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์˜๋ฅผ ๊พธ์ค€ํžˆ ๋“ฃ๊ณ  2๋‹จ๊ณ„ ๋ฌธ์ œ ํ’€์ด์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

์ค‘๊ฐ„์ค‘๊ฐ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ์˜๊ณ ์‚ฌ์™€ ํ…Œ์ŠคํŠธ๋„ ์ง„ํ–‰๋˜์—ˆ๋‹ค.

๊ฒŒ๋”ํƒ€์šด์—์„œ ์‹œํ—˜์žฅ์œผ๋กœ ์ด๋™ํ•ด ์ฑ…์ƒ ์•ž์— ๋†“์—ฌ์ง„ ์˜ค๋ธŒ์ ํŠธ๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฆฌํ”Œ๋ฆฟ(Repl.it)์˜ Node.js ํ™˜๊ฒฝ์—์„œ ํ‘ผ ๋‹ค์Œ, ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ ์š”์•ฝ ๋ฐ ํ’€์ด ํ•ด์„ค ์˜์ƒ์„ ์ฐ์–ด ์œ ํŠœ๋ธŒ์— ์—…๋กœ๋“œํ•ด์„œ ์ œ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค.

1์ฃผ์ฐจ ๋•Œ ํ”„๋กœ์ ํŠธ ์‹œ์—ฐ ์˜์ƒ ๋•Œ๋ฌธ์— ์œ ํŠœ๋ธŒ์— ์ฒ˜์Œ ์—…๋กœ๋“œ ํ–ˆ์—ˆ๋Š”๋ฐ, ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณตํ–ˆ๋‹ค๊ณ  ์ด์ œ ์ข€ ๋Šฅ์ˆ™ํ•ด์กŒ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ตฌ๋…์ž ํ•œ ๋ถ„์ด ์ƒ๊ฒผ๋‹ค. ์™œ์ง€?

 

๐Ÿ‹ ๋ฆฌ์•กํŠธ ์ž…๋ฌธ ์ฃผ์ฐจ ์‹œ์ž‘

7์›”์€ 3์ฃผ ๋™์•ˆ ์ฃผํŠน๊ธฐ ์ฃผ์ฐจ๊ฐ€ ์ง„ํ–‰๋œ๋‹ค. ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„์—์„œ๋Š” ๋ฆฌ์•กํŠธ์™€ ์Šคํ”„๋ง ์ค‘ ์ฃผํŠน๊ธฐ๋ฅผ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋‚˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์ง€๋ง์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์•กํŠธ๋ฅผ ์„ ํƒํ–ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋Š” ์ž…๋ฌธ ์ฃผ์ฐจ์ด๊ณ , ์ˆ™๋ จ ์ฃผ์ฐจ์™€ ์‹ฌํ™” ์ฃผ์ฐจ๊ฐ€ ๋‚จ์•„์žˆ๋‹ค.

๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ ๊ฐ•์˜๋ฅผ ๋ฐ›์•„์„œ 3์ฃผ์ฐจ ์ดˆ๋ฐ˜๊นŒ์ง€ ๋“ค์—ˆ๋Š”๋ฐ, ํŠœํ„ฐ๋‹˜ ๊ฐ•์˜๋ ฅ๋„ ์ข‹์œผ์‹œ๊ณ  ๋ฆฌ๋•์Šค์™€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋„ ๋‹ค๋ฃจ๊ณ  ์žˆ์–ด์„œ ๋น ๋ฅด๊ฒŒ ์™„๊ฐ• ํ›„ ๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ  ์ฑ… 24์žฅ๋ถ€ํ„ฐ ์‹ค์Šตํ•ด๋ณด์ž๋Š” ๊ณ„ํš์„ ์„ธ์› ๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ๊ฐ€ ๋๋‚˜๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ ๋” ์žฌ๋ฐŒ๊ฒŒ ๋А๊ปด์ง„๋‹ค ๐Ÿฅณ

๊ฐœ์ธ ๊ณต๋ถ€ ์‹œ๊ฐ„์ด ๋งŽ์ด ์ฃผ์–ด์ง€๋‹ˆ๊นŒ ํ•„์š”ํ•œ ๊ณต๋ถ€๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ค‘๊ฐ„์ค‘๊ฐ„ ํŒ€์›๋“ค๊ณผ ํ† ์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์งˆ์˜์‘๋‹ต ๊ณผ์ œ๋‚˜ ๊ฐœ์ธ ๊ตฌํ˜„ ๊ณผ์ œ๋„ ์ฃผ์–ด์ ธ์„œ ์ด๋ฒˆ ์ฃผ์ฐจ๋„ ์•Œ์ฐจ๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€ ๋А๋‚Œ์ด๋‹ค.

 

๐Ÿ“š JavaScript ๋” ํŒŒ๊ณ ๋“ค๊ธฐ

๊ณ„์† Deep Dive ์ฑ…๊ณผ ๋ชจ๋˜ JavaScript ํŠœํ† ๋ฆฌ์–ผ์˜ ๊ธ€๋“ค์„ ์ฝ์œผ๋ฉด์„œ ์•„์ง ์ดํ•ด๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฐœ๋…๋“ค์„ ์ฑ„์›Œ๋‚˜๊ฐ€๊ณ  ์žˆ๋‹ค. ์ž…๋ฌธ ์ฃผ์ฐจ ์ง„์ž…๊ณผ ํ•จ๊ป˜ Starting Assignment ๋กœ ๋ฐ›์€ ์ฃผ์ œ๋“ค์„ ๊ธ€๋กœ ์ •๋ฆฌํ•˜๋ฉด์„œ ํŠนํžˆ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์™€ ํ˜ธ์ด์ŠคํŒ… ๊ฐœ๋…์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

2022.07.01 - [JavaScript] - [S.A.] JavaScript ์ดํ•ด | ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ - ๋ฆฌ์•กํŠธ ์ž…๋ฌธ์ฃผ์ฐจ

 

[S.A.] JavaScript ์ดํ•ด | ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ - ๋ฆฌ์•กํŠธ ์ž…๋ฌธ์ฃผ์ฐจ

7์›”๊ณผ ํ•จ๊ป˜ ํ•ญํ•ด99 ๋™๋ถ๊ถŒ ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„์˜ ๋ฆฌ์•กํŠธ ์ž…๋ฌธ์ฃผ์ฐจ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ๋ณธ๊ฒฉ์ ์ธ ๋ฆฌ์•กํŠธ ๊ณต๋ถ€์— ์•ž์„œ JavaScript์˜ ํ•„์ˆ˜ ๊ฐœ๋…์„ ๋งค์ฃผ ์ดˆ๋ฐ˜์— ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ณ ์ž ํ•œ๋‹ค. ์ด๋ฒˆ ์ฃผ๋Š” JavaScript์˜ ํŠน์„ฑ

gitnyang.tistory.com

 

์˜ค๋Š˜์€ JavaScript์˜ ES๊ฐ€ ๋ฌด์—‡์ธ์ง€, ES5์™€ ES6์˜ ๋ฌธ๋ฒ• ํŠน์ง•์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

> ECMAScript์™€ JavaScript

ECMA(European Computer Manufacturers Association) International ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํ‘œ์ค€์—๋Š”

[ECMA-262] ECMAScript (JavaScript)
[ECMA-402] ECMAScript 2020 Internalization API
[ECMA-404] JSON
[ECMA-408] Dart Programming Language

๋“ฑ์ด ์žˆ๋‹ค.

 

์ด ์ค‘ ECMAScript(ES)๋Š” JavaScript์˜ ํ‘œ์ค€ ์‚ฌ์–‘์ธ ECMA-262๋ฅผ ๋งํ•œ๋‹ค. ECMA ์ธํ„ฐ๋‚ด์…”๋„์˜ ์‚ฐํ•˜ ๊ธฐ์ˆ  ์œ„์›ํšŒ(Technial Committee)๋“ค ์ค‘ TC39์—์„œ JavaScript์˜ ๋ช…์„ธ๋ฅผ ์ •์˜, ๊ด€๋ฆฌ ๋ฐ ๋…ผ์˜ํ•˜๊ณ  ์žˆ๋‹ค. TC39์—๋Š” Mozilla, Google, Apple, Microsoft ๋“ฑ์˜ ๋ฉ”์ด์ € ๋ธŒ๋ผ์šฐ์ € ๋ฒค๋”๋ฅผ ๋น„๋กฏํ•ด Facebook, Twitter ๋“ฑ ๋‹ค์–‘ํ•œ ๋‹จ์ฒด๋“ค์ด ๊ตฌ์„ฑ์›์œผ๋กœ ์ฐธ๊ฐ€ ์ค‘์ด๋‹ค. TC39์—์„œ ๋‚ด๋ฆฌ๋Š” ๊ฒฐ์ •์€ ๋‹จ์ˆœ ๋‹ค์ˆ˜๊ฒฐ์ด ์•„๋‹Œ ์ปจ์„ผ์„œ์Šค ์ฒด์ œ๋กœ ์ด๋ฃจ์–ด์ง€๊ณ , ํšŒ์˜๋ก์€ ๋ชจ๋‘ ์›น์ƒ์— ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค.

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ฐ’, ํƒ€์ž…, ๊ฐ์ฒด์™€ ํ”„๋กœํผํ‹ฐ, ํ•จ์ˆ˜, ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด ๋“ฑ ํ•ต์‹ฌ ๋ฌธ๋ฒ•์„ ๊ทœ์ •ํ•˜๋ฉด ๊ฐ ๋ธŒ๋ผ์šฐ์ € ์ œ์กฐ์‚ฌ๋Š” ECMAScript ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋œ๋‹ค.

 

JavaScript๋Š” ์–ธ์–ด์˜ ๊ธฐ๋ณธ ๋ผˆ๋Œ€๋ฅผ ์ด๋ฃจ๋Š” ECMAScript์—, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ณ„๋„๋กœ ์ง€์›ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ Web API๋ฅผ ์ „๋ถ€ ์•„์šฐ๋ฅด๋Š” ๊ฐœ๋…์ด๋‹ค. Web API์—๋Š” DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web storage, Web Component, Web Worker ๋“ฑ์ด ์žˆ๋‹ค. ECMAScript์™€๋Š” ๋‹ฌ๋ฆฌ W3C(World Wide Web Consortium)์—์„œ ๋ณ„๋„์˜ ์‚ฌ์–‘์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.

> ES5, ES6(2015)

1995๋…„ ๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ์—์„œ ์›น ํŽ˜์ด์ง€์˜ ๋ณด์กฐ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Brendan Eich๊ฐ€ ๊ฐœ๋ฐœํ•œ JavaScript๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ , ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ JavaScript์˜ ํŒŒ์ƒ ๋ฒ„์ „์ธ JScript๋ฅผ ์ถœ์‹œํ•˜๊ณ  IE 3.0์— ํƒ‘์žฌํ•˜๊ฒŒ ๋œ๋‹ค. ๊ฐ ํšŒ์‚ฌ๋Š” ์ž์‚ฌ ๋ธŒ๋ผ์šฐ์ €์˜ ์ ์œ ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ธฐ๋Šฅ๋“ค์„ ๊ฒฝ์Ÿ์ ์œผ๋กœ ์ถ”๊ฐ€ํ–ˆ๊ณ , ์ด์— ๋”ฐ๋ผ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

1996๋…„ 11์›”, ๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ์—์„œ ECMA ์ธํ„ฐ๋‚ด์…”๋„์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€ํ™”๋ฅผ ์š”์ฒญํ–ˆ๊ณ , 1997๋…„ 7์›”์— ์ดˆํŒ์ธ ES1 ์‚ฌ์–‘์ด ์™„์„ฑ๋˜์—ˆ๋‹ค. ์ดํ›„ 1999๋…„์— ์ •๊ทœ ํ‘œํ˜„์‹๊ณผ try...catch ๋ฌธ์„ ๋„์ž…ํ•œ ES3์„ ๊ณต๊ฐœํ•˜๊ณ , 10๋…„ ๋’ค 2009๋…„์—๋Š” HTML5์™€ ํ•จ๊ป˜ ES5๊ฐ€ ํ‘œ์ค€ ์‚ฌ์–‘์œผ๋กœ ์ถœ์‹œ๋˜์—ˆ๋‹ค.

 

ES5์—์„œ๋Š” JSON(XML์—์„œ ๋ณ€ํ™”), strict mode, ์ ‘๊ทผ์ž ํ”„๋กœํผํ‹ฐ ๋ฐ ํ”„๋กœํผํ‹ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์ œ์–ด(getter, setter)์™€ ๋” ํ–ฅ์ƒ๋œ ๋ฐฐ์—ด ์กฐ์ž‘ ๊ธฐ๋Šฅ๋“ค(forEach, map, filter, reduce, some, every)์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

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

 

2015๋…„์— ๊ณต๊ฐœ๋œ ES6(ECMAScript 2015)์—์„œ๋Š” ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ ๊ฐ–์ถฐ์•ผ ํ•  ๊ธฐ๋Šฅ๋“ค์„ ๋Œ€๊ฑฐ ๋„์ž…ํ•˜๋Š” ํฐ ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณดํ†ต ES6 ์ด์ „๊ณผ ์ดํ›„๋กœ ๊ธฐ์ค€์ด ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ์ ์œผ๋กœ๋Š”  let/const ํ‚ค์›Œ๋“œ, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ชจ๋“ˆ import/export, ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด, ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น, ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•, rest ํŒŒ๋ผ๋ฏธํ„ฐ, Symbol, Promise, Map/Set, ์ดํ„ฐ๋Ÿฌ๋ธ”, for ... of, ์ œ๋„ˆ๋ ˆ์ดํ„ฐ, Proxy ๋“ฑ์ด ์žˆ๋‹ค.

ES6์—์„œ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•œ๋‹ค.

ES6 ํ•จ์ˆ˜์˜ ๊ตฌ๋ถ„ constructor prototype super arguments
์ผ๋ฐ˜ ํ•จ์ˆ˜(Normal) โญ• โญ• โŒ โญ•
๋ฉ”์„œ๋“œ(Method) โŒ โŒ โญ• โญ•
ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow) โŒ โŒ โŒ โŒ

 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋Š” ์ด์ „์— ์ •๋ฆฌํ•œ ๊ธ€์ด ์žˆ์–ด ์•„๋ž˜์— ์ฒจ๋ถ€ํ•ด ๋ณธ๋‹ค.

2022.06.05 - [JavaScript] - [JavaScript] ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์™€ this

 

[JavaScript] ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์™€ this

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow Function) function ํ‚ค์›Œ๋“œ ๋Œ€์‹  ํ™”์‚ดํ‘œ => ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ‘œํ˜„ ๋ฟ ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€ ๋™์ž‘๋„ ๊ธฐ์กด์˜ ํ•จ์ˆ˜๋ณด๋‹ค ๊ฐ„๋žตํ•˜๋‹ค. ํŠนํžˆ ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ this๊ฐ€ ์ „์—ญ

gitnyang.tistory.com

 

Reference >

  • https://ahnheejong.name/articles/ecmascript-tc39/
  • ๋ชจ๋˜ JavaScript Deep Dive p.6-8, 13-14, 469-471
  • https://developer.mozilla.org/ko/docs/Web/API
    'FRONT-END/Retrospective' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [WIL] React Hooks์™€ ์ปดํฌ๋„ŒํŠธ ์ตœ์ ํ™” | ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ ๋™๋ถ๊ถŒ - 4์ฃผ์ฐจ ํšŒ๊ณ 
    • [WIL] DOM๊ณผ ์„œ๋ฒ„๋ฆฌ์Šค | ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ ๋™๋ถ๊ถŒ - 3์ฃผ์ฐจ ํšŒ๊ณ 
    • [WIL] ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ ๋™๋ถ๊ถŒ - 1์ฃผ์ฐจ ํšŒ๊ณ 
    • [S.A.] ์ฃผ์ฐจ์–ด๋”” ํ”„๋กœ์ ํŠธ ๊ฐœ์š” | ์ด๋…ธ๋ฒ ์ด์…˜ ์บ ํ”„ - 1์ฃผ์ฐจ 5์กฐ
    ์œคํœด๋จผ
    ์œคํœด๋จผ
    ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ค€๋น„ ์ค‘. ๋””ํ…Œ์ผ๊ณผ ์กฐํ™”๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ISFP๐Ÿ˜Š

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”