[Node] 0. Javascript

BBaeng·2022년 2월 26일
0

Node.js 강의를 수강하기전에 기본적으로 알아 두어야 할 Javascript에 대해 공부할 것이다.

1. 호출 스택

function first() {
	second();
    console.log('첫 번째');
}

function second() {
	third();
    console.log('두 번째');
}

function third() {
    console.log('세 번째');
}
first()

호출 스택에 대해서 공부하기 전에 이 함수들의 실행 순서를 예측해보자.

호출 스택을 그려보면 쉽게 이해할 수 있다.

위의 그림의 원리로 실행된다.

실행 순서를 설명하자면

함수들 선언 -> first 호출(실행) -> second 호출 -> third 호출 -> '세 번째' 출력 -> '두 번째' 출력 -> '첫 번째' 출력

이런 식으로 실행된다고 이해할 수 있다.

호출 스택에 대해 좀 더 설명하자면

  • Anonymous 함수는 처음 실행 시의 전역 컨텍스트이다.
  • 함수는 순서대로 쌓이고 역순으로 실행된다.
  • 함수의 실행이 완료되면 호출 스택에서 지워진다.

✍ 여기서 컨텍스트란?

📢 함수가 호출되었을 때 생성되는 환경을 의미한다. 자바스크립트 코드의 실행은 기본적으로 이러한 전역 컨텍스트 안에서 돌아간다.

❓ 위에 코드는 동기식으로 작동하는 코드이지만 만약 비동기식으로 작동한다면??

아래 코드는 setTimeout을 이용한 비동기식으로 작동하는 코드이다.

funtion run() {
	console.log('3초 후 실행');
}
console.log('시작');
setTimeout(run, 3000);
console.log('끝');

이 결과를 콘솔창으로 출력해보면 아래와 같은 순서로 출력이 된다.

시작
끝
3초 후 실행

위의 결과를 설명하기 위해서는 위에서 배운 호출 스택만으로 부족하다.

이 원리를 이용하지 못하면 이후 노드를 공부하는데에 어려움을 겪을 수 있으니 이 원리를 제대로 이해하고 넘어가자!

0개의 댓글