코드 중에는 실행하는데 비교적 오래 걸리는 것들이 있다.
예를 들면 코드로 웹 리퀘스트(web request)를 보낼 수 있는데, 이 작업이 완료 되려면 인터넷을 통해 리퀘스트(Requset)가 서버까지 전달되어야 하고, 서버가 리퀘스트를 처리하고, 리스폰스가 다시 컴퓨터까지 전달되어야 한다.
response = sendRequest('https://www.worldwideweb.com')
요즘엔 물론 컴퓨터 성능도 좋아지고, 인터넷 속도도 점점 빨라지고 있지만 단순한 연산을 하는것에 비교하면 몇천 배 또는 그 이상의 시간이 걸린다.
그런데 코드로 리퀘스트를 보내고, 리스폰스를 기다리는 동안에는 컴퓨터가 따로 하는일이 없다. 리스폰스를 기다리기만 한다.
기다리는동안 수천개의 연산을 할 수 있을텐데 그냥 기다리고만 있는것은 별로 효율적이지 못하다. 효율적인 프로그램은 오랜 시간동안 기다려야 할 때 다른 일을 먼저 하고 있다가 기다리던 작업이 완료 되면 다시 그 일로 돌아갈것이다.
이게 바로 비동기 프로그래밍의 핵심 아이디어이다.
비동기 프로그래밍은 주어진 코드를 꼭 순서대로 실행하는 것이 아니라 오래 기다려야 하는 작업이 있으면 다음 작업을 먼저 처리하고, 나중에 처리하던 작업으로 다시 돌아와서 마무리하는 방식이다.
이걸 잘 활용하면 여러 작업을 동시에 효율적으로 처리할 수 있다.
언뜻 생각했을 때는 비동기 프로그램을 구현한다는게 막연하게 어려울것 같은데 자바스크립트는 비동기 프로그램을 짜기 위한 다양한 문법과 툴을 제공하기 때문에 이것을 어떻게 사용하는지 알면 비동기 프로그램을 쉽게 짤 수있다.
'코린이 개념잡기 > 비동기 자바스크립트' 카테고리의 다른 글
콜백의 한계점(Callback Hell) (0) | 2024.12.22 |
---|---|
비동기 함수 (2) | 2024.12.22 |
비동기 실행의 특징 (0) | 2024.12.22 |
콜백과 비동기 함수 (0) | 2024.12.22 |
콜백(callback) (0) | 2024.12.21 |