ํ•ญ๋ชฉ ์ •์˜ ๋ฐ ๊ฐœ๋…
Promise ์ •์˜: ์ƒ์‚ฐ์ž - ์†Œ๋น„์ž ํŒจํ„ด์„ ์ด์š”ํ•œ Callback + Asynchronous ์กฐํ•ฉ์˜ ๋น„๋™๊ธฐ ์—ฐ์‚ฐ์„ ๋„์™€์ฃผ๋Š” ๊ฐ์ฒด
Promise ์ฒด์ธ ์ •์˜: ํ”„๋กœ๋ฏธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ ์—ฌ๋Ÿฌ ๋น„๋™๊ธฐ ํ”„๋กœ๋ฏธ์Šค ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ
  1. ์„ฑ๊ณต: ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์–ด, ํ”„๋กœ๋ฏธ์Šค๊ฐ€ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ ์ƒํƒœ โ†’ ์†Œ๋น„์ž์˜ then์„ ํ†ตํ•ด resolve ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.
  2. ์‹คํŒจ: ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์‹คํŒจํ•˜์—ฌ ํ”„๋กœ๋ฏธ์Šค๊ฐ€ ์—๋Ÿฌ ์›์ธ์„ ๋ฐ˜ํ™˜ํ•œ ์ƒํƒœ โ†’ ์†Œ๋น„์ž์˜ catch๋ฅผ ํ†ตํ•ด reject ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. | | Promise.all() ์‚ฌ์šฉ๋ฒ• | ์‚ฌ์šฉ ์ด์œ : ์—ฌ๋Ÿฌ ๋น„๋™๊ธฐ ์ž‘์—…์ด ์„œ๋กœ ๋…๋ฆฝ์ ์ด๋ฉฐ, ๋ชจ๋“  ์ž‘์—…์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋œ๋‹ค | | | | | Async/Await (๋น„๋™๊ธฐ/๋…ผ๋ธ”๋กœํ‚น ์ฒ˜๋ฆฌ์™€ ์—ฐ๊ด€์ง€์–ด ์ดํ•ดํ• ๊ฒƒ) | ์ฝ”๋“œ ์‹คํ–‰์ด await ํ‚ค์›Œ๋“œ๋ฅผ ๋งŒ๋‚˜๋ฉด, JavaScript ๋Ÿฐํƒ€์ž„์€ ํ•ด๋‹น ํ”„๋กœ๋ฏธ์Šค์˜ ํ•ด๊ฒฐ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ์ž‘์—…์„ ๊ณ„์† ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ await๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ async ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์‹คํ–‰์„ ์ค‘์ง€ํ•˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค. | | | | | ์ธํ„ฐํ”„๋ฆฌํ„ฐ | ์ •์˜: ๊ณ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ํ™˜๊ฒฝ
  1. V8์˜ Ignition ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ AST๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜
  2. ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰
  3. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ํ†ตํ•ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ | | JIT ์ปดํŒŒ์ผ๋Ÿฌ ์—ญํ•  | JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์‹คํ–‰ ์ค‘ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ๋จธ์‹  ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์†๋„๋ฅผ ๋†’์ธ๋‹ค โ†’ ์‹คํ–‰ ์ค‘ ํŠน์ • ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰๋  ๊ฒฝ์šฐ, JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์บ์‹ฑํ•œ๋‹ค. | | ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„ | ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์œ„์น˜(๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ, ์ฆ‰ ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ตฌ์กฐ)์— ๋”ฐ๋ผ ์Šค์ฝ”ํ”„(์œ ํšจ ๋ฒ”์œ„)๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธ | | ์Šค์ฝ”ํ”„ ์ฒด์ธ | ์ •์˜: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ๋•Œ ํ˜„์žฌ ์Šค์ฝ”ํ”„์—์„œ ์ฐพ๊ณ , ์—†์œผ๋ฉด ์ƒ์œ„ ์Šค์ฝ”ํ”„๋ฅผ ์ฐจ๋ก€๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ณผ์ • |