Skip to content

Latest commit

ย 

History

History
46 lines (25 loc) ยท 2.18 KB

File metadata and controls

46 lines (25 loc) ยท 2.18 KB

Part 2 - 1์žฅ. ๋น„๋™๊ธฐ์„ฑ : ์ง€๊ธˆ๊ณผ ๋‚˜์ค‘

  • ์ž์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ์— ๋น„๋™๊ธฐ ์š”์†Œ๋ฅผ ์™œ, ์–ด๋–ป๊ฒŒ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.

1.1 Program Chunk

  • ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋žจ chunk ๋‹จ์œ„๋Š” ํ•จ์ˆ˜

1.2 ์ด๋ฒคํŠธ ๋ฃจํ”„

  • ํ˜ธ์ŠคํŒ… ํ™˜๊ฒฝ

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ํ˜ธ์ŠคํŒ… ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋œ๋‹ค. ๋ธŒ๋ผ์šฐ์ „, ๋…ธ๋“œjs ๋“ฑ์—์„œ ์‹คํ–‰์ด ๋œ๋‹ค. ์ด ํ˜ธ์ŠคํŒ… ํ™˜๊ฒฝ์˜ ๊ณตํ†ต์ ์ธ ํŠน์ง•์€ ์Šค๋ ˆ๋“œ ๊ฐ€ ์ด๋ฒคํŠธ ๋ฃจํ”„ ๋ผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ–๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

  • ์ด๋ฒคํŠธ ๋ฃจํ”„

    ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” ๋งค ์ˆœ๊ฐ„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ํ˜ธ์ถœํ•˜์—ฌ, ํ”„๋กœ๊ทธ๋žจ์˜ chunk๋“ค์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

    But the one common โ€œthreadโ€ (thatโ€™s a not-so-subtle asynchronous joke, for what itโ€™s worth) of all these environments is that they have a mechanism in them that handles executing multiple chunks of your program over time, at each moment invoking the JS engine, called the event loop.

  • tick

    ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ๋งค iteration ๋งˆ๋‹ค, ์ด๋ฒคํŠธ๋ฅผ ๊บผ๋‚ด์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค. ์ด iteration์„ tick์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ฒคํŠธ๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜์ด๋‹ค.

    setTimeout()์€ ํƒ€์ด๋จธ ํ•จ์ˆ˜์ผ ๋ฟ์ด๊ณ , ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ํ์— ๋„ฃ๋Š” ๊ฒƒ์€ ํ˜ธ์ŠคํŒ… ํ™˜๊ฒฝ์ด๋‹ค.

๐Ÿ’ก ์ •๋ฆฌ

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„: ํ”„๋กœ๊ทธ๋žจ์˜ chunk๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ์‹คํ–‰๊ธฐ
  • ์ด๋ฒคํŠธ ๋ฃจํ”„: ๊ทธ ์—”์ง„์„ ์‹คํ–‰์‹œํ‚ค๋Š”๊ฒŒ ์ด๋ฒคํŠธ ๋ฃจํ”„. ์ด๋ฒคํŠธ ์Šค์ผ€์ฅด๋งํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋„๋ก ํ•œ๋‹ค.
  • tick๋งˆ๋‹ค ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ด

1.3 ๋ณ‘๋ ฌ ์Šค๋ ˆ๋”ฉ

  • ์™„์ „ ์‹คํ–‰ - Run To Complete

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์ด๋ฏ€๋กœ, ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๋Š” ์›์ž์ (atomic)์ด๋‹ค. ํ•œ ํ•จ์ˆ˜์˜ ์‹คํ–‰์ด ๋๋‚œ ํ›„, ๋‹ค๋ฅธ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์™„์ „ ์‹คํ–‰(run-to-complete)์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • Race Condition

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์™„์ „ ์‹คํ–‰์ด์ง€๋งŒ, ํ•จ์ˆ˜ ์‹คํ–‰ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค(ํ•จ์ˆ˜ ์ˆœ์„œ์— ๋”ฐ๋ฅธ ๋น„๊ฒฐ์ •์„ฑ). ์ด๋ฅผ race condition์ด๋ผ๊ณ  ํ•œ๋‹ค.

    ์ฐธ๊ณ 

  • you don't know js - ๋น„๋™๊ธฐ์™€ ์„ฑ๋Šฅ (์นด์ผ ์‹ฌ์Šจ)