2022년 10월 25일조회 3161분 읽기
이론JS
동기와 비동기
🤔 동기는 뭐고 비동기는 뭘까
동기
한 작업이 실행되는 동안 다른 작업은 멈추고 자신의 차례를 기다린다. 이름에서 보면 동시에 작업하는데 왜 작업을 멈추고 기다리는게 동기인지 했지만 동작과 결과가 동시에 나와야한다는 약속의 의미로 사용한다. 따라서 시간이 얼마나 걸리든 요청에 대한 결과를 내놔야 다음으로 넘어간다.
장점
- 설계가 매우 간단하고 직관적임
- 유지보수 쉬움
단점
- 결과가 나올때까지 대기해야함
text
console.log("a")
console.log("b")
console.log("c")
출력
/*
a
b
c
*/
비동기
어떤 요청을 보내면 그 요청이 끝날때 까지 기다리지 않고 응답과 관계없이 바로 다음 동작이 실행되는 방식 동작에 대한 결과가 동시에 나오지 않아도 괜찮다.
장점
- 결과가 주어지기 전에 다른 작업을 할 수 있어 자원을 효율적으로 사용가능
단점
- 동기보다 복잡
- 동기보다 많은 비용 발생
javascript
const callback = ()=>{
console.log("a");
}
setTimeout(callback,3000);
console.log("b")
console.log("c")
출력
/*
b
c
..3초 후
a
*/