ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toFrontend
์๋ฌธ ์ฝ๊ธฐ
๋ณต์กํ Promise ์ฒด์ธ์ ์ ๊ฑฐํ๋ Async/Await ํต์ฌ ์ ๋ฆฌ
Understanding Async/Await Like You're 5 ๐งธ
AI ์์ฝ
Context
fetch().then().catch() ๋ฐฉ์์ ๋ณต์กํ Promise ์ฒด์ธ ๊ตฌ์กฐ. ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ์ด๋ฅธ๋ฐ '์คํ๊ฒํฐ ์ฝ๋' ๋ฐ์ ๋ฌธ์ . ๋น๋๊ธฐ ์ฒ๋ฆฌ ๊ณผ์ ์์์ ์ฝ๋ ์ ์ง๋ณด์ ์ด๋ ค์.
Technical Solution
- async ํค์๋๋ฅผ ํตํ ๋น๋๊ธฐ ์์ ์ํ ํจ์ ์ ์
- await ํค์๋๋ก ํน์ ๋น๋๊ธฐ ์์ ์๋ฃ ์๊น์ง ํด๋น ๋ผ์ธ ์คํ ์ผ์ ์ค๋จ
- ๋น๋๊ธฐ ์์ ๋๊ธฐ ์ค์๋ ๋ฉ์ธ ์ค๋ ๋์ ๋ค๋ฅธ ์์ ์ด ๊ณ์ ์คํ๋๋ Non-blocking ๊ตฌ์กฐ ๊ตฌํ
- try/catch ๋ธ๋ก์ ํ์ฉํ ๋น๋๊ธฐ ์๋ฌ ์ฒ๋ฆฌ์ ์ผ๊ด์ฑ ํ๋ณด
- Promise ์ฒด์ด๋ ๋ฐฉ์์ ์ ํ์ ์ธ ๋๊ธฐ์ ์ฝ๋ ์คํ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ๊ฐ๋ ์ฑ ๊ฐ์
Key Takeaway
Async/Await๋ ์๋ก์ด ๋ฉ์ปค๋์ฆ์ด ์๋ Promise ๊ธฐ๋ฐ์ ๋ฌธ๋ฒ์ ์คํ(Syntactic Sugar)์ผ๋ก์ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์๋ฌ ์ฒ๋ฆฌ ํจ์จ์ ๊ทน๋ํํ๋ ์ค๊ณ ๋ฐฉ์.
์ค์ฒ ํฌ์ธํธ
๋น๋๊ธฐ ํจ์ ๋ด๋ถ์ await ์ฌ์ฉ ์ ๋ฐ๋์ try/catch๋ก ๊ฐ์ธ ๋ฐํ์ ์๋ฌ๋ก ์ธํ ์ฑ ์ค๋จ ๋ฐฉ์ง