Eventloop.md
Last updated
Last updated
์ค๋์ Javascript์ Event Loop์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
Event Loop๋ ๋จ์ผ ์ค๋ ๋์ธ JS์์ง์ ๋ฉํฐ ์ค๋ ๋์ฒ๋ผ ๋ณด์ด๋๋ก ํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ Javascript์ ํ๋ก์ธ์ค ์ฒ๋ฆฌ์ ๋ํด์ ์์์ผํฉ๋๋ค.
JS ์์ง์ Memory Heap๊ณผ Call stack์ผ๋ก ์ด๋ฃจ์ด์ ธ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ ๊ณณ
์ ์ธํ ๋ณ์, ํจ์ ๋ฑ
์ฝ๋๊ฐ ์คํ๋ ๋ ์์ด๋ ๊ณณ
Stack(LIFO)ํํ๋ก ์์
DOM, Ajax, Timeout ๋ฑ์ด ์คํ๋๋ JS ์์ง์ด ์๋๋๋ค.
Callstack์ ๋น๋๊ธฐ ํจ์ ์์
ํด๋น ๋น๋๊ธฐ ํจ์๊ฐ Web API ํธ์ถ
WebAPI๋ ํด๋น ํจ์๋ฅผ Callback Queue์ ์ฝ์
๋น๋๊ธฐ์ ์ผ๋ก ์คํ๋ ์ฝ๋ฐฑํจ์๊ฐ ๋ณด๊ด๋๋ ์์ญ
Queue(FIFO) ๊ตฌ์กฐ
๊ทธ๋์, Event Loop๋ ๋ญ ํ๋ ๊ฑฐ์ผ?
Callstack์์ ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ ํจ์๋ค์ด ๋ชจ๋ ์คํ๋์ด
Callstack์ด ๋น์๋ค๋ฉด
Callback Queue์ ์ฒซ๋ฒ์งธ, ์ฆ ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ๋น๋๊ธฐ ํจ์๋ฅผ Callstack์ผ๋ก ์ฝ์ ํฉ๋๋ค.
์ ๊ณผ์ ์ ํตํด ๋จ์ผ ์ค๋ ๋๋ก ๋์ํ๋ Javascript์์ ๋ฉํฐ ์ค๋ ๋์ฒ๋ผ ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค!.