๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜๋Š” ๊ฒƒ์ด ์™œ ์œ ์šฉํ•œ๊ฐ€์š”?

๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜๋Š” ๊ฒƒ์ด ์™œ ์œ ์šฉํ•œ๊ฐ€์š”?

์–ผ๋งˆ ์ „ ๊ณ ์œ„์ง์— ์ง€์›ํ•˜๋Š” JavaScript ๊ฐœ๋ฐœ์ž๋ฅผ ์ธํ„ฐ๋ทฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋ทฐ์— ํ•จ๊ป˜ ์ฐธ์„ํ•œ ๋™๋ฃŒ๋Š” ํ›„๋ณด์ž์—๊ฒŒ HTTP ์š”์ฒญ์„ ๋งŒ๋“ค๊ณ , ์‹คํŒจํ•  ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์‹œ๋„ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Š” ๋ณด๋“œ์— ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ผ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋žต์ ์ธ ๊ฒƒ์„ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ทธ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ๋งŒ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์ƒ๋‹นํžˆ ๋งŒ์กฑํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ๊ทธ๋Š” ์„ฑ๊ณต์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์šฐ๋ฆฌ๋Š” ํฅ๋ถ„ํ•ด์„œ ์ž‘์—…์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๊ณ  ๊ทธ์—๊ฒŒ ์ฝœ๋ฐฑ์ด ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์•ฝ์†์— ๊ธฐ๋ฐ˜ํ•œ ํ•จ์ˆ˜๋กœ ๋ฐ”๊ฟ”๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ์„ฑ ์ฝ”๋“œ๋ฅผ ์ž๋ช…ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

๋Œ€๊ฐœ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์ง€๋งŒ ์ƒํ™ฉ์ด ๊นŒ๋‹ค๋กœ์šธ ๋•Œ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ์˜ ์ˆ˜์„ ๊ฐœ๋ฐœ์ž ์ž๋ฆฌ ํ›„๋ณด์ž๋Š” ์•ฝ์† ๊ฐ์ฒด๊ฐ€ ์ž๋ช…ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ ์–ด๋”˜๊ฐ€์—์„œ ๊ทธ๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋Œ€์ฒ˜ํ•ด์•ผ ํ• ์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์—ˆ๊ฒ ์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๊ณ  ์ธํ„ฐ๋ทฐ ์ค‘์— ์Šค์Šค๋กœ ๋ฐ˜๋ณตํ•  ์ˆ˜๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๋Š” ๊ทธ ์กฐ๊ฐ์„ ๋งˆ์Œ ์†์œผ๋กœ ๊ธฐ์–ตํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

return new Promise((resolve, reject) => {
  functionWithCallback((err, result) => {
   return err ? reject(err) : resolve(result);
  });
});

๋‚˜๋„ ๊ทธ๋žฌ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์šฐ๋ฆฌ ๋ชจ๋‘ ์–ด๋Š ์‹œ์ ์—์„œ๋Š” ํ•ด๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋“ค์€ ๋‚˜์ค‘์— ์ž‘์—…์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ ์กฐ๊ฐ์„ ์•”๊ธฐํ•˜๋ฉด์„œ ๋ชจ๋“  ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์•„์ด๋””์–ด๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋…์„ ์ง„์ •์œผ๋กœ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ๊ทธ๋Š” ์•„๋ฌด๊ฒƒ๋„ ๊ธฐ์–ตํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋‹จ์ง€ ๊ทธ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋งŒ ์•Œ ๋ฟ์ด๋ฉฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ฝ”๋“œ์—์„œ ์‰ฝ๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฟŒ๋ฆฌ๋กœ ๋Œ์•„๊ฐ€๋ผ

์•„์ง ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ง€๋ฐฐ๋ ฅ์ด ํ™•๋ฆฝ๋˜์ง€ ์•Š์•˜๋˜ 2012๋…„์—๋Š” jQuery๊ฐ€ ์„ธ์ƒ์„ ์ง€๋ฐฐํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ €๋Š” ์ด ์ฑ…์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๋‹Œ์ž์˜ ๋น„๋ฐ€, jQuery ์ฐฝ์‹œ์ž์ธ John Resig๊ฐ€ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋ฌผ๋ก  ์‹ค์ œ๋กœ๋Š” ์ด๋Ÿฐ ์ผ๋„ ํ•  ์ˆ˜ ์—†์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐธ์„ ์ˆ˜ ์—†์„ ์ •๋„๋กœ ์–ด๋ ต๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด ์ž์‹ ์˜ ์†”๋ฃจ์…˜์€ ์ž‘๋™ํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋‹จ์ˆœํ•˜๊ณ  ์ˆœ์ง„ํ•ด ๋ณด์ด๋ฉฐ ํฌ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” jQuery๋ฅผ ์ž๋ช…ํ•œ ๊ฒƒ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์—์„œ๋Š” ๋งน๋ชฉ์ ์œผ๋กœ ๋ฏฟ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ๋‚˜๋Š” ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํƒ๊ตฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๊ฑฐ์˜ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ์ผ์ข…์˜ ๋ธ”๋ž™๋ฐ•์Šค๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ์ฑ…์„ ์ฝ์œผ๋ฉด์„œ ๋‚˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋˜์—ˆ๋‹ค. ๋‚˜๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ฝ๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๋งŽ์€ ์†”๋ฃจ์…˜์˜ ๊ตฌํ˜„์ด ์‹ค์ œ๋กœ ๋งค์šฐ ํˆฌ๋ช…ํ•˜๊ณ  ๋ช…๋ฐฑํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ, ๋ฌผ๋ก  ์ด๋Ÿฐ ์ผ์„ ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์—ฐ๊ตฌํ•˜๊ณ  ๊ธฐ์กด ์†”๋ฃจ์…˜์„ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ ์ž์‹ ๋งŒ์˜ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์–ป๋Š” ์˜๊ฐ๊ณผ ๋‹น์‹ ์ด ์•Œ์•„์ฐจ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ํŒจํ„ด์€ ๋‹น์‹ ์„ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋ณ€ํ™”์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋Š์ž„์—†์ด ์‚ฌ์šฉํ•˜๊ณ  ๋งˆ๋ฒ•์˜ ์œ ๋ฌผ๋กœ ์ƒ๊ฐํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•œ ๋ฉ‹์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งˆ๋ฒ•์— ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ๋ฌธ์ œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ˆ˜์™„์žˆ๊ฒŒ ํ•ด๊ฒฐํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋•Œ๋กœ๋Š” ์ฝ”๋“œ๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ณ  ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„์„ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ์ž‘๊ณ  ์ผ๊ด€๋œ ๋‹จ๊ณ„๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ž‘์„ฑ์ž์˜ ๊ฒฝ๋กœ๋ฅผ ์†”๋ฃจ์…˜์œผ๋กœ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋”ฉ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ๋” ๊นŠ์ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๊ณ  ์ž์‹ ๋งŒ์˜ ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ๋ฐ ๋” ๋งŽ์€ ์ž์‹ ๊ฐ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๋ˆˆ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ๋ณด๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ๊ณ  ์ด๊ฒƒ์ด ๋‚ด ์•ž์— ์žˆ๋Š” ๋‚œํ•ดํ•œ ์ฝ”๋“œ ์กฐ๊ฐ์ด ์•„๋‹ˆ๋ฉฐ, ๋‚ด ์ธ์ƒ์—์„œ ๊ฒฐ์ฝ” ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ์—„์ฒญ๋‚˜๊ฒŒ ๋ณต์žกํ•œ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์ € ํ˜ธ๊ธฐ์‹ฌ๊ณผ ๊นŠ์€ ๋ชฐ์ž…๋งŒ ํ•˜๋ฉด ๋ฌธ์ œ ์—†์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด๋“ค์ด๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์‚ฌ๋žŒ๋“ค์ด ์ฝ”๋”ฉ์„ ๋ฐฐ์šฐ๊ณ  ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด ๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜์„ธ์š”

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

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ ์ฝ”๋“œ๋ฅผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ์†”๋ฃจ์…˜์˜ ๊ตฌํ˜„์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ตœ๊ณ ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ๋ถ€ํ„ฐ ๋ฐฐ์šฐ๊ณ  ๊ธฐ์ˆ ์„ ์—ฐ๋งˆํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€