Node.js

[Node.js] Node.js 의 특징 : 구조

건휘맨 2024. 11. 5. 15:36

 Node.js에 구조에 따라서 생기는 특징에 대해서 알아보자

 

구조의 종류에는 

1. Single Thread

2. Non-blocking I/O

 

첫번째 Single Thread 의 의미는

어떠한 작업을 처리하는 곳이 하나라는 것을 의미한다.

자바스크립트에 대한 속성을 그대로 가져왔다고 이해해도 무리가 없다.

 

두번째는 Non-blocking I/O 이다.

쉽게 얘기하면 어떤 작업들이 연달아 있을 때 작업이 실행되는 순서가 요청이 들어온 순서가 아닌

먼저 끝나는, 짧은 작업들이 리턴이 되는 것을 의미한다.

 

 

이 두가지 특징을 보면

작업하는 공간이 하나인데 먼저 끝나는 작업을 먼저 돌려줄 수 있는 것인가에 대한 의문이 생길 수 있다.

의문을 해결하기 위해 Node.js의 구조를 조금 더 자세히 살펴보자

 

위 그림에 나와있듯 Node.js 의 구조는 Core Library, API, V8, Libuv 로 더 디테일하게 표현할 수 있다.

이 중에서 Non-blocking I/O 가 가능케 하는 부분은 Libuv 라는 라이브러리이다.

 

이 라이브러리의 내부 구조는 그림의 오른쪽 부분처럼 되어 있는데

라이브러리가 자체가 오래 걸리는 I/O 작업 같은 것들과 일반 작업들을 스레드에 분리해서 각각 요청을 보내고

먼저 끝나는 것들을 이벤트 루프를 통해서 돌려주게 된다.

 

 

'Node.js' 카테고리의 다른 글

[Node.js] Node.js CJS로 간단한 HTTP 서버 만들기  (0) 2024.11.05
[Node.js] Node.js 의 특징 : 확장성  (1) 2024.11.05
[Node.js] Node.js 란?  (1) 2024.11.05