์๋ฐ์คํฌ๋ฆฝํธ
ํ๋ก ํธ์๋ ๋ฉด์ (Sync, Async, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ, Call Stack, TaskQueue, Event Loop)
1. Sync, Async์ ์ฐจ์ด์ (๋๊ธฐ, ๋น๋๊ธฐ์ ์ฐจ์ด์ )์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.Sync๋ ์์ ์์ฒญ์ด ์ด๋ค์ง๊ณ , ์์ฒญ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. Async๋ ํน์ ํ ์์ฒญ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์์ ์ ์ํํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธ์ค๋ ๋์ด๊ธฐ ๋๋ฌธ์ ์์ฒญ๋ ์์ ์ ํ๋์ฉ ์ํํ์ง๋ง setTimeout์ด๋ fetch๊ณผ ๊ฐ์ Web API๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค. 2. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง ์์์ ๋์ํ๋๋ฐ์, ๋ํ์ ์ผ๋ก ๊ตฌ๊ธ์ V8์์ง์ด ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ฉ๋ชจ๋ฆฌํ๊ณผ ์ฝ์คํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ์ ๋ณ์, ํจ์ ๋ฑ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ ๊ณต๊ฐ์ ๋๋ค. ์ฝ์คํ์๋ ์๋ฐ์คํฌ๋ฆฝ..
[JavaScript] ์คํ ์ปจํ ์คํธ(execution context)
๋ค์ด๊ฐ๊ธฐ ์ ์คํ ์ปจํ ์คํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ํต์ฌ ์๋ฆฌ์ด๋ค.๋ฐ๋ผ์ ์คํ์ปจํ ์คํธ๋ ์๋ ๊ฐ๋ ๋ค์ ๋์์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ค.- ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ค์ฝํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ณ์์ ์๋ณ์์ ๋ฐ์ธ๋ฉ๋ ๊ฐ์ ๊ด๋ฆฌํ๋ ๋ฐฉ์- ํธ์ด์คํ ์ด ๋ฐ์ํ๋ ์ด์ - ํด๋ก์ ์ ๋์ ๋ฐฉ์- ํ์คํ ํ์ ํจ๊ป ๋์ํ๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๋์ ๋ฐฉ์์คํ ์ปจํ ์คํธ๋?์คํ ์ปจํ ์คํธ๋ ์์ค์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ํ๊ฒฝ ์ ๋ณด๋ฅผ ๋ชจ์๋์ ๊ฐ์ฒด์ด๋ค. ์ฆ, ์คํ ์ปจํ ์คํธ๋ ๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ์ด๋ฆ์ธ ์๋ณ์๋ฅผ ๋ฑ๋กํ๊ณ ๊ด๋ฆฌํ๋ ์ค์ฝํ๋ผ๋ ํ๊ฒฝ ์ ๋ณด๋ฅผ ๊ตฌ์ฑํ๊ณ , ์ปจํ ์คํธ๋ฅผ ์ฝ ์คํ์ ์์์ฌ๋ ค ๊ฐ์ฅ ์์ ์๋ ์ปจํ ์คํธ๋ฅผ ์คํํ์ฌ ์ฝ๋์ ์คํ์์๋ฅผ ๋ณด์ฅํ๋ค.์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ๋๋ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ์ ์คํํ ๋..