자바스크립트는 비동기 언어? 🤔

HOSEON LEE·2024년 5월 9일

자바스크립트는 싱글 스레드 기반의 동기적인 언어입니다.

처음 만들어졌을 때는 웹 페이지에서 간단한 상호작용을 처리하는 것이 주목적이었기 때문에, 초기의 자바스크립트는 매우 단순하고 제한된 기능을 가지고 있었습니다.

Example of synchronous

console.log('First')
console.log('Second')
console.log('Third')

Output

First
Second
Third

초기의 자바스크립트는 비동기 처리를 할 때 Callback 함수를 사용했습니다. 그러나 비동기 작업이 여러 단계에 걸쳐 이루어질 경우 복잡한 중첩 구조를 가지게 되어서 가독성이 좋지 않고 에러 처리를 하기 어려웠습니다.

Example of callback hell

getData(function(err, data) {
    if (err) {
        console.error('첫 번째 작업 실패', err);
        return;
    }
    processData(data, function(err, processedData) {
        if (err) {
            console.error('데이터 처리 중 에러 발생', err);
            return;
        }
        saveData(processedData, function(err) {
            if (err) {
                console.error('데이터 저장 실패', err);
                return;
            }
            console.log('작업 완료');
        });
    });
});

그래서 ES6 이후에 순차적으로 생겨난 개념이 Promiseasync/await 입니다.

profile
Hello 🤚

0개의 댓글