STUDY/[ NodeJs ]

NodeJS 동작원리

Lim임 2025. 9. 14. 18:45

1. 싱글 스레드 이벤트 루프

Node.js는 기본적으로 싱글 스레드로 동작합니다. 즉, 하나의 스레드가 모든 작업을 처리합니다. 하지만 이는 모든 작업을 순차적으로 처리한다는 뜻이 아닙니다.

2. 이벤트 기반 비동기 I/O

Node.js의 핵심은 "이벤트 루프"와 "비동기 I/O"입니다. 일반적으로 파일 읽기, 네트워크 요청 같은 I/O 작업은 오래 걸릴 수 있는데, Node.js는 이런 작업을 비동기로 처리합니다.

비동기 작업이 요청되면, Node.js는 해당 작업을 백그라운드(예: OS의 스레드 풀)에 넘기고, 바로 다음 작업을 이어서 처리합니다.

작업이 완료되면, 등록된 콜백 함수를 이벤트 큐에 올려 실행합니다.

3. 이벤트 루프 구조

이벤트 루프는 다음과 같은 단계로 동작합니다:

  1. 입력 이벤트 감지: 요청을 받음 (예: 네트워크 요청, 파일 읽기 등).
  2. 작업 분배: 빠른 작업은 바로 처리, 느린 작업(I/O)은 백그라운드에서 처리.
  3. 콜백 큐에 결과 저장: 작업 완료 시 콜백을 큐에 저장.
  4. 콜백 실행: 큐에 있는 콜백을 하나씩 실행.

4. libuv와 멀티 스레드 활용

Node.js는 내부적으로 libuv라는 라이브러리를 사용해 실제 I/O 작업을 OS의 스레드 풀에서 처리합니다. 그래서 비동기 작업이 가능하고, CPU 작업이 아닌 I/O 작업은 병렬로 처리할 수 있습니다.

5. JavaScript 실행 (V8 엔진)

Node.js는 V8 엔진(크롬에서 사용하는 JS 엔진)으로 JavaScript 코드를 실행합니다.

개발자는 JavaScript로 코드를 작성하고, Node.js가 이를 V8 엔진으로 실행합니다.

 

+ https://blog.naver.com/tin814/223937559769

'STUDY > [ NodeJs ]' 카테고리의 다른 글

npm을 이용해 오픈소스 배포하기  (0) 2026.01.10
0918 map 객체 express  (0) 2025.09.18
nodejs 기본 생태계  (0) 2025.09.15
0915 HTTP EXPRESSSSS  (0) 2025.09.15
HTTP method / NodeJS / 모듈, 라이브러리, 프레임워크  (0) 2025.09.14