๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
๐“๐จ๐๐š๐ฒ ๐ˆ ๐‹๐ž๐š๐ซ๐ง

๐“๐จ๐๐š๐ฒ ๐ˆ ๐‹๐ž๐š๐ซ๐ง 2022.05.02.์›”

by DevIseo 2022. 5. 2.

Today I Learn 220502

์˜ค๋Š˜์€ ๋น„๋™๊ธฐ์™€ ๋™๊ธฐ์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ๋น„๋™๊ธฐ์™€ ๋™๊ธฐ์˜ ๊ฐœ๋…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๋™๊ธฐ :์ˆœ์ฐจ์ , ์ง๋ ฌ์  Task ์ˆ˜ํ–‰ , ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ์‘๋‹ต์„ ๋ฐ›์•„์•ผ๋งŒ ๋‹ค์Œ ๋™์ž‘์ด ์ด๋ฃจ์–ด์ง (blocking)
  • ๋น„๋™๊ธฐ :๋ณ‘๋ ฌ์  Task ์ˆ˜ํ–‰, ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค์Œ ๋™์ž‘์ด ์ด๋ฃจ์–ด์ง (non-blocking)

 

JavaScript๋Š” single threaded์—ฌ์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์˜ CPU๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด๋„ main thread๋ผ ๋ถˆ๋ฆฌ๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ์—์„œ๋งŒ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” Call Stack์ด ํ•˜๋‚˜๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด JavaScript๋Š” ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋Š” ์ด๋ฒคํŠธ๋“ค์„ ๋‹ค๋ฅธ๊ณณ (Web API)์œผ๋กœ ๋ณด๋‚ด์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๊ณ , ์ฒ˜๋ฆฌ๋œ ์ด๋ฒคํŠธ๋“ค์€ ์ฒ˜๋ฆฌ๋œ ์ˆœ์„œ๋Œ€๋กœ ๋Œ€๊ธฐ์‹ค(Task queue)์— ์ค„์„ ์„ธ์›Œ ๋†“๊ณ , Call Stack์ด ๋น„๋ฉด ๋‹ด๋‹น์ž(Event Loop)๊ฐ€ ๋Œ€๊ธฐ์ค„์—์„œ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ(์ œ์ผ ์•ž์˜) ์ด๋ฒคํŠธ๋ฅผ Call Stack์œผ๋กœ ๋ณด๋‚ธ๋‹ค.

๋Œ“๊ธ€