본문 바로가기
JavaScript

Node JS의 특성

by 달보드레. 2021. 12. 9.

1.이벤트 기반

ㄴ 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식

 

-이벤트의 예 :클릭, 네트워크 요청, 타이머 등

-이벤트 리스너: 이벤트를 등록하는 함수

-콜백함수:이벤트가 발생했을 떄 실행될 함수

 

2.논블로킹 I/O

오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고

   나중에 오래 걸리는 함수를 실행

 

-논블로킹 방식 하에서 일부코드는 백그라운드로 보내서 병렬로 실행

-일부코드: I/O 작업(파일 시스템 접근, 네트워크 요청), 압축, 암호화 등

-나머지 코드는 블로킹 방식으로 실행

* I/O 작업이 많을때 노드 활용성이 극대화 됨

 

 

3.프로세스와 스레드

프로세스: 운영체제와 할당하는 작업의 단위, 프로세스 간 자원공유 X

스레드: 프로세스 내에서 실행되는 작업의 단위, 부모 프로세스 자원공유 O

 

노드는 기본적으로 멀티 스레드이다 프로세스안에 여러개의 프로세스가 있기 때문이다

하지만 직접 다룰수 있는 스레드는 단 1개이기 때문에 싱글 스레드라고 표현

멀티 프로세스를 주로 다룬다고 보는게 맞다

* 14버전 이후론 멀티 스레드 사용 가능

 

4.싱글 스레드

ㄴ 논블로킹 모델을 채택하여 일부 코드(I/O)를 백그라운드(다른 프로세스)에서 실행 가능

 

-요청을 먼저받고, 완료될떄 응답함

-I/O 관련 코드가 아닌 경우 싱글 스레드, 블로킹 모델과 같아짐

 

'JavaScript' 카테고리의 다른 글

Node JS - export  (0) 2021.12.13
JS - 이벤트 루프 (Event Loop)  (0) 2021.12.09
React - Redux  (0) 2021.12.09
React - react 시작하기  (0) 2021.12.09
JS - this 키워드  (0) 2021.12.09