๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Front-end/JS

22.02.17 ๋ฉด์ ‘ Q & A

by ciocio 2022. 2. 18.

๐Ÿ“Œ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™๊ธฐ์  ์–ธ์–ด์ธ๊ฐ€ ๋น„๋™๊ธฐ์  ์–ธ์–ด์ธ๊ฐ€ ?

๐Ÿ“Œ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ "๋™๊ธฐ"์™€ "๋น„๋™๊ธฐ"์— ๋Œ€ํ•ด ์•„๋Š”๋Œ€๋กœ ๋งํ•ด๋ณด๊ธฐ

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™๊ธฐ์  ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์—”์ง„์ด ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ฝ”๋“œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ฝ์„ ์ˆ˜๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.
๋™๊ธฐ์ ์ธ ์–ธ์–ด์˜ ๋ฌธ์ œ์ ์€, ํ•ด๋‹น ํƒœ์Šคํฌ๋ฅผ ๋๋‚ด๊ธฐ ์ „๊นŒ์ง€๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
์ผ๋ก€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ž‘์—…๊ณผ UI ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง ์ž‘์—…์ด ์ฐจ๋ก€๋กœ ์ง„ํ–‰๋œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ,
๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ „๊นŒ์ง€ ํ™”๋ฉด์ด ํ•˜์–—๊ฒŒ ๋œจ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋จผ์ € ๋ Œ๋”๋งํ•˜๋”๋ผ๋„ ์ปดํฌ๋„ŒํŠธ์— ํ• ๋‹น๋œ ์ด๋ฒคํŠธ๊ฐ€ ๋™์ž‘๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์— ๋‚ด์žฅ๋œ ๋น„๋™๊ธฐ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
fetch( ) ๋‚˜ setTimeout( ) ๋“ฑ์ด ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
๋น„๋™๊ธฐ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š”, ๋™๊ธฐ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ฝ๋‹ค ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด, ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์œผ๋กœ ๋„˜๊ธด ํ›„
๋‹ค์‹œ ๋™๊ธฐ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๊ฐ‘๋‹ˆ๋‹ค. (์ œ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ๋Š” ์—ฌ๊ธฐ๊นŒ์ง€์ž…๋‹ˆ๋‹ค.)

 

-> ์•„๋ฌด๊ฒƒ๋„ ๋ณด์ง€ ์•Š๊ณ  ํ˜ผ์ž ์Š์œผ๋ฉด์„œ ์จ๋ดค๋‹ค. ์ณ๋‚ผ ๊ฑด ์ณ๋‚ด๊ณ  ๋ฌธ์žฅ ๋‹ค๋“ฌ๊ธฐ.

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™๊ธฐ์ ์ธ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. 
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋‹จ ํ•˜๋‚˜์˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์Šคํƒ์„ ๊ฐ–๊ณ , ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ํƒœ์Šคํฌ๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ํƒœ์Šคํฌ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ์‹์„ "๋™๊ธฐ ์ฒ˜๋ฆฌ"๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋Š”, ์„ ํ–‰๋œ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ดํ›„ ํƒœ์Šคํฌ๋“ค์ด ๋ธ”๋กœํ‚น๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ๋‚˜์˜จ ๊ฐœ๋…์ด "๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ"์ž…๋‹ˆ๋‹ค.
ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—ฌ๋„ ๋‹ค์Œ ํƒœ์Šคํฌ๋ฅผ ๊ณง๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ "๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ"๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

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

์‹คํ–‰์ปจํ…์ŠคํŠธ ์Šคํƒ์—์„œ ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด,
๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋œ ํƒœ์Šคํฌ ํ์— ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
๋ธŒ๋ผ์šฐ์ €์˜ ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” ์‹คํ–‰์ปจํ…์ŠคํŠธ ์Šคํƒ์ด ๋น„์›Œ์ง์„ ๊ฐ์ง€ํ•ด ํƒœ์Šคํฌ ํ์— ์ €์žฅ๋œ ํ•จ์ˆ˜๋“ค์„ ์ฐจ๋ก€๋กœ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™๊ธฐ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ๋ธ”๋กœํ‚น์„ ๋ง‰์œผ๋ฉด์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

 

-> ์™ธ์šฐ์ง„ ๋ง๊ณ  ํ๋ฆ„๋งŒ ๊ฐ€์ ธ๊ฐ€๊ธฐ.

 

๐Ÿ“  ๊ณผ๊ฑฐ ํ•™์Šต ๋‚ด์šฉ ๋ณต์Šต

 

2021.09.06 - [Front-end/JS] - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ Asynchronous Programming

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ Asynchronous Programming

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€ ์ „์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ๋™์ž‘ ์›๋ฆฌ์ธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ๊ฐœ๋…๋ถ€ํ„ฐ ์žก๊ณ  ๋“ค์–ด๊ฐ€๋ฉด ์ข‹๊ฒ ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ Execution Context ๋œฏ์–ด ๋ณด๊ธฐ ๐Ÿ“Œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ๊ณต๋ถ€ํ•ด์•ผ

code-designer.tistory.com

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€