ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์˜ˆ์‹œ ์ฝ”๋“œ

 ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ธ๋˜๋Š”์ง€ ์ฝœ ์Šคํƒ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ, ๋ฐ์Šคํฌ ํ, ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

1.  ์ฒ˜์Œ ์ฝœ ์Šคํƒ(์‹คํ–‰์ปจํ…์ŠคํŠธ)์—๋Š” ํฌ๋กฌ์˜ ์ „์—ญ ์ปจํ…์ŠคํŠธ์ธ anoymous ํ•จ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

2. setTimeout ํ•จ์ˆ˜๋Š” ๋น„๋™๊ธฐ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์ปจํ…์ŠคํŠธ์— ์˜ฌ๋ผ๊ฐ„ ๋’ค, ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

   (์ด๋•Œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ๋Š” ์ „๋‹ฌ ๋œ ์นด์šดํŠธ ์ˆ˜๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋™์‹œ ์‹คํ–‰์ด ๋œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž์ฒด๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ํ˜•์‹์œผ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ

    ๋ฐฑ๊ทธ๋ผ์šด๋“œ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์šด์˜์ฒด์ œ ๋ฐ C++์— ์˜ํ•ด ๊ด€๋ฆฌ๊ฐ€ ๋˜๋ฏ€๋กœ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.)

 

3. ์ฝœ ์Šคํƒ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‚จ์€ anoymous๊ฐ€ pop๋˜์–ด ์ข…๋ฃŒ๊ฐ€ ๋˜๋ฉด, ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋Œ€๊ธฐ ์ค‘์ด๋˜ setTimeout ํ•จ์ˆ˜๊ฐ€ ๋ฐ์Šคํฌ ํ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ

    ๋˜๋ฉฐ ์ด๋ฒคํŠธ ๋ฃจํ”„ ์ฒ˜๋ฆฌ์— ์˜ํ•ด ์ฝœ ์Šคํƒ์— ์ ์žฌ ๋ฐ ์‹คํ–‰๋œ๋‹ค. ์ด๋•Œ run ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

 

4. run ํ•จ์ˆ˜์— ์„ ์–ธ๋˜์–ด ์žˆ๋Š” setTimeout ํ•จ์ˆ˜์˜ ์‹œ๊ฐ„ ์ธ์ž๊ฐ’์ด 0์ด๊ธด ํ•˜์ง€๋งŒ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ํ˜ธ์ถœ๋˜์ง€ ์•Š๊ณ  ๋ฐฑ๊ทธ๋ผ     ์šด๋“œ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. 

 

5. Promise ๊ฐ์ฒด๊ฐ€ ๋ฐ˜ํ™˜์— ์„ฑ๊ณต ํ•œ hi ๋ฌธ์ž์—ด์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ณ  Promise ๊ฐ์ฒด์— ์ €์žฅ๋˜๋Š”๋ฐ, ์ด๋Š” Promise ๊ฐ์ฒด๊ฐ€ ์‹คํ–‰์€ ๋ฐ”       ๋กœ ํ•˜๋˜ ๊ฒฐ๊ด๊ฐ’(then/catch์— ์˜ํ•œ ํ›„์†์ฒ˜๋ฆฌ)์€ ๋‚˜์ค‘์— ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

   ์ดํ›„ Promise๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๊ฒฐ๊ด๊ฐ’์„ then ๋ฉ”์„œ๋“œ๋Š” ์ธ์ž๋กœ ์ „๋‹ฌ ๋ฐ›์€ console.log ํ›„์† ์ฒ˜๋ฆฌ์™€ ํ•จ๊ป˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

 

6. oneMore ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜์–ด one more ๋ฌธ์ž์—ด์ด ํ˜ธ์ถœ๋˜๊ณ  ์ฝœ ์Šคํƒ์— ์ ์žฌ๋˜์–ด ์žˆ๋˜ ์‹คํ–‰์ปจํ…์ŠคํŠธ๋“ค์ด ํ•˜๋‚˜ ์”ฉ pop๋˜์–ด ์ข…๋ฃŒ๋œ๋‹ค. (์Šคํƒ      ์˜ First in-Last out ํŠน์„ฑ์œผ๋กœ ์ธํ•ด)

 

7. ์ฝœ์Šคํƒ์— ์–ด๋– ํ•œ ์‹คํ–‰์ปจํ…์ŠคํŠธ๋„ ์‹คํ–‰๋˜์ง€ ์•Š์„ ๋•Œ์•ผ ๋น„๋กœ์†Œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ๋‚จ์•„ ์žˆ๋˜ setTimeout๊ณผ then์˜ ํ›„์† ์ฒ˜๋ฆฌ๋“ค์ด ๋ฐ์Šคํฌ ํ๋กœ

   ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๋ฉฐ ์ด๋ฒคํŠธ ๋ฃจํ”„ ์ฒ˜๋ฆฌ์— ์˜ํ•ด ์‹คํ–‰์ปจํ…์ŠคํŠธ์— ์ ์žฌ ๋ฐ ์‹คํ–‰๋œ๋‹ค.

   ์ด๋•Œ setTimeout ํ•จ์ˆ˜๋ณด๋‹ค then ๋ฉ”์„œ๋“œ์— ์˜ํ•œ ํ›„์† ์ฒ˜๋ฆฌ๊ฐ€ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋” ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ์‹คํ–‰์ด ๋œ๋‹ค.

 

์‹คํ–‰ ๊ฒฐ๊ณผ

https://choi95.tistory.com/9

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ(setTimeout, Promise then, RequestAnimationFrame)

 ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ™์€ ์žฌ๊ท€ ํ˜ธ์ถœ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‘ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„ ๋‘ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค.  setTimeout()์œผ๋กœ ์žฌ๊ท€ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ css์— ์ ์šฉ ํ•œ button:hover์˜ ์ƒ‰์ƒ๊ฐ’์ด ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ๋—

choi95.tistory.com

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/01   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ