동기 vs 비동기


동기 vs 비동기

동기 (Synchronous)와 비동기 (Asynchronous) 차이를 알아보자

현실에서 비유적으로 설명하기(빨래 / 설거지 / 청소)

  • 동기적으로 처리
    • 빨래, 설거지, 청소를 전부 마친 경우 = 동기적 처리했다.
  • 비동기적으로 처리
    • 빨래, 설거지, 청소 업체에 전화해서 요청 = 비동기적으로 처리했다. 어느 것이 실제로 먼저 완료될지 순서는 보장하지 않는다.

결론적으로 실제로 작업이 전부 끝난 경우 동기, 빨래, 설거지, 청소 요청 작업이 끝났다고 알림이 오면 비동기적 처리가 완료됐다.


시스템으로 설명하기(1만명에게 이메일 보내기)

  • 동기적으로 처리
    • 만명에게 일일히 메일을 직접 보낸다. 한명에게 1초가 걸리면 1만초가 걸리는 작업이 되겠다.
  • 비동기적으로 처리
    • 이메일 발송을 담당하는 모듈이나 작업에게 위임을 하고, 나는 다른 작업을 수행하며, 이메일 발송 담당 시스템이 메일을 전부 발송하게되면 발송 완료의 메세지를 나에게 보내준다.

참고: 생활코딩 웹 어플리케이션 개발