๋๊ธฐ์ ๋น๋๊ธฐ
๋๊ธฐ(Synchronous)
โ ๋ชจ๋ ์ผ์ ์์๋๋ก ํ๋์ฉ ์ฒ๋ฆฌํ๋ ๊ฒ
โ ์์ฒญ๊ณผ ์๋ต์ ๋๊ธฐ์์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋๋ค๋ฉด?
- ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ด ์ฌ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ๋ก์ง์ ์ฒ๋ฆฌ
๋น๋๊ธฐ(Asynchronous)
โ ์์ ์ ์์ํ ํ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์์ ์ ์ฒ๋ฆฌ(๋ณ๋ ฌ์ ์ํ)
๋น๋๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์
โ ์ฌ์ฉ์ ๊ฒฝํ
- ์์ฃผ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ ๋ค ์คํ๋๋ ์ฑ์ด ์์ ๋ ๋๊ธฐ๋ก ์ฒ๋ฆฌํ๋ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ถ๋ฌ์จ ๋ค์์ผ ์ฑ์ ์คํ ๋ก์ง์ด ์ํ๋๋ฏ๋ก ์ฌ์ฉ์๋ค์ ๋ง์น ์ฑ์ด ๋ฉ์ถ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝํ์ ๊ฒช๊ฒ๋๋ค.
- ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ๋ฉด ๋จผ์ ์ฒ๋ฆฌ๋๋ ๋ถ๋ถ๋ถํฐ ๋ณด์ฌ์ค ์ ์์ผ๋ฏ๋ก, ์ฌ์ฉ์ ๊ฒฝํ์ ๊ธ์ ์ ์ธ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์
Single Thread ์ธ์ด, JavaScript
โ JavaScript๋ ํ๋ฒ์ ํ๋์ ์ผ๋ง ์ํํ๋ Single Thread ์ธ์ด๋ก ์๋๋ ๋์์ ์ฌ๋ฌ ์์ ์ฒ๋ฆฌ ๋ถ๊ฐ
JavaScript Runtime
โ JavaScript ๊ฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๊ฒฝ
โ JavaScript ์์ ๋น๋๊ธฐ์ ๊ด๋ จํ ์์
์ ๋ธ๋ผ์ฐ์ ๋๋ Node ํ๊ฒฝ์์ ์ฒ๋ฆฌ
โ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์์ ๋น๋๊ธฐ ๋์ ๊ตฌ์ฑ ์์
- JavaScript Engine์ Call Stack
- Web API
- Task Queue
- Event Loop
๋ธ๋ผ์ฐ์ ์์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์
- ๋ชจ๋ ์์ ์ Call Stack(LIFO)๋ก ๋ค์ด๊ฐ ํ ์ฒ๋ฆฌ๋๋ค.
- ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ด Call Stack์ผ๋ก ๋ค์ด์ค๋ฉด Web API๋ก ๋ณด๋ด ๋ณ๋๋ก ์ฒ๋ฆฌ ํ๋๋ก ํ๋ค.
- Web API ์์ ์ฒ๋ฆฌ๊ฐ ๋๋ ์์ ๋ค์ ๊ณง๋ฐ๋ก Call Stack์ผ๋ก ๋ค์ด๊ฐ์ง ๋ชปํ๊ณ Task Queue(FIFO)์ ์์๋๋ก ๋ค์ด๊ฐ๋ค.
- Event Loop๊ฐ Call Stack์ด ๋น์ด์๋ ๊ฒ์ ๊ณ์ ์ฒดํฌํ๊ณ Call Stack์ด ๋น๋ค๋ฉด Task Queue์์ ๊ฐ์ฅ ์ค๋๋(๊ฐ์ฅ ์์ ์๋)์์ ์ Call Stack์ผ๋ก ๋ณด๋ธ๋ค.
'โญ Personal_Study > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AJAX (0) | 2022.11.05 |
---|---|
Axios (0) | 2022.11.05 |
Callback & Promise (0) | 2022.11.04 |
JavaScript์์์ This (0) | 2022.11.03 |
Event (0) | 2022.11.02 |
๋๊ธ