๐ค ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ด๋ป๊ฒ ์ฝ์์ ์งํฌ๊น?
- ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง์ ๋ํด ์์๋ด ๋๋ค. --- ํ์๋ผ์ธ์ ๋ด๋ฆฌ๋ค ์ข์ ๊ธ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ํด ์ค๋ช ํ๋ ๊ธ์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฌธ๋ฒ์ ํฌ๊ฒ ์ฝ๋ฐฑ ํจ์(callback function), ํ๋ก๋ฏธ์ค(Promise), ๊ทธ๋ฆฌ๊ณ ES6๋ถํฐ ๋ฑ์ฅํ async-await ๋ฌธ๋ฒ์ผ๋ก ๊ตฌ๋ณํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ๊ฐ์ ๋์ ๋ฐฉ์์ด ์กฐ๊ธ์ฉ ๋ค๋ฅธ๋ฐ, ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์ ์ญ์ ์ดํดํ๊ณ ์์ด์ผ ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์์ง์ ๋ํ๋ด๋ ์์๋ค์ธ ์ฝ ์คํ, ์ด๋ฒคํธ ๋ฃจํ, ํ์คํฌ ํ(๋ง์ดํฌ๋กํ์คํฌ, ๋งคํฌ๋กํ์คํฌ) ์ ์ฉ์ด๊ฐ ๋ฏ์ค๊ฒ ๋๊ปด์ง ์ ์์ง๋ง, ์ด์ ๋ํ ์ดํด๊ฐ ์์ด์ผ ๋ณต์กํ ๋น๋๊ธฐ ์ฒ๋ฆฌ์์์ ์์๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค. ๋ํ ์ ์ ํ ์ฌ์ง์ด ์์ด ์ดํด์๋ ๋์์ ์ฃผ๋ ๊ธ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ๋ํ ์ดํด๊ฐ ๋ณต์กํ๊ฒ ๋๊ปด์ง์๋ ๋ถ๋ค์ด๋ผ๋ฉด ํ ๋ฒ์ฏค ์ฝ์ด๋ณผ๋งํ ์๋ฃ์ ๋๋ค. - ์๋ฐ์คํฌ๋ฆฝํธ์์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ - ์ฝ๋ฐฑ ํจ์์ ์ฝ๋ฐฑ ์ง์ฅ - Promise์ async-await์ ๋ฑ์ฅ - setTimeout ์ด ์๋๋๋ก ๋์ํ์ง ์๋ ์ด์ - ๋ธ๋ผ์ฐ์ ๊ฐ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ