Synchronous(동기) and Asynchronous(비동기)
Synchronous(동기):
- 데이터 요청과 받는 것이 동시에 일어난다.
- 설계가 직관적이고 간단하다 / 하지만 결과가 주어질 때까지 아무 것도 못하고 대기해야 된다.
Asynchronous(비동기):
- 데이터 요청과 받는 것이 동시에 일어나지 않는다.
- 설계가 복잡하다/ 하지만 결과가 주어지는 동안에 다른 작업을 해도 되서 효율적이다.
간단 설명:
- 간단하게 말해서 컴퓨터가 명령을 수행하는데 먼저 내린 명령을 완수할 때까지 기다렸다가 완수가 되면 그 다음 명령을 수행하는지 아니면 먼저 내린 명령을 수행하는 동안 다른 명령을 수행 하는지에 대한 이야기 인 것 같다. 간혹 window나 macOS를 사용하다 보면 마우스에 로딩 표시가 뜨고 그 로딩 표시가 뜨는 동안은 다른 작업을 할 수 없는데 이런 경우가 Synchronous(동기) 식으로 데이터를 가져오는 것이고 로딩 되는 동안 다른 작업을 하는 것을 Asynchronous(비동기) 방식으로 데이터를 가져오는 것이다. 당연 Asynchronous가 훨씬 더 좋은 사용자 경험이고 컴퓨터의 processing power를 효율적으로 쓰는 방식이다.