[Javascript]비동기 처리

블랑·2023년 3월 14일
0

[FE] - HTML/CSS/JavaScript

목록 보기
11/14

콜백 함수의 개념을 알아보던 중, 비동기 처리의 개념을 조금 확립해야 할 것 같아 추가적인 글을 작성하였다.

비동기 처리(Asynchronous processing)란,
작업을 요청한 후 그 결과가 반환될 때까지 기다리지 않고 다음 작업을 수행하는 방식이다.

즉, 하나의 작업이 수행되는 동안 다른 작업을 동시에 수행할 수 있으므로 전체적인 처리 시간을 줄일 수 있다.

자바스크립트에서는 비동기 처리를 위해 콜백(callback) 함수, 프로미스(promise), async/await 등의 방법을 제공한다. 비동기 처리가 필요한 대표적인 예시로는 파일 읽기/쓰기, 네트워크 통신, 애니메이션 등이 있다.

예를 들어, 다음과 같은 비동기적인 코드를 보자.

console.log('1');

setTimeout(function() {
  console.log('2');
}, 1000);

console.log('3');

위 코드에서 setTimeout 함수는 1초 후에 콜백 함수를 호출하도록 예약되어 있다.
따라서 코드를 실행하면 '1'과 '3'이 먼저 출력되고, 1초 후에 '2'가 출력된다.
이는 setTimeout 함수가 비동기적으로 실행되기 때문으로, 만약 setTimeout 함수를 동기적으로 실행하면 '1', '2', '3' 순서대로 출력될 것이다.

개인적인 생각으로는, JAVA의 쓰레드 개념과 유사한 측면이 있다고 느꼈다.
조금 더 자세히 알아보니 개념 자체는 유사하지만, 구현 방법과 동작 방식에서 차이가 있다고 하는데 이 부분은 나중에 추가적으로 알아보도록 하자.

profile
안녕하세요.

0개의 댓글