[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ] Underber, ๋น„๋™๊ธฐ, ๋™๊ธฐ

JiEunยท2023๋…„ 3์›” 17์ผ
0
post-thumbnail

โœ”๏ธ ์‹œ์ž‘

๊ณ ์ฐจํ•จ์ˆ˜, ์ฝœ๋ฐฑํ•จ์ˆ˜ ๊ด€๋ จ๋œ ๊ณผ์ œ๋ฅผ ํŽ˜์–ดํ™œ๋™์„ ํ†ตํ•ด ์ง„ํ–‰ํ–ˆ๋‹ค.

์ด์ „์— ๋ฐฐ์› ๋˜ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ์ง„ํ–‰ํ–ˆ๊ณ  ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ด ๊ธฐ์กด์— ์„ ์–ธ๋˜์–ด์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ž‘์—…ํ•˜๋Š”๊ฒŒ ๋งŽ์•˜๋‹ค.

๋˜ํ•œ ๋น„๋™๊ธฐ, ๋™๊ธฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


๐Ÿ“ ์•Œ๊ฒŒ ๋œ ๋ถ€๋ถ„

apply(this, arguments)

์ฃผ์–ด์ง„ this ๊ฐ’๊ณผ ๋ฐฐ์—ด (๋˜๋Š” ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด) ๋กœ ์ œ๊ณต๋˜๋Š” arguments ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋กœํ‚น(Blocking)

ํ•˜๋‚˜์˜ ์ž‘์—…์ด ๋๋‚  ๋•Œ ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์ž‘์—…์„ "๋ง‰๋Š” ๊ฒƒ"

๋™๊ธฐ์ (Synchronous)

์‹œ์ž‘ ์‹œ์ ๊ณผ ์™„๋ฃŒ ์‹œ์ ์ด ๊ฐ™์€ ์ƒํ™ฉ

โœ”๏ธ ๋™๊ธฐ(Synchronous)

  • ํŠน์ • ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ์™„๋ฃŒ ๋  ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ๋‚œ ํ›„ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ (์ˆœ์ฐจ์  ์‹คํ–‰)

โœ”๏ธ ๋น„๋™๊ธฐ(Asynchronous)

  • ํŠน์ • ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ์™„๋ฃŒ ๋  ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋“ค์„ ์ˆ˜ํ–‰(๋™์‹œ์— ์‹คํ–‰)

๋น„๋™๊ธฐ์ ์œผ๋กœ ์ž‘๋™๋˜์–ด์•ผ ํšจ์œจ์ ์ด๋‹ค.

  • ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰, ๋กœ๋”ฉ์ฐฝ ๋“ฑ ์ž‘์—…
  • ์ธํ„ฐ๋„ท์—์„œ ์„œ๋ฒ„๋กœ ์š”์ฒญ ๋ณด๊ฐœ๊ณ , ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ž‘์—…
  • ํฐ ์šฉ์–‘์˜ ํŒŒ์ผ์„ ๋กœ๋”ฉํ•˜๋Š” ์ž‘์—…

Javascript๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์–ธ์–ด๋กœ ๋™๊ธฐ์ ์„ ์ž‘๋™ํ•œ๋‹ค.

๊ทธ๋ž˜๋„ Javascript๊ฐ€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ด์œ 

์ž‘๋™ํ•˜๋Š” ํ™˜๊ฒฝ(๋Ÿฐํƒ€์ž„)์—์„œ ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๋ฅผ ๋„์™€์ฃผ๊ธฐ ๋–„๋ฌธ์ด๋‹ค.

โœ”๏ธํƒ€์ด๋จธ API ์ข…๋ฅ˜

  • SeiTimeout(callback, ms) : ์ผ์ •์‹œ๊ฐ„ ํ›„ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  • caerTimeout(timerId) : SeiTimeout ํƒ€์ด๋จธ ์ข…๋ฃŒ
const timer = setTimeout(functon(){
	console.log('10์ดˆ ํ›„ ์‹คํ–‰');
}, 10000) // 10์ดˆํ›„ ์‹คํ–‰

clearTimeout(timer); // setTimeout ์ข…๋ฃŒ
  • setInterval(callback, ms) : ์ผ์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰
  • clearInterval(timerId) : SeiTimeout ํƒ€์ด๋จธ ์ข…๋ฃŒ
const timer = setInterval(function(){
	console.log('1์ดˆ ๋งˆ๋‹ค ์‹คํ–‰');
}, 1000) // 1์ดˆ ๋งˆ๋‹ค ์‹คํ–‰

clearInterval(timer); //setInterval ์ข…๋ฃŒ

โœ๏ธ ๋งˆ์น˜๋ฉฐ

๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ ์ฝœ๋ฐฑํ•จ์ˆ˜ ํ™œ์šฉํ•˜๋Š” ์—ฐ์Šต์„ ํ•œ ๊ฑฐ ๊ฐ™๋‹ค.
์ฝœ๋ฐฑํ•จ์ˆ˜๋Š” ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์Šต๊ด€์„ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค.

๋™๊ธฐ, ๋น„๋™๊ธฐ์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์€ ์žˆ์—ˆ์ง€๋งŒ ์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด
๋‘ ์šฉ์–ด์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

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