더북(TheBook)

Note ≣ 동기와 비동기, 블로킹과 논블로킹

동기와 비동기, 블로킹과 논블로킹이라는 네 개의 용어가 노드에서 혼용되고 있는데, 용어가 서로 다른 만큼 의미상의 차이가 있습니다.

동기와 비동기: 백그라운드 작업 완료 확인 여부

블로킹과 논블로킹: 함수가 바로 return되는지 여부

노드에서는 동기-블로킹 방식과 비동기-논블로킹 방식이 대부분입니다. 동기-논블로킹이나 비동기-블로킹은 없다고 봐도 됩니다.

동기-블로킹 방식에서는 백그라운드 작업 완료 여부를 계속 확인하며, 호출한 함수가 바로 return되지 않고 백그라운드 작업이 끝나야 return합니다. 비동기-논블로킹 방식에서는 호출한 함수가 바로 return되어 다음 작업으로 넘어가고, 백그라운드 작업 완료 여부는 신경 쓰지 않고 나중에 백그라운드가 알림을 줄 때 비로소 처리합니다.

▲ 그림 3-11 동기-블로킹 vs. 비동기-논블로킹

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.