[Javascript] Javascript 기초 (ES5+) by 드림코딩 7.동기/비동기 프로그래밍

username_oy·2024년 4월 19일

JavaScript 기초

목록 보기
5/6

1. Javascript is synchronous / Asynchronous

동기적

*동기적 수행이란
한 번에 하나씩, 순서대로 수행한다는 뜻이다.

*동기 프로그래밍

코드를 동기적으로 수행한다는 뜻이다.*
코드가 작성된 순서대로 한 줄씩 실행된다.

console.log('1');
console.log('2');
console.log('3');

// 1, 2, 3

console.log('1');
print();
console.log('3');

function print() {
  console.log('2');
}

// 1, 2, 3

브라우저는 자바스크립트 코드를 실행하기 전에, 함수나 변수 같은 선언문들을 코드 최상단으로 올린다.
이를 호이스팅이라 하는데, 호이스팅이 된 후부터 코드가 작성된 순서에 맞춰서 하나씩 동기적으로 실행된다. (Execute the code block by order after hoisting)

// 호이스팅
function print() {
  console.log('2');
}

console.log('1');
print();
console.log('3');

동기 프로그래밍의 문제점

주문을 받으면 결과를 내어주기 전까지 다음 작업이 일어나지 않는다.
오래 걸리는 작업을 시작하면 다 끝마칠 때까지 뒤에 있는 작업들은 대기해야하는 Blocking 현상이 일어난다.

비동기적

특정 코드의 연산이 끝날 때까지 기다리지 않고 바로 다음 코드를 먼저 실행하는 방식이다.
응답 상태와 상관 없이 다음 동작을 수행할 수 있다.
주문을 받고 결과가 나오기 전에 다른 작업을 수행하는 것이다.

profile
프런트엔드 개발자로의 여정

0개의 댓글