๐Ÿ’›์‹ฌํ™” JavaScript(3)-๋งค์šด๋ง›๐Ÿ’›

BingJuยท2023๋…„ 11์›” 23์ผ
0

HTML/CSS/JS

๋ชฉ๋ก ๋ณด๊ธฐ
24/25

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์š”์†Œ ๋ฐ ํ”„๋กœํผํ‹ฐ๋“ค์„ ๋ถ„ํ•ด ํ•˜์—ฌ,
๊ทธ ๊ฐ’๋“ค์„ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œํ˜„์‹

๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น



  • temp ๋ณ€์ˆ˜์—†์ด๋„ ๊ทธ๋ƒฅ ๋‘๊ฐœ์˜ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น


Spread

์  ์„ธ๊ฐœ๋ฅผ ์จ์„œ ํŠน์ • ๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด์ด ๊ฐ€์ง€๋Š” ๋ฐ˜๋ณต์ ์ธ ํ”„๋กœํผํ‹ฐ๋ฅผ ํผ๋œจ๋ ค ์ค€๋‹ค.

Rest

๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜
๋ฌถ์–ด์ฃผ๋Š” ๋ฌธ๋ฒ•์ž„.

rest๋Š” ๋งจ ๋งˆ์ง€๋ง‰์— ๋„ฃ์–ด์•ผ ํ•จ. (์ˆœ์„œ์— ์˜ˆ๋ฏผ)

๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ

๋™๊ธฐ

ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ์€ ๋‹ค๋ฅธ ์ž‘์—…์„ ๋™์‹œ์— ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹
์•ž์˜ ์ž‘์—…์ด ์ข…๋ฃŒ๋œ ์ดํ›„ ๋‹ค์Œ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆœ์ฐจ์ ์ธ ๋ฐฉ์‹

๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•œ๊บผ๋ฒˆ์— ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•  ์ˆ˜ ์ด์ง€ ์•Š์„๊นŒ? -> ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๋ฐฉ์‹
but ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” single thread ๋ฐฉ์‹๋งŒ ๊ฐ€๋Šฅ
๋”ฐ๋ผ์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž‘์—…์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ
-> ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.


-> ์ด๋Ÿฐ์‹์œผ๋กœ D->B->A-.>C์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

  1. setTimeout()์ด ์‹คํ–‰๋ผ์„œ 3์ดˆ๋งŒ ๊ธฐ๋‹ค๋ฆฌ์„ธ์š”๊ฐ€ ์‹คํ–‰๋จ
  2. callback()ํ•จ์ˆ˜ ํ˜ธ์ถœ
  3. callback()์€ work ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋œ ์‹ค์ œ ํ•จ์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, ์—ฌ๊ธฐ์„œ๋Š” ()=> {console.log("์ข…๋ฃŒ")}์ž„

Promise ๊ฐ์ฒด

๋น„๋™๊ธฐ์ž‘์—…์„ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์žฅ ๊ฐ์ฒด
promise ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ์—๋Š” ์ธ์ˆ˜๋กœ excecutor๋ผ๋Š” ์‹คํ–‰ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

  • resolve์™€ reject๋ผ๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜: executor๋Š” ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด resolve๋ฅผ, ์‹คํŒจํ•œ๋‹ค๋ฉด reject๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
    ํ•ญ์ƒ ์„ฑ๊ณตํ• ์ˆ˜๋„ ์‹คํŒจํ• ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ˜๋“œ์‹œ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

new Promise(executor)
state: pending(๋Œ€๊ธฐ)
result: undefined
-> resolve (value) - > state:fulfilled result: value
-> reject (error) - > state: rejected result : error

์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚œ promise ๊ฐ์ฒด๋Š” ๋”์ด์ƒ ๋ณ€๊ฒฝ์ด ์•ˆ๋œ๋‹ค.


์ž‘์—…์ด ์„ฑ๊ณตํ–ˆ์„ ๋•Œ๋Š” then, ์‹คํŒจํ–ˆ์„ ๋•Œ๋Š” catch ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

APIํ˜ธ์ถœ

ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํ†ต์‹ 
ํด๋ผ์ด์–ธํŠธ: ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ
์„œ๋ฒ„: ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ํ›„ ์ฐพ๊ณ  ๊ฐ€์ ธ์˜ค๊ธฐ
๊ทธ๋ฆฌ๊ณ , ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ

API: ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€์˜ ํ†ต์‹ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค
๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ „๋‹ฌ๋ฐ›๋Š” ๋ฐฉ๋ฒ•!

JSON์ด๋ž€

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ํ‘œ๊ธฐ๋ฒ•
๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉ๋จ
url์„ ํ†ตํ•ด ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

profile
Halo!

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