D+23
- ๋น๋๊ธฐ ํธ์ถ๊ณผ ํ์ด๋จธ API -
(feat. ๋ค์ฏ ๋ฒ์งธ ํ์ด ํ๋ก๊ทธ๋๋ฐ)
๋น๋๊ธฐ ํธ์ถ
๋๊ธฐ ํธ์ถ๊ณผ ๋น๋๊ธฐ ํธ์ถ์ ํน์ง
๋๊ธฐ์ ๋น๋๊ธฐ๋ ์ ํ์ ๋ฌธ์๋ฅผ ์๋ฅผ ๋ค์ด ์ค๋ช ์ด ๊ฐ๋ฅํ๋ค.
์ ํ (๋๊ธฐ ํธ์ถ) | ๋ฌธ์ (๋น๋๊ธฐ ํธ์ถ) |
ํ๋ ์ผ์ ๋ฉ์ถ๊ณ ๋ฐ์์ผ ํ๋ค (blocking) | ํ์ธ ํ, ๋์ค์ ๋ต์ฅ์ด ๊ฐ๋ฅํ๋ค (non-blocking) |
์์ ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์์ ์ผ์ด๋๋ค (synchronous) | ์์ ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์์ ์ผ์ด๋์ง ์๋๋ค (asynchronus) |
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ฅผ ๋ค์ด ์ปคํผ์ฃผ๋ฌธ์ ๋๊ธฐ์ ๋น๋๊ธฐ ๋ฐฉ๋ฒ์ผ๋ก ์ฃผ๋ฌธ์ ๋ฐ์์ ๊ฒฝ์ฐ
๋น๋๊ธฐ ๋ฐฉ์์ด ํจ์ฌ ํจ์จ์ ์ด๋ผ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Q > ๋๊ธฐ : ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์์ ์ผ์ด๋๋ค.
1. ์๋1์ด ์๋ฉ๋ฆฌ์นด๋ ธ๋ฅผ ์ฃผ๋ฌธํ๋ค.
2. ์ ์๋ฅผ ๋ฐ์ ์ง์์ด ์๋ฉ๋ฆฌ์นด๋ ธ๋ฅผ ๋ด๋ฆฐ๋ค.
3. ์ง์์ด ์๋1์๊ฒ ์๋ฉ๋ฆฌ์นด๋ ธ๋ฅผ ์ ๋ฌํ๋ค.
4. ์๋ 2๊ฐ ์นดํ๋ผ๋ผ๋ฅผ ์ฃผ๋ฌธํ๋ค.
5. ์ ์๋ฅผ ๋ฐ์ ์ง์์ด ์นดํ๋ผ๋ผ๋ฅผ ๋ง๋ ๋ค.
6. ์ง์์ด ์๋ 2์๊ฒ ์นดํ๋ผ๋ผ๋ฅผ ์ ๋ฌํ๋ค.
๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ปคํผ๋ฅผ ์ฃผ๋ฌธ๋ฐ์์ ๊ฒฝ์ฐ ์ฐจ๋ก์ฐจ๋ก ๊ณผ์ ์ ํด๊ฒฐํด๋๊ฐ๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด์ง ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋๋ค.
Q > ๋น๋๊ธฐ : ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์์ ์ผ์ด๋์ง ์๋๋ค.
1. ์๋ 1์ด ์๋ฉ๋ฆฌ์นด๋ ธ๋ฅผ ์ฃผ๋ฌธํ๋ค.
1-1. ์ ์๋ฅผ ๋ฐ์ ์ง์์ด ์๋ฉ๋ฆฌ์นด๋ ธ๋ฅผ ๋ด๋ฆฐ๋ค.
1-2. ์๋ฉ๋ฆฌ์นด๋ ธ๊ฐ ์์ฑ๋๋ฉด ์ง์์ด ์๋ 1์ ๋ถ๋ฅธ๋ค.
1-3. ์๋ฉ๋ฆฌ์นด๋ ธ๋ฅผ ์๋ 1์๊ฒ ์ ๋ฌํ๋ค.
2. ์๋ 2๊ฐ ์นดํ๋ผ๋ผ๋ฅผ ์ฃผ๋ฌธํ๋ค.
2-1. ์ ์๋ฅผ ๋ฐ์ ์ง์์ด ์นดํ๋ผ๋ผ๋ฅผ ๋ง๋ ๋ค.
2-2. ์นดํ๋ผ๋ผ๊ฐ ์์ฑ๋๋ฉด ์ง์์ด ์๋2๋ฅผ ๋ถ๋ฅธ๋ค.
2-3. ์นดํ๋ผ๋ผ๋ฅผ ์๋ 2์๊ฒ ์ ๋ฌํ๋ค.
๋ฐ๋ฉด์ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ปคํผ๋ฅผ ์ฃผ๋ฌธ๋ฐ์์ ๊ฒฝ์ฐ์๋ ์ผ๋จ ์ฃผ๋ฌธ์ ๋ฐ๊ณ ๋ ๋ค์ ์ปคํผ๋ฅผ ์ ์ํด ํจ์ฌ ํจ์จ์ ์ธ ํด๊ฒฐ๊ณผ์ ์ ๋ณด์ฌ์ค๋ค.
ํ์ด๋จธ API
setTimeout (callback, millisecond)
์ผ์ ์๊ฐ ํ์ ํจ์๋ฅผ ์คํํ๋ค.
setTimeout(function() {
console.log('1์ด ํ ์คํ');
}, 1000);
setInterval (callback, millisecond)
์ผ์ ์๊ฐ์ ๊ฐ๊ฒฉ์ ๊ฐ์ง๊ณ ํจ์๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ๋ค.
setInterval(function() {
console.log('1์ด๋ง๋ค ์คํ');
}, 1000);
clearInterval (timerId)
๋ฐ๋ณต ์คํ์ค์ธ ํ์ด๋จธ๋ฅผ ์ข ๋ฃํ๋ค.
var timer = setInterval(function() {
console.log('1์ด๋ง๋ค ์คํ');
}, 1000);
clearInterval(timer); // ๋์ด์ ๋ฐ๋ณตํ์ง ์์
๋ฒ์จ ๋ค์ฏ ๋ฒ์งธ ํ์ดํ๋ก๊ทธ๋๋ฐ์ด ์๋ฃ๋์๋ค.
์ฌ์ค ์ด๋ฒ ํ์ดํ๋ก๊ทธ๋๋ฐ์ ๋ด์ผ์ด๋ฉด ์์๋ ๊ธด ์ฐํด์ ์ค๋ ๋ฒ๋ฆฌ๋ ๋ฐ๋์
ํ์๋ณด๋ค ์ง์คํ๋ ์๊ฐ์ด ๋ถ์กฑํ์๋ ํฐ๋ผ ์์ฌ์์ด ์กฐ๊ธ ๋ค์๋ ์๊ฐ์ธ ๊ฒ ๊ฐ๋ค.
๋ํ ์ด๋ฒ ํํธ๋ ์ ๋ฒ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ด๊ฒ๋ ๋๋ฌด๋ ์ด๋ ค์ ๊ธฐ ๋๋ฌธ์
์ข์ ์๊ฐ + ๊ฐ๋ ์ดํด์๊ฐ ์ผ๋ก ์ธํด ์๊ฐ์ด ๋ง์ด ์์ ๋ ๊ฒ ๊ฐ๋ค.
ํ์ด๋์ด ์์ฑํด์ฃผ์ ๋ฆฌ๋ทฐ์์๋ ์ ์ ์๋ฏ์ด
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ์๋ง ๋๋ฌด ๊ธ๊ธํด์ ์ด๊ฒ์ ๊ฒ ์๋ํ์ง ๋ชปํ๊ณ
๋จ์ํ๊ฒ ํ์ด๋ด๋ ํน๋ณํ ์ฑ๊ณผ๋ฅผ ๋ด์ง ๋ชปํ... ์์ฌ์์ด ๋๋ฌด๋ ๋ ๋ค ใ ใ
์ถ์์ฐํด๋ ์คํธ๋ ์ค ์ซํ๊ณ ๋ค์ ์๋์ง๋ฅผ ๋ณด์ถฉํ๋ ์๊ฐ์ ๊ฐ์ ธ์ผ๊ฒ ๋ค.
(์ ๋ฌผ๋ก ๊ณต๋ถ๋ ๊ผฌ๋ฐ๊ผฌ๋ฐ ํ ๊ฒ์ด๋ค! ๋ฏธ๋์ ๋์ผ... ์ ๋ฐ ๊ณต๋ถํด๋ผ ๐๐ป)
'์๋ > Code-States' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+28] ๋ท์งธ ์ฃผ ํ๊ธฐ (0) | 2020.10.05 |
---|---|
[D+24 - 27] ์ถ์์ฐํด...ใ (0) | 2020.09.30 |
[D+22] Java Script ์ฌํ๊ฐ๋ 'this' (0) | 2020.09.28 |
[D+21] ์ ์งธ ์ฃผ ํ๊ธฐ (0) | 2020.09.27 |
[D+20] ๊ณ ์ฐจํจ์ ์ดํดํ๊ธฐ (with. ํ์ด) (0) | 2020.09.26 |
๋๊ธ