4일차: 2026. 1. 5. (월) - npm, callback

min0._.9·2026년 1월 11일

우리FISA 일일 회고

목록 보기
1/15

npm (node package manager)

각 단어의 의미는 다음과 같다.

  • node
    : node.js를 기반으로 한다.
  • package
    : 외부 라이브러리를 통칭하는 표현이다.
  • manager
    : JS 기반으로 외부 모듈을 관리하는 역할을 수행한다.

즉, npm이란, JS를 기반으로 직접 개발 / 다른 사람이 만들어 놓은 라이브러리(모듈)을 설치/활용하고 싶을 때 사용하는 기술이다.

터미널에 다음 명령어를 사용해 필요한 패키지 파일을 자동으로 설치할 수 있다. 명령어를 실행하면 npm_modules라는 폴더가 생긴다. (github에 올릴 때 이 폴더까지 같이 올리진 않는다.)

npm install

package.json 파일 생성 명령어는 다음과 같다.

npm init

callback

Called at the back.

어떤 함수의 인자값(argument)으로 보내지는 함수로써, 무언가(event)가 발생했을 때(어떤 함수의 호출) 실행(호출)되는 함수를 의미한다.

setTimeout 함수

function a() {
    setTimeout(() => console.log('a() called'), 1000);
}

a(); 
console.log('a() is done'); 

setTimeout이 비동기 함수이기 때문에 done > called 순서로 호출된다.
(1초 딜레이를 주었기 때문에 당연히 called가 나중에 실행되는 게 아니라, 근본적으로는 setTimeout이 비동기 함수라서 그렇다! 딜레이를 0으로 줘도 결과는 마찬가지다.)

javascript가 비동기 함수를 처리할 수 있는 이유

javascript는 싱글 스레드이다. 그런데 어떻게 비동기 함수를 처리할 수 있을까?

JS visulalizer 9000 사이트에서 다음과 같은 코드를 실행했다.
(주의: 한국어 주석이 들어가면 사이트가 동작하지 않는다.)

function a() {
    setTimeout(() => console.log('a() called'), 1000);
}

a(); 
console.log('a() is done'); 
  • a() > setTimeout이 Task Queue에 넣어지고, 끝난다.
  • a is done 이 출력된다.
  • event가 계속 돌아간다. (while loop 동안 stack이 비었나 계속 확인한다. stack이 비었으면 queue에 있는 것들이 와서 실행된다)
  • task queue의 익명함수(console ‘a() called’) 가 call stack 으로 와서 실행된다.
  • a is called 출력된다.

추가로, task queue는, 이름이 queue이지만 실질적으로 set처럼 동작한다. 이 문서를 참고하자.

0개의 댓글