๋๊ธฐ ์ฒ๋ฆฌ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ - ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋จ ํ๋์ ์คํ ์ปจํ ์คํธ ์คํ์ ๊ฐ์ง - ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํ๋ฒ์ ํ๋์ ํ์คํฌ๋ง ์คํํ ์ ์๋ ์ฑ๊ธ ์ค๋ ๋ ๋ฐฉ์์ผ๋ก ๋์ํจ - ํ ๋ฒ์ ํ๋์ ํ์คํฌ๋ง ์คํํ ์ ์๊ธฐ ๋๋ฌธ์, ์ฒ๋ฆฌ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ํ์คํฌ๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ ๋ธ๋กํน(Blocking, ์์ ์ค๋จ)์ด ๋ฐ์ ์์ - ๋๊ธฐ ์ฒ๋ฆฌ //sleep ํจ์๋ก setTimeout ํจ์๋ฅผ ๊ตฌํํด๋ณด์ //sleep ํจ์๋ ์ผ์ ์๊ฐ(delay)๊ฐ ๊ฒฝ๊ณผํ ํ ์ฝ๋ฐฑ ํจ์(func)๋ฅผ ํธ์ถ function sleep(func, delay) { const delayUntil = Date.now() + delay; while (Date.now() < delayUntil); func() } function foo() { c..