Skip to main content

Command Palette

Search for a command to run...

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

Updated
1 min read

node.js의 쓰레드 처리

노드 js는 다른 서버 프로그램과 마찬가지로 여러개의 쓰레드를 사용하지만, worker 모듈 같은 것을 쓰지 않는 이상 자바스크립트 코드는 한 개의 쓰레드에서만 실행될 수 있습니다.

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

블로킹

fsreadFileSync 같은 함수는 시스템 콜을 수행하는 동안 js 쓰레드를 점유하여 js 코드의 실행을 막습니다. 반면, fsreadFile 같은 경우 다른 쓰레드에서 시스템 콜 을 수행하며 실행이 끝난 후 js 코드를 js 쓰레드에서 호출합니다.

하지만 모든 무거운 동작이 다른 쓰레드에서 처리되는 건 아닙니다. 예를 들어 자바스크립트 코드에서 엄청 큰 루프를 돌면, 그 작업을 수행하는 동안 js 쓰레드는 다른 작업을 수행할 수 없습니다.

More from this blog

한국의 학벌에 대한 생각

내 블로그의 제목이 kdy1: The way I think 인만큼 앞으로는 내 생각을 더 자주 올리려고 한다. 한국 기준으로, 학벌은 사람을 볼 때 꽤나 유용한 지표이지만, 절대적이지는 않다. 경험적인 얘기일 뿐이지만, 성균관대학교 자퇴생으로서 느낀 것들이 몇 가지 있다. 대학까지 간 사람의 학벌은 학습 능력 x 성실함 에 대체로 비례한다. 그래서 의미가

Apr 3, 20261 min read

인간 지능에 대한 메모장

최종 업데이트: 2026/03/15 지능의 유전 현재 인류 기준으로, 고지능자는 고지능 유전자가 많이 겹친 사람이다. 지능의 유전엔 X 염색체가 매우 중요한 역할을 한다. 그리고 이게 남자와 여자의 지능 분포 차이를 만든다. 극상위권에 여자가 거의 없는 이유가 이것이다. 고지능 X 염색체가 여자한테서 발현되려면 2개가 있어야 한다. 이는 인간의 생

Mar 15, 20262 min read

Ai 코딩 팁 2 (한국어)

발표 자료: https://gamma.app/docs/AI--2a52e7tk3eb1ch1 AI 활용법 관련해서 간단하게 발표를 했다. 발표 자료 앞쪽은 전에 블로그에 올린 글이랑 같은 내용이다. 이 글에서는 기존 글에서 다루지 않은 내용들을 다루겠다. 에러 메시지 및 로깅 구체적 타입 및 스키마 활용 any 타입은 사람에게도 위험하지만, AI에게는 더 위험하다. 마찬가지로, JSON.parse처럼 아무 제약 없는 파싱 느슨한 인터페이스 ...

Jan 30, 20265 min read

kdy1: The way I think

233 posts