코드 중에는 실행하는데 비교적 오래 걸리는 것들이 있다.

예를 들면 코드로 웹 리퀘스트(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

+ Recent posts