JavaScript
비동기 프로그래밍
히찔
2022. 2. 11. 11:39
비동기 프로그래밍
동기(Synchronous)와 비동기(Asynchronous)
동기와 비동기는 주로 어플리케이션에서 자주 다뤄지는 개념이며, 다음 작업이 요청되는 시간과 관련되어 있다.
동기(Synchronous)
- 현재 작업의 응답이 끝남과 동시에 다음 작업이 요청된다.
- 함수를 호출하는 곳에서 호출되는 함수가 결과를 반환할 때까지 기다린다.
- 작업 완료 여부를 계속해서 확인한다.
비동기(Asynchronous)
- 현재 작업의 응답이 끝나지 않은 상태에서 다음 작업이 요청된다.
- 함수를 호출하는 곳에서 결과를 기다리지 않고, 다른 함수(callback)에서 결과를 기다린다.
- 작업 완료 여부를 확인하지 않는다.
블록킹(Blocking)과 논블록킹(non-blocking)
- 블록킹 (Blocking) : 자신의 수행결과가 끝날 때까지 제어권을 갖고 있는 것
- 논블록킹 (non-blocking) : 자신이 호출되었을 때 제어권을 자신을 호출한 쪽으로 넘기고 자신을 호출한 쪽에서 다른 일을 할 수 있도록 하는 것
→ 비슷하지만 다른 개념!
비동기적 방식 처리 방법 (설명링크)
- Callback 함수
- Promise
- async & await
비동기적 방식을 처리하는 방법들을 사용하는 이유는 콜백 함수의 과정이 끝나기 전에 다음 프로세스로 진행될 수있기 때문이다.
반응형