๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒฑ ๊ฐœ๋ฐœ ๋ฆฌ๋ทฐ

[์ฝ”๋“œ๋ฆฌ๋ทฐ ํ”ผ๋“œ๋ฐฑ] async await ์‚ฌ์šฉ ์˜๋„

by OR15A 2024. 5. 22.
    • ํ˜„์žฌ ๋‚˜์˜ ๊ฐœ๋…
      • async์™€ await๋Š” ํ•œ ์Œ
      • ์„œ๋ฒ„์— ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์„ ๋•Œ(๋‹ค๋ฅธ ์ฝ”๋“œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด์•ผํ•จ) ์‚ฌ์šฉ
      • ์ฝœ๋ฐฑ์ด ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋จ
      • ์›๋ž˜๋Š” promise๊ฐ์ฒด(then(),catch()๋“ฑ ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹์œผ๋กœ ์ฝœ๋ฐฑ ๊ธฐ๋Šฅ์„ ์—ฐ๊ฒฐํ–ˆ์—ˆ๋Š”๋ฐ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ES6๋ถ€ํ„ฐ ์ ์šฉ๋œ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•)
      • ์ฝœ๋ฐฑํ•จ์ˆ˜์— try-catch๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ง๊ด€์ ์ด๋‹ค
    • ํ•™์Šต ๊ณ„๊ธฐ
      • ์ž…์‚ฌ ํ›„ ๊ฐœ์ธ ํฌํŠธํด๋ฆฌ์˜ค ๋ฐœํ‘œ ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์—์„œ ๊ฒŒ์ž„ ๊ด€๋ จ ๊ธฐ๋Šฅ ์„ค๋ช… ํ•จ
      • Q&A ์‹œ๊ฐ„์— async, await ์ ์šฉ ๋ถ€๋ถ„์— ์™œ ์‚ฌ์šฉํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ์ œ๋Œ€๋กœ ๋‹ต๋ณ€ํ•˜์ง€ ๋ชปํ•จ
      • ์†Œ์Šค ํ•œ ์ค„ ํ•œ ์ค„ ๊ทผ๊ฑฐ์žˆ๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์กฐ์–ธ์„ ๋ฐ›์Œ
    • ๊ฐœ๋… ์ •๋ฆฌ
      • async
        • ํ•จ์ˆ˜์˜ ์ด๋ฆ„ ์•ž์— ์œ„์น˜ํ•จ
        • ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด์คŒ
        • async ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ
        • ํ•จ์ˆ˜ ํ˜ธ์ถœ์ž๊ฐ€ .then(), .catch(), .finally() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
      • await
        • async ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
        • ๋น„๋™๊ธฐ ํ”„๋กœ๋ฏธ์Šค ๊ธฐ๋ฐ˜ ์ž‘์—…์„ ๋งˆ์น˜ ๋™๊ธฐ์  ์ž‘์—…์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ
        • ์ฝ”๋“œ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ
        • ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ์ค‘์ฒฉ์œผ๋กœ ์ธํ•œ ๋ณต์žก์„ฑ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
        • ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ ๊ฐ„ํŽธํ™”
        • ํ”„๋กœ๋ฏธ์Šค ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ์ง์ ‘ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Œ
        • ์ผ๊ด€์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ
        • try…catch ๊ตฌ๋ฌธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
        • ํ”„๋กœ๋ฏธ์Šค๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ•จ์ˆ˜์˜ ์‹คํ–‰์„ ์ค‘์ง€ํ•จ
      • ๋‚ด๊ฐ€ ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„
        • ํ•จ์ˆ˜์˜ ๋น„๋™๊ธฐ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‚ด๋ถ€์—์„œ await ์‚ฌ์šฉ์€ ์•Œ๊ณ  ์žˆ์Œ.
        • ๊ทธ๋Ÿฐ๋ฐ ๋น„๋™๊ธฐ ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ์˜ await ํ‚ค์›Œ๋“œ์˜ ํ•„์š”์„ฑ?!
        • ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ
        • ex) ๋ฌธ์ œ ์ œ์‹œ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ await ํ‚ค์›Œ๋“œ ์—†์ด ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ „์ฒด ์ถœ์ œ๋จ -> ๋‚ด ์˜๋„๋Š” ํ•œ ๋ฌธ์ œ์”ฉ ํ‘ธ๋Š” ๊ฒƒ.
        • ๊ทธ๋ž˜์•ผ ์ƒ๋ช… ์†Œ์ง„ ์‹œ ์‹คํŒจ๋กœ ๊ฒฐ๊ณผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Œ
      • ์ฐจ์žฅ๋‹˜์ด ์›ํ•˜์‹  ๋‹ต๋ณ€
        • async/await ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ
        • ์‚ฌ์šฉ์˜๋„์™€ ์„ค๋ช…ํ•  ๋•Œ ์ •ํ™•ํ•œ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ!
    • ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ถ€๋ถ„ ์žฌ์„ค๋ช…
      • (์ƒ๋žต)