[๐Ÿ“] NodeJS์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ํ๋ฆ„

eugeneยท2025๋…„ 4์›” 9์ผ

dev-note

๋ชฉ๋ก ๋ณด๊ธฐ
4/4

NodeJS_EventLoop_CallStack_CallbackQueue


1. Call Stack (์ฝœ ์Šคํƒ)

์‹ค์ œ๋กœ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณต๊ฐ„

๐Ÿ“Œ ์—ญํ• :

์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰๋˜๋Š” ๊ณต๊ฐ„
ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ๋งจ ์œ„์— ์Œ“์ด๊ณ , ์‹คํ–‰์ด ๋๋‚˜๋ฉด ํŒ(pop)๋˜์–ด ์‚ฌ๋ผ์ง
ํ•ญ์ƒ ํ•œ ์ค„์”ฉ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋จ
๋น„๋™๊ธฐ ํ•จ์ˆ˜๋Š” ์—ฌ๊ธฐ์„œ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , Web APIs๋กœ ์œ„์ž„๋จ

2. Callback Queue (์ฝœ๋ฐฑ ํ)

๋น„๋™๊ธฐ ์ž‘์—…์˜ ์ฝœ๋ฐฑ์ด ๋Œ€๊ธฐํ•˜๋Š” ์ค„

๐Ÿ“Œ ์—ญํ• :

setTimeout, fetch, DB ์กฐํšŒ ๊ฐ™์€ ๋น„๋™๊ธฐ ์ž‘์—…์ด ๋๋‚˜๋ฉด โ†’ ๊ทธ ์ž‘์—…์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์—ฌ๊ธฐ ์ค„ ์„œ ์žˆ์Œ
Call Stack ์ด ๋น„์–ด์•ผ๋งŒ ์ด ํ์— ์žˆ๋Š” ์ฝœ๋ฐฑ์ด ์‹คํ–‰๋จ

3. Event Loop (์ด๋ฒคํŠธ ๋ฃจํ”„)

Call Stack๊ณผ Callback Queue ์‚ฌ์ด๋ฅผ ๊ฐ์‹œํ•˜๋ฉฐ ์—ฐ๊ฒฐํ•˜๋Š” ์กฐ์œจ์ž

๐Ÿ“Œ ์—ญํ• :

Call Stack ์ด ๋น„์—ˆ๋Š”์ง€ ๊ณ„์† ๊ฐ์‹œ
Stack์ด ๋น„์–ด ์žˆ์œผ๋ฉด โ†’ Callback Queue ์—์„œ ํ•˜๋‚˜ ๊บผ๋‚ด์„œ Stack์— ๋„ฃ์–ด์คŒ
์ด๊ฑธ ๊ณ„์† ๋ฐ˜๋ณต

profile
๋ฝ€๊ธ€๋ฝ€๊ธ€ ๊ฐœ๋ฐœ๊ณต๋ถ€

0๊ฐœ์˜ ๋Œ“๊ธ€