Javascript๋ ์ฑ๊ธ ์ค๋ ๋(Single Thread)์ ๋-๋ธ๋กํน(Non-Blocking)์ด๋ผ๋ ๋ ๊ฐ์ง ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
์ผํ ๋ณด๋ฉด ์ด ๋๊ฐ์ง ํน์ฑ์ ์๋ฆฝ ๋ถ๊ฐ๋ฅํด๋ณด์ธ๋ค.
"์ด๋ป๊ฒ ๋์์ ์ฌ๋ฌ ๊ฐ์ ์ผ์ ํ ์ ์์ผ๋ฉด์, ํ๋์ ์ผ์ด ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋์์ ์ฒ๋ฆฌํ ์ ์์ง?"
๋ต์ JS ์์ง๊ณผ ๋ธ๋ผ์ฐ์ ์ ๋์ ๊ตฌ์กฐ์ ์๋ค.
JS ์์ง ์์ฒด๋ ์ฑ๊ธ ์ฐ๋ ๋๋ก ํ ๊ฐ์ง ์ผ๋ง ์ง์คํ ์ ์๋ ์น๊ตฌ๋ค.
๊ณ ๋ง๊ฒ๋ ์ด ๋จ์ํ ์น๊ตฌ๋ฅผ ์ํด ๋ธ๋ผ์ฐ์ ์์ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ Web API๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ๊ณตํ๊ณ ์๋ค.
JS ์์ง์ ๋์์ ์ฒ๋ฆฌํด์ผํ๋ ์ผ์ Web API์ ์์ฒญํด ๋๊ณ , ๋ณธ์ธ์ด ๋ ํ๋๋๋ก ํ ๋ฒ์ ํ๋์ฉ๋ง ์ผ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค. Web API๋ ๋ณธ์ธ์ด ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ Callback Queue์ ๋ฃ์ด์ค๋ค. Callback Queue์ ๋ฌด์ธ๊ฐ๊ฐ ๋์ฐฉํ๋ฉด, Event Loop์ด JS ์์ง์๊ฒ ์ฒ๋ฆฌ๊ฐ ๋๋ฌ์์ ์๋ฆฐ๋ค. JS ์์ง์ ์ ๊น ํ๋ ์ผ์ ๋ฉ์ถ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ๋ ๋ค.
ํ ๋ง๋๋ก ์์ฝํ์๋ฉด, ๋๋ ์ฑ๊ธ ์ฐ๋ ๋๋ผ ํ๋ ๋ฐ์ ๋ชป๋ณด๋๊น ์ธ์ฃผ๋ฅผ ์ค ์ ์๋ ๊ฑด ์ธ์ฃผ ์ฃผ๊ณ , ํ๋ฐฐํจ์ ๋๊ณ ๊ฐ๋ผ๊ณ ํ์. ๋ด๊ฐ ์์์ ์ธํ ๋๊น! ๊ฐ ๋๋ ๊ฒ์ด๋ค. ๋์ ์ธ์ฃผ๋ฅผ ์ค ์์ ์ ์ฃผ์ฒด๊ฐ ์์ ์ด ์๋๊ณ , ํ๋ฐฐํจ์ ๋๊ณ ๊ฐ๋ ํ์์ด๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ํ ์ค ํ ์ค ์คํ๋๋ ๊ฒ ์ฒ๋ผ ์คํ ์๊ธฐ๋ฅผ ๋ง์ถ ์ ์๋ค.
์ ์ฒ๋ผ ์คํ ์๊ธฐ๋ฅผ ๊ผญ ๋ง์ถ์ง ์๊ณ ์ฝ๋๋ฅผ ์คํํ๋ ๋ฐฉ์์ '๋น๋๊ธฐ์ '์ด๋ผ๊ณ ํ๋ค.
์ํํ ์ฝ๋ฉ ์ฌ์ : ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ
'๐ป > ์น' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Backend] AJAX์ ์ดํด (0) | 2022.07.11 |
---|---|
[JWT] JSON Web Token (0) | 2021.12.01 |
[Spring] Spring, Servlet (0) | 2021.12.01 |
[์น] Bootstrap datepicker ํ๊ธ ์ฌ์ฉ ๋ฐ ๋ ์ง ์์ธ์ฒ๋ฆฌ (0) | 2021.09.15 |
[์น] ํฐ์คํ ๋ฆฌ ์คํจ ๊ธ์ ์์ ์์ (0) | 2021.09.12 |