νλ‘κ·Έλ¨μ μμ±ν μμλλ‘ ν μ€μ© μ€ν
λ°λΌμ ν΄λΌμ΄μΈνΈλ μλ²μ μμ²μ λ°μκ³Ό λμμ μΌμ μν
blocking λ°μ
: μμ²μ λν κ²°κ³Όκ° λμμ μΌμ΄λλ€.
ν¨μκ° μ€ν μ€μΈ λμ λ€λ₯Έ νλ‘κ·Έλ¨ λ° μμ μ μνν μ μλ€.
-> λκΈ°μ ν¨μμ λ¬Έμ μ μ λμμΌλ‘ λΉλκΈ° νΈμΆ
μ΄ μ¬μ©λλ€.
ν΄λΌμ΄μΈνΈλ μλ²μ μμ²μ λ μνλ‘ μΌμ κ³μ μ§ν
μλ²μ μλ΅μ λ°μΌλ©΄ μλ΅μ λν μΌμ μν
blocking
λ°μνμ§ μμ : μμ²μ λν κ²°κ³Όκ° λμμ μΌμ΄λμ§ μλλ€.
μ΄μ μνμ΄ λ€μ μνμ blocking
νμ§ μμΌλ―λ‘,
μΌμ λμ μν
μ΄ κ°λ₯ν΄μ Έ λμΌν μΌμ λκΈ°λ‘ μ²λ¦¬νμ λλ³΄λ€ μμ
μκ°μ΄ 짧λ€.
ν΄λ¦μ μ΄λ²€νΈ λ°μ, νμ΄λ¨Έ μ€ν, μλ²μ μμ²μ΄ μ€λ©΄ μλ΅ λ±
λͺ¨λ μμμ μν₯μ μ£Όλ μ¬λ‘μ ν΄λΉνλ€.
- DOM Elementμ μ΄λ²€νΈ νΈλ€λ¬
- λ§μ°μ€, ν€λ³΄λ μ λ ₯
- νμ΄μ§ λ‘λ©
- νμ΄λ¨Έ
- νμ΄λ¨Έ API
- μ λλ©μ΄μ API
- μλ²μ μμ μμ² λ° μλ΅
- fetch API
- AJAX (XHR)
π‘ Node.jsλ λΉλκΈ°μ μΌλ‘ μλνλ λ°νμμ ν΄λΉνλ€.
μ΄λ νΉν μΉμμ μ μ©νλ°,
- λ°±κ·ΈλΌμ΄λ μ€ν, λ‘λ© μ°½ λ±μ μμ
- μΈν°λ·μμ μλ²λ‘ μμ²μ 보λ΄κ³ , μλ΅μ κΈ°λ€λ¦¬λ μμ
- ν° μ©λμ νμΌμ λ‘λ©νλ μμ
κ°μ μν©μμ νΉνλ μ μ©νλ€.
λΉλκΈ° ν¨μ μ λ¬ ν¨ν΄μλ λ κ°μ§ λ°©μμ΄ μλ€.
callback ν¨ν΄
κ³Ό μ΄λ²€νΈ λ±λ‘ ν¨ν΄
1. callback ν¨ν΄
ν¨μμ parameterλ‘ μ½λ°± ν¨μλ₯Ό λ겨μ€λ€λ©΄, λΉλκΈ° taskλ₯Ό μ€ννλ ν¨μμ μμλ₯Ό μ§μΌλκ° μ μλ€.
const printString = (string,callback) => {
setTimeout(
() => {
console.log(string)
callback()
},
Math.floor(Math.random() * 100)+1
)
}
const printAll = () => {
printString("A", () => {
printString("B", () => {
printString("C", () => {} )
})
})
}
printAll()
ν¨μ μ μ₯μμ μ½λ°± ν¨μλ₯Ό νμμ λ°λΌ μ¦μ μ€νν μ μκ±°λ, λμ€μ μ€νν μλ μλ€.
2. μ΄λ²€νΈ λ±λ‘ ν¨ν΄
[ Promise μ΄μ΄μ ]
https://velog.io/@bommy5799/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-Promise