Synchronous(동기적) : 요청과 결과가 동시에 일어난다는 약속, 즉 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야함
→ 순서가 지켜짐 : 요청한 순서에 따라 결과가 순서대로 나옴
→ 요청에 대한 결과(리턴, 작업완료여부)를 요청을 호출한 쪽이 계속 신경써야함
Asynchronous(비동기적) : 요청과 결과가 동시에 일어나지 않고 다른 시간대에 존재, 요청 내용에 대해 지금 바로 결과를 받지 않아도 됨
→ 요청한 순서가 지켜지지 않음 : A, B, C 순서로 요청을 했으나 결과는 C, A, B로 올 수 있음
→ 요청에 대한 결과를 호출한 쪽이 신경쓰지 않아도 됨(정확히는 신경쓰기 힘듬)
요청을 별도의 스레드로 빼서 실행(병렬실행)하고 작업이 완료되면, 요청들의 결과 반환이 제각각임
→ 요청을 호출한 쪽이 요청의 상태를 신경쓰기 힘듬
→ 요청이 호출한 쪽에 작업이 완료됨을 알려줌. 보통 콜백함수를 사용해 알림
<aside> 👉 차이점 : 요청한 순서가 지켜지느냐 호출되는 함수의 작업 완료 여부를 누가 신경쓰느냐
</aside>
동기, 비동기
질문