본문 바로가기
JavaScript

JavaScript 동기 비동기

by nacjji 2022. 11. 12.
동기(Synchronous)와 비동기(Asynchronous)

 

동기적 처리

  • 서버에 요청을 보냈을 때 응답이 돌아와야 다음 동작을 처리할 수 있다. 
  • 먼저 요청을 보낸 순서대로 작업을 실행한다. 
console.log(1)
console.log(2)
console.log(3)

>> 1
   2
   3

 

비동기적 처리

  • 서버에 요청을 보냈을 때 응답 여부에 관계 없이 다음 작업을 실행한다. 
  • 요청을 보낸 작업은 결과가 나오는 즉시 실행한다. 
  • 짜장면 배달을 예로 들어보면, 짜장면 배달을 받고 식사를 다 마칠때까지 배달부가 기다려야 한다면 다른 배달을 할 수 없기 때문에 비효율적일 것이다. 때문에 짜장면을 전달하고 손님이 식사를 하는 동안 다른 배달을 하면 효율적으로 배달을 할 수 있다. 
function asyncTimer(seconds){
    console.log("짜장면 배달됨")
    setTimeout(()=>{
        console.log("식사 완료")
        },
        seconds*1000
    ) 
    console.log("배달부 떠남")
}

asyncTimer(5)
  • asyncTimer 함수를 보면, 짜장면이 배달된 후 setTimeout()을 사용해 식사 완료 시간을 뒤로 늦추고, 식사를 하는 동안 배달부는 떠난다. 
  • asyncTimer(5) 를 실행함으로써 약 5초 뒤 식사 완료 메시지를 보낸다.
  • 즉, 비동기로 작업을 마친 후에 setTimeout()함수를 실행하도록 추후 업무를 맡겨놓는다. 
  • 작업을 마친 뒤에 '식사완료' 라고 callback 해달라고 알려준다.

 

 

'JavaScript' 카테고리의 다른 글

JavaScript 형변환  (0) 2022.11.18
JavaScript, 느슨한 타입(loosely type) 의 동적언어(dynamic)  (0) 2022.11.18
JavaScript 비동기 처리 이해하기(Callback)  (0) 2022.11.12
JavaScript, Scope  (0) 2022.11.11
JavaScript Array(배열)  (0) 2022.11.04