정의
- 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 |