JavaScript

비동기 프로그래밍

히찔 2022. 2. 11. 11:39

비동기 프로그래밍

 

동기(Synchronous)와 비동기(Asynchronous)

동기와 비동기는 주로 어플리케이션에서 자주 다뤄지는 개념이며, 다음 작업이 요청되는 시간과 관련되어 있다.

 

동기(Synchronous)

  • 현재 작업의 응답이 끝남과 동시에 다음 작업이 요청된다.
  • 함수를 호출하는 곳에서 호출되는 함수가 결과를 반환할 때까지 기다린다.
  • 작업 완료 여부를 계속해서 확인한다.

 

비동기(Asynchronous)

  • 현재 작업의 응답이 끝나지 않은 상태에서 다음 작업이 요청된다.
  • 함수를 호출하는 곳에서 결과를 기다리지 않고, 다른 함수(callback)에서 결과를 기다린다.
  • 작업 완료 여부를 확인하지 않는다.

 

블록킹(Blocking)과 논블록킹(non-blocking)

  • 블록킹 (Blocking) : 자신의 수행결과가 끝날 때까지 제어권을 갖고 있는 것
  • 논블록킹 (non-blocking) : 자신이 호출되었을 때 제어권을 자신을 호출한 쪽으로 넘기고 자신을 호출한 쪽에서 다른 일을 할 수 있도록 하는 것

 

 

→ 비슷하지만 다른 개념!

비동기적 방식 처리 방법  (설명링크)

  • Callback 함수
  • Promise
  • async & await

비동기적 방식을 처리하는 방법들을 사용하는 이유는 콜백 함수의 과정이 끝나기 전에 다음 프로세스로 진행될 수있기 때문이다.

반응형