![](https://tistory1.daumcdn.net/tistory_admin/blogs/image/category/new_ico_5.gif)
비동기 프로그래밍비동기 프로그래밍 탄생 배경CPU와 I/O 속도의 차이CPU는 매우 빠르게 연산을 수행하지만, 디스크, 네트워크, DB 등 I/O 작업은 상대적으로 느림.동기(Synchronous) 방식으로 실행하면 I/O 대기 시간 동안 CPU가 낭비됨.멀티태스킹과 병렬 처리의 필요성하나의 요청이 완료될 때까지 기다리면 다른 작업을 동시에 처리할 수 없음.여러 작업을 동시에 실행하기 위해 스레드 기반의 멀티태스킹이 등장.하지만 스레드 생성 비용이 높고, 컨텍스트 스위칭이 성능 저하를 초래함.이벤트 기반 & 논블로킹 방식 등장효율적인 리소스 사용을 위해 이벤트 루프(Event Loop)와 콜백 기반의 비동기 처리가 개발됨.대표적으로 Node.js, JavaScript Promise, Java의 Compl..