본문 바로가기
Programming/NodeJs

[NodeJs] Nodejs의 개념 및 특징

by Brian Go 2022. 7. 15.

❓Node.js란?

더보기

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 논블로킹(Non-blocking)I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.

-위키백과

노드 공식 사이트에서는 Node.js를 다음과 같이 소개한다.

Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임입니다.

 

본래 JavaScript의 해석은 클라이언트(사용자)의 브라우저에서 이루어졌는데, 그 엔진을 가공하여 우리가 흔히 아는 스크립트 언어처럼 사용할 수 있게 한 것이다. 그래서인지 주로 서버사이드에 많이 쓰인다고 한다.

 

위키백과에서 이야기하는 특징을 살펴보자.

❓Non-blocking

Non-blocking은 함수 A와 B가 있을 때, 일반적인 코드처럼 B가 완료된 후에 A가 다시 실행되는 게 아니라, 제어권을 A 함수가 계속 가지고 있는 것. 비동기와 비슷하나 약간 다르다.

(참고 :

 

블로킹 Vs. 논블로킹, 동기 Vs. 비동기

와 드디어 이해했다 속이 후련~

velog.io

)

❓단일 스레드 이벤트 루프

단일 스레드 루프는 스레드를 하나만 이용하는 이벤트 루프를 이용하는 것이라 볼 수 있는데, 간단하게 자원의 소모가 적기에 성능이 괜찮다는 뜻으로 해석할 수 있다.

 

 

 

❓그래서 장점은 ?

Node.js는 http 모듈을 내장하고 있어서 웹 서버에서 상용 웹서버 소프트웨어(아파치나 Nginx 등)을 이용하지 않고 서버를 직접 열 수 있고, 개발자가 자바스크립트를 통해 동작을 정의할 수 있어 서버 프로그래밍에 강점을 보인다. 특히 프론트와 백 모두에 JavaScript가 쓰이면서 한 가지 언어로 웹을 개발할 수 있게 되었다!

단일 Thread를 non-blocking으로 이용하므로 크기가 작고 잦은 I/O 처리에 용이하다.

그러나 단일 쓰레드이므로 부하가 큰 동작들에는 적절하지 않을 수 있다.

 

 

 

'Programming > NodeJs' 카테고리의 다른 글

[Nodejs] Express를 이용한 웹서버 가동  (0) 2022.07.15

댓글