์ถ์ฒ : How JavaScript works: an overview of the engine, the runtime, and the call stack
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฑ๊ธ์ค๋ ๋์ธ์ด์ด๋ค.
๊ทธ๋์ ์คํ์ด ํ๋๋ก ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ด๋ป๊ฒ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ผํ ๊น?
์ด๋ฅผ ๋ณด์กฐ ํด์ฃผ๋ Web api๊ฐ ์๋ค.
Web api๋ ๋ง ๊ทธ๋๋ก ์น๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ api ๊ธฐ๋ฅ์ด๋ค.
Web api์๋ ๋ํ์ ์ผ๋ก setTimeout๊ธฐ๋ฅ ๊ทธ๋ฆฌ๊ณ DOM , AJAX ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ Stack์์ ๋ฐ๋ก ์ฒ๋ฆฌํ์ง ์๊ณ , webapi์์ ๋จผ์ ์์ฒญ์ ํ๊ณ , ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์์
์ ์ฒ๋ฆฌํ๋ค.
์ฒ๋ฆฌ์๋ฃ ๋ ์์
๋ค์ ์ฐจ๊ทผ์ฐจ๊ทผ Task queue(Callback queue)์ ์์
์ด ์์ด๊ณ ,(์ด๋, ๋จผ์ ์ฒ๋ฆฌ ๋ ์์
์์ผ๋ก Task queue์ ์์ด๊ฒ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋จผ์ Stack์์ ์์ฒญ์ ํ๋ค๊ณ ํด๋, ์์
์ด ๋จผ์ ์๋ฃ๋๋ค๋ ๋ณด์ฅ์ ์๋ค.)
์ด์ ์ด ์์ธ ์์
๋ค์ Stack์ ๋๊ฒจ์ค์ผํ๋๋ฐ, ์ด ๋ ์ด๋ฒคํธ๋ฃจํ๊ฐ ๋ฑ์ฅํ๋ค.
์ด๋ฒคํธ๋ฃจํ๋ Stack์ด ๋น์ด์๊ณ , task queue์ ์์
์ด ์์ฌ์์ผ๋ฉด, Stack์ ํ๋์ฉ ์์
์ ๋๊ฒจ์ค๋ค.