Promises์™€ Async/Await๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•

์ฝœ๋ฐฑ ์ง€์˜ฅ ํƒˆ์ถœ: ์•ฝ์†๊ณผ Async/Await๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•

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

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

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

์ฐจ๋ก€

์ฝœ๋ฐฑ ์ง€์˜ฅ: ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋Š” ํ˜ผ๋ž€

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

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

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

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

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

JavaScript์—์„œ ์ค‘์ฒฉ ์ฝœ๋ฐฑ ์ดํ•ดํ•˜๊ธฐ

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

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

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

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

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

์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์šด ์ฝ”๋“œ, ์˜ค๋ฅ˜ ์ฒด์ธ ๋ฐ ๋น„๋™๊ธฐ ์ŠคํŒŒ๊ฒŒํ‹ฐ

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

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

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

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

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

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

์ฝœ๋ฐฑ ๊ธฐ๋ฐ˜ ๋””์ž์ธ์ด ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋˜๋Š” ์‹œ์ ์€ ์–ธ์ œ์ธ๊ฐ€?

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

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

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

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

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

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

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

ํšจ๊ณผ์ ์ธ ๋ฆฌํŒฉํ† ๋ง ์ „๋žต

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

๋น„๋™๊ธฐ ๋‹จ์œ„ ๋ถ„๋ฆฌ

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

์ฝœ๋ฐฑ์„ ์•ฝ์†์œผ๋กœ ๊ฐ์‹ธ๊ธฐ

๊ฐœ๋ณ„ ๋น„๋™๊ธฐ ์ž‘์—…์„ ๋ถ„๋ฆฌํ•œ ํ›„, ๋‹ค์Œ ๋‹จ๊ณ„๋Š” Promise๋กœ ๊ฐ์‹ธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์‹  ๋น„๋™๊ธฐ ๊ตฌ๋ฌธ์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. JavaScript์˜ Promise ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์ฝœ๋ฐฑ ๊ธฐ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ฝœ๋ฐฑ์„ ์ „๋‹ฌํ•˜๋Š” ๋Œ€์‹ , ๊ฒฐ๊ณผ๋ฅผ Resolveํ•˜๊ฑฐ๋‚˜ Rejectํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์บก์Аํ™”๋Š” ํ•จ์ˆ˜๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•จ์ˆ˜์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. .then() ์ฒด์ธ ๋˜๋Š” async/await ๋ธ”๋ก. ๋˜ํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•˜์—ฌ ๋ชจ๋“  ์ค‘์ฒฉ ์ˆ˜์ค€์—์„œ ๋ฐ˜๋ณต์ ์ธ ํ™•์ธ ์ž‘์—…์„ ์—†์•ฑ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์€ ํ•จ์ˆ˜์˜ ํ•ต์‹ฌ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋” ํฐ ๋น„๋™๊ธฐ ํ๋ฆ„์— ๋Œ€ํ•œ ์ ํ•ฉ์„ฑ์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ž˜ํ•‘๋œ ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋Š” ๋” ๊น”๋”ํ•˜๊ณ  ํ‰ํ‰ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๊ธฐ๋ฐ˜์ด ๋ฉ๋‹ˆ๋‹ค.

Flatten Control Flow๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .then() ์‡ ์‚ฌ์Šฌ

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

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ค‘์•™ํ™”

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

ํ•˜ํ–ฅ์‹ ๋ฆฌํŒฉํ† ๋ง

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

์ฝœ๋ฐฑ์—์„œ ์•ฝ์†์œผ๋กœ์˜ ๋‹จ๊ณ„๋ณ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

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

๊ฐ€์žฅ ๋งŽ์ด ์ค‘์ฒฉ๋œ ์ฝœ๋ฐฑ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”

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

Promise ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝœ๋ฐฑ์„ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค.

Promise ์ƒ์„ฑ์ž๋Š” ๊ธฐ์กด ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ํ•ต์‹ฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. resolve ๋ฐ reject ์ธ์ˆ˜๋ฅผ ๊ฐ–๋Š” ๋‹จ์ผ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝœ๋ฐฑ์˜ ์„ฑ๊ณต ๋ฐ ์‹คํŒจ ๊ฒฝ๋กœ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝœ๋ฐฑ ๊ธฐ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด์ „์— ์ฝœ๋ฐฑ์„ ๋ฐ›๋˜ ํŒŒ์ผ ์ฝ๊ธฐ ํ•จ์ˆ˜๋ฅผ ์ด์ œ ํŒŒ์ผ ๋‚ด์šฉ์„ resolveํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๋ฅผ rejectํ•˜๋„๋ก ๋‹ค์‹œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์บก์Аํ™”๋Š” ์ž‘์—… ๋กœ์ง๊ณผ ์‚ฌ์šฉ ๋ฐฉ์‹์„ ๋ถ„๋ฆฌํ•˜์—ฌ ํ˜ธ์ถœ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€ ์ค‘์ฒฉ ์—†์ด ์—ฌ๋Ÿฌ ๋น„๋™๊ธฐ ๋‹จ๊ณ„๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ฑฐ๋ถ€๋œ Promise๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํŒจ๋ฅผ ๋‹ค์šด์ŠคํŠธ๋ฆผ์œผ๋กœ ์ „ํŒŒํ•˜๋ฏ€๋กœ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์˜ ์ผ๊ด€์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. .catch() ํ•ธ๋“ค๋Ÿฌ ๋˜๋Š” try/catch ๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ๋ธ”๋ก.

์ฝœ๋ฐฑ ์ฒด์ธ์„ ์•ฝ์† ์ฒด์ธ์œผ๋กœ ๊ต์ฒด

์—ฌ๋Ÿฌ ์ฝœ๋ฐฑ์ด Promises๋กœ ๋ž˜ํ•‘๋˜๋ฉด ๊ธฐ์กด์˜ ์ค‘์ฒฉ ์ฒด์ธ์„ ํ”Œ๋žซ ์‹œํ€€์Šค๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .then() ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์€ ์‹œ๊ฐ์  ๋ช…ํ™•์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ช…ํ™•ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ์ž‘์—… ํ๋ฆ„์„ ์ •์˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ .then() ์ด์ „ Promise์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์„œ ์ƒˆ Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ๋™๊ธฐ ์‹คํ–‰๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณต์žกํ•œ ๋กœ์ง์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฒด์ด๋‹ ๋ฐฉ์‹์€ ์ƒํƒœ ์ „ํ™˜, ์ค‘๊ฐ„ ๊ฐ’ ๋ฐ ์ตœ์ข… ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ถ”๋ก ์„ ๋” ์‰ฝ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฒด์ธ์˜ ๊ฐ ํ•จ์ˆ˜๊ฐ€ ๋‹จ์ผ ์ž‘์—…์—๋งŒ ์ง‘์ค‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ ์ž‘์—…์„ ์„œ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋ณด๋„ˆ์Šค๋กœ, .catch() ์ฒด์ธ์˜ ๋๋ถ€๋ถ„์—์„œ๋Š” ์˜ค๋ฅ˜ ๊ด€๋ฆฌ๋ฅผ ์ค‘์•™ํ™”ํ•˜์—ฌ ์นจ๋ฌต์˜ ์‹คํŒจ์™€ ๋ถ„์‚ฐ๋œ ์˜ˆ์™ธ ๋…ผ๋ฆฌ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด์„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋กœ ๋ฆฌํŒฉํ† ๋ง

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

๊ณ„์†ํ•˜๊ธฐ ์ „์— ๊ฐ ๋‹จ๊ณ„๋ฅผ ํ…Œ์ŠคํŠธํ•˜์„ธ์š”

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

๊ธฐ์กด ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ "์ฝœ๋ฐฑ ๊ฐ€๋Šฅ" ํ•จ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•

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

๊ฐ€์žฅ ๋ถ„๋ช…ํ•œ ์ง•ํ›„ ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋งˆ์ง€๋ง‰ ์ธ์ˆ˜๋กœ ๋ฐ›๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, fs.readFile(path, options, callback) or db.query(sql, callback) ์ด๋Ÿฌํ•œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋Š” ๊ณ ์ „์ ์ธ ์‹œ๊ทธ๋‹ˆ์ฒ˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฝœ๋ฐฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ค๋ฅ˜ ๋˜๋Š” ๊ฒฐ๊ณผ ๊ฐ์ฒด๋ฅผ ์ˆ˜์‹ ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๊ฐ€ ์žˆ์œผ๋ฉด Promise ๊ธฐ๋ฐ˜ ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

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

์ฝœ๋ฐฑ ๊ฐ€๋Šฅ ํ•จ์ˆ˜์—๋Š” ์ข…์ข… ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. if (err) or if (error) ๋ณธ๋ฌธ ๋‚ด๋ถ€. ์ด๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ ˆ๊ฑฐ์‹œ ํŒจํ„ด์ด๋ฉฐ, ํ•จ์ˆ˜๊ฐ€ ๊ตฌ์กฐํ™”๋œ Promise ๊ฑฐ๋ถ€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ๊ฐ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๊ฒฝ๋กœ ์ฒ˜๋ฆฌ๊ธฐ, ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ๋ฏธ๋“ค์›จ์–ด ์ฒด์ธ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

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

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

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

์ž ์„ ์žƒ์ง€ ์•Š๊ณ  ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ: .catch() vs try/catch

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

์ฝœ๋ฐฑ ํ˜ผ๋ž€: ๋ชจ๋“  ๊ณณ์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

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

์ค‘์•™ํ™”ํ•˜์—ฌ .catch()

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

์ด ํŒจํ„ด์—์„œ๋Š” Promise๊ฐ€ ์‹คํŒจํ•˜๋”๋ผ๋„ ์˜ค๋ฅ˜๊ฐ€ ํ•œ ๊ณณ์—์„œ ๊ฐ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ œ์–ด ํ๋ฆ„์„ ๋” ์‰ฝ๊ฒŒ ์ฝ๊ณ  ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์šฉ try/catch async/await์—์„œ

๋”์šฑ ๋ฆฌํŒฉํ† ๋งํ•˜๋ฉด async/await๋™์ผํ•œ ์›์น™์ด ์ ์šฉ๋˜์ง€๋งŒ ๊ตฌ๋ฌธ์ด ๋” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ๋…ผ๋ฆฌ๋ฅผ try/catch ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜๋ฉด ๋น„์ฐจ๋‹จ ๋™์ž‘์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋™๊ธฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์˜ ์ต์ˆ™ํ•œ ๋ชจ์Šต์„ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ๋น„๋™๊ธฐ ๋‹จ๊ณ„๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•ด์•ผ ํ•  ๋•Œ ๋น›์„ ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ จ์˜ ์ž‘์—…์— ๋Œ€ํ•ด ๋‹จ์ผ ์˜ค๋ฅ˜ ๊ฒฝ๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ธฐ์กด ๋™๊ธฐ ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜ํ•ด์•ผ ํ•  ์‹ค์ˆ˜ ํ•˜๋‚˜

ํ•จ์ˆ˜๋ฅผ ๋ž˜ํ•‘ํ•˜๋Š” ๊ฒƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. try/catch ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ์žก์•„๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์žŠ์–ด๋ฒ„๋ฆฐ ๊ฒฝ์šฐ await ์•ฝ์† ์•ˆ์— try ๋ธ”๋ก์„ ๋งŒ๋“ค๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฏธ๋ฌ˜ํ•˜์ง€๋งŒ ์œ„ํ—˜ํ•œ ๋ฌธ์ œ๋กœ, ๋ฆฌํŒฉํ† ๋ง ์ค‘์— ์ข…์ข… ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์•ˆ์ •์ ์ธ ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ์˜ค๋ฅ˜๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. .catch() Promise ์ฒด์ธ ๋ฐ try/catch async/await ๋ธ”๋ก์˜ ๊ฒฝ์šฐ Promise๋ฅผ ์˜ค๋ฅ˜ ๊ฒฝ๋กœ ์—†์ด ๋ฐฉ์น˜ํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์„ธ์š”.

์•ฝ์†์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹ค์ฒœํ•˜๊ธฐ: ์‹ค์šฉ์ ์ธ ์‹ฌ์ธต ๋ถ„์„

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

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

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

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

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

Promise๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด(์˜ˆ: ๊น”๋”ํ•˜๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒด์ด๋‹ํ•˜๊ณ , ์ฝœ๋ฐฑ ์Šต๊ด€์„ ํ”ผํ•˜๋Š” ๊ฒƒ) ์ฝ”๋“œ๊ฐ€ ๋” ๋ช…ํ™•ํ•˜๊ณ , ๋” ๊ฐ•๋ ฅํ•ด์ง€๋ฉฐ, ๋””๋ฒ„๊น…์ด ํ›จ์”ฌ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ„ด์€ ๋˜ํ•œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋”์šฑ ๊ฐ„์†Œํ™”๋œ ๋น„๋™๊ธฐ ๋ชจ๋ธ์˜ ๊ธฐ๋ฐ˜์„ ๋งˆ๋ จํ•ฉ๋‹ˆ๋‹ค. async/await์ด์–ด์„œ ์ด์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ˆœ์ฐจ ๋…ผ๋ฆฌ์— ๋Œ€ํ•œ ์•ฝ์† ์ฒด์ด๋‹

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

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

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

๊ฐ ๊ธฐ๋Šฅ getUser, processUser์˜ˆ์‚ฐ ๋ฐ saveUser ์ด๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ ค๋ฉด Promise๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… .then() ์ด์ „ ๋‹จ๊ณ„๊ฐ€ ๋ชจ๋‘ ์„ฑ๊ณตํ•  ๋•Œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฒด์ธ์˜ ์–ด๋–ค ํ•จ์ˆ˜์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ Promise๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ฉด .catch() ๋ธ”๋ก์ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

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

์ฃผ์˜ํ•ด์•ผ ํ•  ์  ์ค‘ ํ•˜๋‚˜๋Š” ์˜๋„์น˜ ์•Š์€ ์ค‘์ฒฉ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์„ ๋„ฃ๋Š” ๊ฒƒ์€ ํ”ํ•œ ์‹ค์ˆ˜์ž…๋‹ˆ๋‹ค. .then() ๊ธฐ์กด ๋ธ”๋ก ์•ˆ์— ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฆฌํŒฉํ† ๋ง ๋‹น์‹œ ์˜๋„ํ–ˆ๋˜ ์ค‘์ฒฉ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‚ด๋ถ€ ์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.

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

๊ฐ’ ๋ฐ˜ํ™˜ ๋ฐ ์ฝœ๋ฐฑ๊ณผ ์œ ์‚ฌํ•œ ์•ฝ์† ๋‚จ์šฉ ๋ฐฉ์ง€

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

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

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

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋ ค๋ฉด ๊ฐ๊ฐ์„ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค. .then() ๋ธ”๋ก์„ ์„ ํ˜• ๊ฒฝ๋กœ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ธ”๋ก์€ ๋ช…ํ™•ํ•œ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ์ฒ˜๋ฆฌํ•œ ํ›„ ์ถœ๋ ฅ์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฒด์ธ์ด ์†์ƒ๋˜์ง€ ์•Š๊ณ  ๊ฒฐ๊ณผ์™€ ์˜ค๋ฅ˜๊ฐ€ ํ•œ ๋‹จ๊ณ„์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์›ํ™œํ•˜๊ฒŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. Promise๋ฅผ ์‚ฌ์šฉํ•œ ๋ฆฌํŒฉํ† ๋ง์€ ๊ตฌ๋ฌธ ๋ณ€๊ฒฝ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ๋ฆ„๊ณผ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐฉ์‹์˜ ๋ณ€ํ™”๋„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ์ผ๊ด€์„ฑ์˜ ์›์น™์„ ์กด์ค‘ํ•˜๊ณ  ๋…ผ๋ฆฌ๋ฅผ ์ค‘์ฒฉํ•˜๋ ค๋Š” ์ถฉ๋™์„ ์ €ํ•ญํ•จ์œผ๋กœ์จ .then() ๋ธ”๋ก์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๊น”๋”ํ•˜๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ณ€ํ™”์—๋„ ๋ณต์›๋ ฅ์ด ๋›ฐ์–ด๋‚œ Promise ์ฒด์ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ช…ํ™•์„ฑ์€ ๋”์šฑ ๋ฐœ์ „๋œ ๋น„๋™๊ธฐ ํŒจํ„ด์„ ํ†ตํ•ฉํ•˜๊ฑฐ๋‚˜ ํ–ฅํ›„ async/await๋กœ ์ „ํ™˜ํ•  ๋•Œ ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณ‘๋ ฌ ์‹คํ–‰ Promise.all Promise.allSettled

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

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

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

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

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

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

Async/Await: ๋” ๊น”๋”ํ•œ ๊ตฌ๋ฌธ, ๋” ์Šค๋งˆํŠธํ•œ ํ๋ฆ„

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

๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ์ž‘๋™ ๋ฐฉ์‹

An async ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€์—์„œ ๋ฌด์—‡์„ ๋ฐ˜ํ™˜ํ•˜๋“  ํ•ญ์ƒ Promise๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ฌธ ๋‚ด์—์„œ await ํ‚ค์›Œ๋“œ๋Š” ๋Œ€๊ธฐ ์ค‘์ธ Promise๊ฐ€ ํ•ด๊ฒฐ๋˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€๋  ๋•Œ๊นŒ์ง€ ์‹คํ–‰์„ ์ผ์‹œ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์ˆœ์„œ์™€ ์ข…์†์„ฑ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .then() ์ฒด์ธ. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. await ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค async ์ด๋Š” ํ๋ฆ„ ์ œ์–ด ์Šคํƒ€์ผ์„ ์˜๋„์ ์ด๊ณ  ๋ช…์‹œ์ ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

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

ํ–ฅ์ƒ๋œ ๊ฐ€๋…์„ฑ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ

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

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

์˜ค๋ฅ˜๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ

์™€ async/await๋น„๋™๊ธฐ ์ฝ”๋“œ์˜ ์˜ˆ์™ธ๋Š” ๋™์ผํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. try/catch ๊ฐœ๋ฐœ์ž๋“ค์ด ๋™๊ธฐ์‹ JavaScript์—์„œ ์ด๋ฏธ ์ต์ˆ™ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์˜ ํ•™์Šต ๊ณก์„ ์ด ํฌ๊ฒŒ ๋‹จ์ถ•๋˜๊ณ  ๋™๊ธฐ ๋ฐ ๋น„๋™๊ธฐ ๋กœ์ง ์ „๋ฐ˜์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ‘œ์ค€ํ™”๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ ์‚ฌํ•ญ์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. await ํ•„์š”ํ•œ ๋ชจ๋“  ์•ฝ์†์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. try/catch ๋ธ”๋ก์œผ๋กœ ์ธํ•ด ํฌ์ฐฉ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ณ‘๋ ฌ ์ž‘์—…์—๋Š” ์—ฌ์ „ํžˆ Promise.all ๋˜๋Š” ์œ ์‚ฌํ•œ ํŒจํ„ด์ด๋ฏ€๋กœ await ์‹คํ–‰์„ ์ผ์‹œ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—…์ด ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ์„ ๋•Œ ์˜ˆ์ƒ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Async/Await๊ฐ€ ์ง„์ •์œผ๋กœ ํƒ์›”ํ•œ ๊ณณ

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

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

์•ฝ์†์—์„œ ๋น„๋™๊ธฐ/๋Œ€๊ธฐ๊นŒ์ง€: ๋ฆฌํŒฉํ† ๋ง ํŒจํ„ด ์„ค๋ช…

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

์ˆœ์ฐจ์  ์ฒด์ธ์„ ์ƒํ–ฅ์‹ ๋…ผ๋ฆฌ๋กœ ๋ฆฌํŒฉํ† ๋ง

Promise ๊ธฐ๋ฐ˜ ์ฝ”๋“œ์˜ ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์€ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .then() ์ˆœ์ฐจ์  ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค. async/await๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ํ˜ธ์ถœ์€ ์ผ๋ จ์˜ ํ˜ธ์ถœ๋กœ ๋‹ค์‹œ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. await ๋‚ด์˜ ์ง„์ˆ  async ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œ์‹œ๋˜์ง€๋งŒ ๋“ค์—ฌ์“ฐ๊ธฐ๋‚˜ ๋ณ„๋„์˜ ์ฒ˜๋ฆฌ๊ธฐ ๋ธ”๋ก์€ ์—†์Šต๋‹ˆ๋‹ค. ํ๋ฆ„์€ ๊ธฐ์กด ์ ˆ์ฐจ์  ํ•จ์ˆ˜์ฒ˜๋Ÿผ ํ•˜ํ–ฅ์‹์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

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

๊ต์ฒด .catch() Try/Catch ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์—ฌ

async/await๋ฅผ ๋„์ž…ํ•  ๋•Œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ฃผ์š” ๊ฐœ์„  ์˜์—ญ์ž…๋‹ˆ๋‹ค. .catch() ์ฒด์ธ์˜ ๋์—์„œ ๊ฐœ๋ฐœ์ž๋Š” ๋Œ€๊ธฐ ๋‹จ๊ณ„๋ฅผ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. try/catch ๋ธ”๋ก. ์ด ๋ธ”๋ก์€ ์‹œํ€€์Šค์˜ ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ์ค‘์•™ ์ง‘์ค‘์‹ ์˜ˆ์™ธ ๋กœ์ง์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํŠนํžˆ ๋ถ„์‚ฐ๋œ ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•  ๋•Œ ๊ฐ€๋…์„ฑ๊ณผ ์ผ๊ด€์„ฑ์ด ๋” ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. .catch() ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•ธ๋“ค๋Ÿฌ ๋˜๋Š” ๋‚ด์žฅ๋œ ์˜ค๋ฅ˜ ๋…ผ๋ฆฌ .then() ๋ธ”๋ก.

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

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ณ‘๋ ฌ์„ฑ ์œ ์ง€

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

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

์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋ฆฌํŒฉํ† ๋งํ•ฉ๋‹ˆ๋‹ค

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

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

์•ˆํ‹ฐํŒจํ„ด์„ ์ดํ•ดํ•˜๊ณ  ํ”ผํ•˜์„ธ์š”

์ด ์ „ํ™˜ ์ค‘์— ํ”ํžˆ ์ €์ง€๋ฅด๋Š” ์‹ค์ˆ˜์—๋Š” ์‚ฌ์šฉ์„ ์žŠ๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. await, ์ด๋Š” Promises๊ฐ€ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ์‹คํ–‰๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. await ์•ˆ์ „ํ•˜๊ฒŒ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์— ๋Œ€ํ•ด์„œ. ๊ฐœ๋ฐœ์ž๋Š” ๋˜ํ•œ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. async ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•ด, ์‹ค์ œ๋กœ ๋ฌด์—‡์ด ๋น„๋™๊ธฐ์ธ์ง€์— ๋Œ€ํ•œ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ•จ์ˆ˜๋ฅผ ๋น„๋™๊ธฐ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ช…ํ™•ํ•œ ๊ทœ์น™์„ ์ •ํ•˜๋ฉด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ฒ ์ €ํ•œ ํ…Œ์ŠคํŠธ์™€ ์ผ๊ด€๋œ ๊ตฌ์กฐ๊ฐ€ ๊ฒฐํ•ฉ๋˜๋ฉด async/await๋Š” ํ˜„๋Œ€์ ์ด๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•œ ๋น„๋™๊ธฐ ์ฝ”๋“œ์˜ ๊ธฐ๋ฐ˜์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™๊ธฐ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๋А๊ปด์ง€๋Š” ์ฝ๊ธฐ ์‰ฌ์šด ๋น„๋™๊ธฐ ๋…ผ๋ฆฌ ์ž‘์„ฑ

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

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

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

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

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

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

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

๋น„๋™๊ธฐ/๋Œ€๊ธฐ ๋ธ”๋ก์—์„œ ์ˆœ์ฐจ ์‹คํ–‰๊ณผ ๋ณ‘๋ ฌ ์‹คํ–‰ ๊ด€๋ฆฌ

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

In async/await, ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐฐ์น˜ await ์ˆœ์ฐจ์ ์ธ ๋ช…๋ น๋ฌธ์€ ๊ฐ ์ž‘์—…์ด ์ด์ „ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•œ ํ›„์— ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ์กด์˜ ์ ˆ์ฐจ์  ์ฝ”๋“œ๋ฅผ ๋ฐ˜์˜ํ•˜๋ฉฐ, ํ•œ ๋‹จ๊ณ„๊ฐ€ ์ด์ „ ๋‹จ๊ณ„์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ๋•Œ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…๋ ฅ ๊ฒ€์ฆ, ์‚ฌ์šฉ์ž ๊ฐ€์ ธ์˜ค๊ธฐ, ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœํ•„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ €์žฅ์€ ๋ฐ˜๋“œ์‹œ ์ด ํŠน์ • ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์ฐจ์  ๋ชจ๋ธ์€ ๋…ผ๋ฆฌ์  ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ํŠน์ • ์ง€์ ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๋””๋ฒ„๊น…์„ ๋” ์‰ฝ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

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

์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ž๋Š” Promise๋ฅผ ์ฆ‰์‹œ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ Promise๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•œ ํ›„ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ๊ป˜ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Promise.all or Promise.allSettled, ์™„์ „ํ•œ ์„ฑ๊ณต์ด ํ—ˆ์šฉ๋˜๋Š”์ง€ ๋ถ€๋ถ„์ ์ธ ์‹คํŒจ๊ฐ€ ํ—ˆ์šฉ๋˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋ฃนํ™”๋˜๋ฉด ๋‹จ์ผ await call์€ async/await์˜ ์ด์ ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋™์‹œ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ์ง‘๋‹จ์  ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ˆœ์ฐจ ์‹คํ–‰๊ณผ ๋ณ‘๋ ฌ ์‹คํ–‰ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ•˜๋Š”์ง€๋Š” ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ˆœ์ฐจ ํ๋ฆ„์—์„œ๋Š” ๋‹จ์ผ try/catch ์ „์ฒด ์‹œํ€€์Šค๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ ํ๋ฆ„์—์„œ๋Š” ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌํ• ์ง€, ์•„๋‹ˆ๋ฉด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ• ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ์ž‘์—…์˜ ์ค‘์š”๋„์™€ ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•˜๊ฑฐ๋‚˜ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

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

ํ™œ์šฉ SMART TS XL ๋Œ€๊ทœ๋ชจ ์ฝœ๋ฐฑ ํ—ฌ ๋ฆฌํŒฉํ† ๋ง์„ ์œ„ํ•œ

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

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

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

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

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

ํ†ตํ•ฉํ•˜์—ฌ SMART TS XL ๋ฆฌํŒฉํ† ๋ง ํ”„๋กœ์„ธ์Šค์— ์ˆ˜๋™ ์ฝ”๋“œ ์ •๋ฆฌ์—์„œ ์ž๋™ํ™”๋œ ์•„ํ‚คํ…์ฒ˜ ํƒ์ƒ‰์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ฝœ๋ฐฑ ํ—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์žฅ๊ธฐ์ ์ธ ๋น„๋™๊ธฐ ์ฝ”๋“œ ๊ฑด๊ฐ•์„ ์œ„ํ•œ ๊ธฐ๋ฐ˜์„ ๋งˆ๋ จํ•ด ์ค๋‹ˆ๋‹ค.

์•ฝ์†์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ, ์™„์ „ํ•œ Async/Await๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ

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

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

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

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

์ฝœ๋ฐฑ ํ—ฌ์„ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๊ตฌ๋ฌธ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ๋ฆ„ ์ œ์–ด๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ์ธ์ง€ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋ฉฐ, ํŒ€์˜ ์‚ฌ๊ณ ๋ฐฉ์‹๊ณผ ํ˜‘์—… ๋ฐฉ์‹์— ๋งž์ถฐ ๋น„๋™๊ธฐ ๋กœ์ง์„ โ€‹โ€‹๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ๊ณ ๋ฐฉ์‹๊ณผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด SMART TS XL๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ํ˜„๋Œ€ํ™”ํ•˜๊ณ  ๊ธฐ์ˆ ์ , ์šด์˜์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ฐ˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.