먼저 쓰인 코드가 무겁고 느릴 경우 나중에 오는 코드들은 무작정 대기해야 하는 비효율 발생.
동기는 작업을 순차적으로 진행하며, 각 작업은 이전 작업의 완료를 기다리고, 한 작업이 시작하면 그 작업이 완료될 때까지 다음 작업이 차단되어 대기합니다.
비동기는 비동기적인 작업이 완료되기를 기다리지 않고,
다른 작업을 동시에 진행할 수 있고
특정 이벤트의 발생, 콜백 함수의 실행
또는 Promise와 같은 비동기 패턴을 통해 처리됩니다.
비동기 프로그래밍은 성능 향상, 반응성 향상, 효율성, 스케일링과 확장성을 위해서 필요합니다.