์๋ฐ์คํฌ๋ฆฝํธ๋ ๋๊ธฐ์ ์ฒ๋ฆฌ (Synchronous)
- ํ๋ฒ์ ์ฝ๋ ํ์ค์ฉ ์ฐจ๋ก๋ก ์คํ
๋น๋๊ธฐ์์ฒ๋ฆฌ(Asynchronous)
์ค๋๊ฑธ๋ฆฌ๋ ์์ ์ด ์์ผ๋ฉด ์ ๊ปด์ฃผ๊ณ ๋ค๋ฅธ๊ฑฐ๋ถํฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
(์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๋ธ๋ผ์ฐ์ ๋๋ถ์ ๊ฐ๋ฅํ ๊ฒ = ์น๋ธ๋ผ์ฐ์ ์ ํน์์ฑ)
ํ์ด์ฌ์์๋
print(1)
time.sleep(1) // 1์ด ์ฌ์ด๋ผ => 1์ด ๋ฉ์ท๋ค๊ฐ 2์คํ๋จ(๋ธ๋กํน)
print(2)
์๋ฐ์คํฌ๋ฆฝํธ์์๋
console.log(1);
setTimeout(()=> {console.log(2)},1000); //๋ฉ์ถ์ง ์๊ณ 3์ด ์คํ๋จ
console.log(3);
//setTimeout(()=> {console.log(2)},1000); ๋น๋๊ธฐ์์ผ๋ก ์ฒ๋ฆฌ ๋์์ฃผ๋ ํจ์
setTimeout, eventListener, ajax ์ฝ๋๊ฐ์ด ์คํ๋๋๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ ์ฝ๋๋ค์
Web API๋ผ๋ ๊ณต๊ฐ(์คํ ๋๊ธฐ์ค)์ผ๋ก ๋ณด๋ด์ ํด๊ฒฐ์ด ๋๊ธธ(์๊ฐ์ด ์ง๋๊ธธ) ๊ธฐ๋ค๋ฆผ.
Web API ๋๋ถ์ ์ค๋๊ฑธ๋ฆฌ๋ ์์
์ด ์์ผ๋ฉด ์ ๊ปด๋๊ณ (๋ธ๋กํน์ด๋ผ๋ ๋ฉ์ถ๋ ๊ณผ์ ์์ด) ๋ค๋ฅธ๊ฑฐ๋ถํฐ ์ฒ๋ฆฌํ๋ ๋น๋๊ธฐ์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅ.
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ค๋๊ฑธ๋ฆฌ๋ ์ฐ์ฐ์ ๋ง๋๋ฉด ๋ฉ์ถค ( = ๋๊ธฐ์ ์ฒ๋ฆฌ, synchronous )
Web API์ ์ฐ๊ด๋ ํน์ํ ํจ์๋ค์ ์ฐ๋ฉด ์์
์ด ์ค๋๊ฑธ๋ฆด ๋ ์ ์ง ์์ด ๋ค๋ฅธ๊ฑฐ๋ถํฐ ์คํ์ด ๊ฐ๋ฅ( = ๋น๋๊ธฐ์ ์ฒ๋ฆฌ, asynchronous )
ํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ณด๋ฅํ๋ค๊ฐ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ค๋ฉด? = ์ฝ๋ฐฑํจ์๋ฅผ ์ฌ์ฉํจ
console.log(1);
setTimeout(()=> {console.log(2)},1000); //๋ฉ์ถ์ง ์๊ณ 3์ด ์คํ๋จ
//()=> {console.log(2)} ์ฝ๋ฐฑํจ์์
์ฝ๋ฐฑํจ์๋?
ํจ์์์ ํจ์๊ฐ ๋ค์ด๊ฐ ๊ฒ.
์์ฐจ์ ์ผ๋ก ์คํํ๊ณ ์ถ์ ๋, ์ผ์ชฝ์ ์๋๊ฑฐ ์คํํ๊ณ ๋์ ์คํํด์ค๋ผ๋ ๋ป์ผ๋ก ์
์ฝ๋ฐฑํจ์ ์์ฒด๊ฐ ๋๊ธฐ/๋น๋๊ธฐ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๊ฑด ์๋๊ณ , ํจ์ ๋์์ธ ํจํด์ผ ๋ฟ