ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Understanding Async/Await Like You're 5 ๐Ÿงธ
Dev.toDev.to
Frontend

๋ณต์žกํ•œ Promise ์ฒด์ธ์„ ์ œ๊ฑฐํ•˜๋Š” Async/Await ํ•ต์‹ฌ ์ •๋ฆฌ

Understanding Async/Await Like You're 5 ๐Ÿงธ

Yasir Abbas2026๋…„ 4์›” 2์ผ2๋ถ„beginner

Context

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

Technical Solution

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

Key Takeaway

Async/Await๋Š” ์ƒˆ๋กœ์šด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์•„๋‹Œ Promise ๊ธฐ๋ฐ˜์˜ ๋ฌธ๋ฒ•์  ์„คํƒ•(Syntactic Sugar)์œผ๋กœ์„œ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์„ค๊ณ„ ๋ฐฉ์‹.


๋น„๋™๊ธฐ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ await ์‚ฌ์šฉ ์‹œ ๋ฐ˜๋“œ์‹œ try/catch๋กœ ๊ฐ์‹ธ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋กœ ์ธํ•œ ์•ฑ ์ค‘๋‹จ ๋ฐฉ์ง€

์›๋ฌธ ์ฝ๊ธฐ