Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 2.07 KB

synvsasyn.md

File metadata and controls

25 lines (21 loc) · 2.07 KB

동기와 비동기의 차이점

동기(Synchronous)란?

image

말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속이다.
바로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 한다.
요청이 들어오면 순차적으로 작업을 수행하고, 해당 작업이 수행중이면 다음 작업은 대기하게 된다.
순서에 맞춰 진행되는 장점이 있지만,  여러 가지 요청을 동시에 처리할 수 없다.

비동기(Asynchronous)란?

image

동시에 일어나지 않는다를 의미한다. 요청과 결과가 동시에 일어나지 않을 거라는 약속이다.
요청이 들어오면 해당 요청에 의한 작업이 끝나지 않았더라도 계속 요청을 받는다. 그리고 작업이 끝났다는 이벤트가 오면 해당 요청을 처리한다.
하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식이다.
여러 개의 요청을 동시에 처리할 수 있는 장점이 있지만 동기 방식보다 속도가 떨어질 수도 있다.

예) Web API, Ajax, setTimeout 등

차이점

  • 실행 흐름 관점
    동기적 작업은 순차적으로 실행되어 작업이 완료될 때까지 기다리지만, 비동기적 작업은 작업이 완료될 때까지 기다리지 않고 다음 작업 실행
  • 작업 완료 시기
    동기적 작업은 작업이 완료될 때까지 다음 작업을 실행하지 않지만, 비동기적 작업은 작업을 시작한 후 즉시 다음 작업을 실행하며, 완료 시점에 결과 처리
  • 프로그래밍 모델
    동기적 작업은 직관적이고 간단하지만, 비동기적 작업은 비동기적인 처리를 위한 콜백 함수나 프라미스 등의 추가적인 개념 요구