Eventloop.md
์ค๋์ Javascript์ Event Loop์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
Event Loop๋ ๋จ์ผ ์ค๋ ๋์ธ JS์์ง์ ๋ฉํฐ ์ค๋ ๋์ฒ๋ผ ๋ณด์ด๋๋ก ํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ Javascript์ ํ๋ก์ธ์ค ์ฒ๋ฆฌ์ ๋ํด์ ์์์ผํฉ๋๋ค.
Javascript Engine

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