본문 바로가기

프론트엔드/java script

Node.js란?

반응형

정의


- Node.js(노드)는 자바스크립트를 백엔드 프로그램 개발에 사용할 수 있도록 만들어진 서버사이드 자바스크립트 런타임

- 정확하게는 Chrome V8 JavaScript Engine에 기반

- 기본적으로 스레드를 사용하지 않도록 설계되었지만 필요하다면 다수의 cpu 코어에 로드밸런싱이 가능한 구조로 경량의 빠른 웹서버 개발에 적합

- 별도의 웹서버 소프트웨어 없이 자체적으로 웹서버 구동이 가능하고 자바스크립트 문법을 통해 서버 프로그램 구현이 가능한 구조

- 기존의 대형 시스템들을 여러개의 독립된 소형 서비스로 분리하는 마이크로 서비스 아키텍처(MSA: Micro Service Architecture)의 확산으로 node.js 의 활용이 급증

- 노드 공식 사이트에서는 다음과 같이 설명

Node.js는 JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다.
Node.js는 V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(환경)이다.
Node.js는 서버사이트 스크립트 언어가 아니다. 프로그램(환경)이다.
Node.js는 웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌다.

 

 

 

특징


  • 이벤트 기반, 논 블로킹 I/O모델 사용.
  • npm 이라고 하는 패키지 매니저 사용.(65만개 이상의 오픈소스패키지)
  • 빠른 처리속도와 뛰어난 확장성

 

 

적용 분야


  • 입출력이 잦은 어플리케이션
  • 데이터 스트리밍 어플리케이션
  • 데이터를 실시간으로 다루는 어플리케이션
  • 경량의 Restful API 기반 어플리케이션
  • 싱글페이지 어플리케이션

 

사용 이유


Node.js를 사용하려면 먼저 JavaScript를 배워야한다.
Node.js는 JavaScript를 사용하기 위해  만들어진 것이기 때문이다.
JavaScript는 C/C++, Java 와 같은 프로그래밍 언어이다.
하지만 이름에서 알 수 있듯 JavaScript는 독립적인 언어가 아닌 스크립트 언어이다.
스크립트 언어는 특정한 프로그램 안에서 동작하는 프로그램이기 때문에 웹 브라우저 프로그램 안에서만 동작을 한다.
즉, 웹 브라우저(크롬, 사파리, 익스플로러, 파이어폭스 등)가 없으면 사용할 수 없는 프로그램이다.
여기서 Node.js가 나오는 이유가 된다.
즉, JavaScript 를 웹 브라우저에서 독립시킨 것으로 Node.js를 설치하게 되면 터미널프로그램(윈도우의
cmd, 맥의 terminal 등)에서 Node.js를 입력하여 브라우저 없이 바로 실행할 수 있다.
하지만 JavaScript에서 분리된 언어이기 때문에 문법은 같다.
이렇게 Node.js를 이용하여 웹 브라우저와 무관한 프로그램을 만들 수 있게 되었다.
중요한 것은 Node.js를 이용하여 서버를 만들 수 있다는 것이다.
중요한 이유는 이전까지 Server-Client 웹사이트를 만들 때 웹에서 표시되는 부분은 JavaScript 를 
사용하여 만들어야만 했으며, 서버는 Reby, Java 등 다른 언어를 써서 만들었어야 했는데 마침내 한 가지 
언어로 전체 웹 페이지를 만들 수 있게 된 것이다.

 

참고

https://dinfree.com/lecture/frontend/123_js_1.html#03-nodejs

 

자바스크립트 기초

자바스크립트가 무엇인지 이해하고 기본 문법을 배웁니다.

dinfree.com

https://hanamon.kr/nodejs-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/

 

Node.js 노드 개념 이해하기 자바스크립트 JavaScript 런타임 이벤트

Node.js 노드 개념 이해하기 JavaScript 런타임 - 노드는 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는데 제일 많이 사용된다. 이벤트 기반 이벤트 루프 논블로킹 I/O 싱글

hanamon.kr

 

반응형

'프론트엔드 > java script' 카테고리의 다른 글

DOM이란?  (0) 2023.04.13
자바스크립트 기본  (0) 2022.07.03
ajax 기본  (0) 2021.12.19
서버 클라이언트 통신 이해하기  (0) 2021.12.19
JQuery란?  (0) 2021.12.19