node.js

node.js의 쓰레딩 관련 오개념

node.js의 쓰레드 처리 노드 js는 다른 서버 프로그램과 마찬가지로 여러개의 쓰레드를 사용하지만, worker 모듈 같은 것을 쓰지 않는 이상 자바스크립트 코드는 한 개의 쓰레드에서만 실행될 수 있습니다. 비동기 함수를 사용하거나 Promise.all을 사용해도 마찬가지이며, 이 특징 때문에 node.js는 연산이 많은 js 코드를 효율적으로 처리하지 못합니다. 그래서 이미지 처리처럼 연산이 많이 필요한 작업은 네이티브 모듈을 사용하는데요, 이러면 다른 쓰레드에서 연산을 수행할 수 있습니다. 이 경우에 js와 네이티브 interop이 가능한데요, 이 경우에도 모든 자바스크립트 코드는 메인 쓰레드에서 실행됩니다.

corepack, 사용해야하는 이유

corepack이란 corepack은 node.js에서 패키지 매니저 호환성 이슈를 해결하는 도구입니다. pnpm, yarn 등은 lockfile을 생성하는데요, 해당 lockfile들은 패키지 매니저의 버전에 영향을 받기 때문에 한 패키지 매니저만 사용하는 경우에도 호환성 문제가 생길 수 있습니다. 그래서 node.js 팀이 만든 게 corepack입니다. 작동 방식 corepack을 활성화하면 yarn 명령어와 pnpm 명령어의 동작이 달라집니다. 설치된 명령어의 버전을 사용하는 대신, 프로젝트 설정에 따라 적절한 버전의 패키지 매니저를 사용합니다. 만약 적절한 버전의 패키지 매니저가 설치되어있지 않은 경우, 조용히 설치한 뒤 실행합니다.

node.js 버전 여러개 사용하기

개발하다보면 프로젝트마다 필요한 node.js의 버전이 다른 경우가 있습니다. 매번 node.js를 지우고 다시 깔기는 너무 귀찮으니, 저 같은 경우 node.js 버전 관리자인 fnm을 이용해서 여러 버전을 동시에 설치하고 관리합니다. 다른 node.js 버전 관리자도 많지만, fnm이 가장 편하고 빨랐습니다. 설치 방법 설치 방법도 간단합니다. OS별 패키지 매니저로 설치할 수도 있고 스크립트로 설치할 수도 있는데요, 어느 쪽이든 한 줄로 끝납니다. 리눅스나 mac 같은 posix 계열 운영체재를 사용하시는 경우 아래 명령어를 터미널에서 입력하시면 설치가 끝납니다.