Node.js

[Node.js] node.js 정의, 특징

congs 2024. 2. 8. 00:09

node.js 정의

 chrome V8 JavaScript 엔진으로 빌드JavaScript 런타임 

  • JavaScript가 동작할 수 있는 브라우저 이외의 환경 
  • Node.js가 서버 구현에 많이 사용되지만 서버는 아님

 

웹브라우저의 동작 과정

 렌더링 : HTML, CSS, JavaScript가 브라우저를 통해 화면에 출력이 되는 과정

  1. HTML. CSS : 브라우저 내에 있는 렌더링 엔진을 통해 해석
  2. JavaScript : 브라우저 내에 있는 자바스크립트 엔진을 통해 해석

  • 자바스크립트 엔진 중  크롬 V8엔진을 기반으로 node.js 생성
  • 특징
    1. 빠른 속도
    2. 독립적인 실행

 

JavaScript 런타임 = JavaScript가 동작할 수 있는 환경

JavaScript 

  • HTML 요소를 조작하기 위한 언어 
  • 브라우저에서 동작하며  HTML 요소들을 조작하는 언어

브라우저 = 자바스크입트의 런타임

  • 초기에는 only 브라우저 JS의 런타임 이었으나 -> node.js 생성으로 브라우저이외에 환경이 생성됨

 


 

node.js 특징

 

1. 구조

작업을 처리하는 곳이 JavaScript 처럼 하나면서, 먼저 처리된 결과를 리턴하는 특징


오래걸리는 I/O 작업과 일반적인 작업을  Thread에 분리 -> EventLoop를 통해 먼저 처리된 결과 리턴하는 모습

 

2. 확장성

: 개발환경에서 프로젝트의 확장을 쉽게 할 수 있다는 특징

 

왜 확장이 쉽게 가능해?

  • node.js에서 제공하는 NPM 툴을 이용하기 때문에 가능

 

 NPM  : Node Package Manager

  • 설치, 삭제 관리를 통합적으로 도와주는 도구
  • 다양한 내부, 외부 모듈 (패키지) 사용이 가능 = 필요한 기능들이 미리 구현된 경우가 多 = 사용 용이
  • Node.js 개발을 돕는 nvm, npx, yarn등의 다양한 툴 이용 가능

 


npm vs nvm vs npx vs yarn

1. npm(Node Package Manager)  
  - Node.js로 개발된 패키지를 설치, 업데이트, 삭제할 수 있게 도와주는 툴
2. nvm(Node Version Manager)  
  - 특정 버전의 Node.js를 설치하기 위한 툴
3. npx  
  - npm을 관리하기 위한 모듈
4. yarn  
  - 페이스북에서 만든 패키지 툴 (npm과 같은 기능을 수행)