동기 vs 비동기

동기와 비동기라는 단어는 언뜻 봤을 때 동기가 동시에 처리되고 비동기가 동시에 처리되지 않을 줄 알았습니다.

하지만 막상 반대의 단어들이였고, 언제 동시성의 발생을 두고 만든 단어였습니다.

동기(synchronous)의 경우에는 요청이 들어왔을 때 응답이 올 때까지 다음 요청을 할 수 없습니다.

요청이 들어왔을 때 응답이 동시에 나가기에 동기인 것입니다.

예를 들어 줄이 긴 놀이 기구를 기다릴 때는 다른 기구를 타지 못하는 것, 로그인을 했을 때 대기 시간이 걸리면 다른 행위를 못하는 것과 같습니다,   

 

비동기(Asynchronous)의 경우에는 요청이 들어왔을 때 바로 응답이 오지 않더라도 다음 요청을 보낼 수 있습니다.

비동기 처리는 많은 요청을 한번에 보내 빠른 처리가 가능하기 때문에 시간적 효율성이 높습니다.

그렇기 때문에 우리는 네트워크 관련 작업들을 할 때 비동기적 처리로 구현합니다.

 

비동기 처리가 동기 처리에 비해 효율적이라고 하지만 설계는 동기 처리보다 복잡합니다. 또한 동기 처리는 하나씩 반드시 수행된다는 장점이 있습니다.

 

+ Recent posts