Node.js

배병일 ㅣ 2024. 2. 16. 14:04

Node.js 란 무엇인가

크롬 V8 JavaScript 엔진을 기반으로 서버 및 네트워크 애플리케이션 개발을 위한 JS 런타임 환경이다.

 

여기서 말하는 런타임 환경이란

프로그램이 실행되는 환경을 의미한다.

 

JavaSrcript의 경우 일반적으로 크롬(Chrome)과 같은 브라우저에 내장되어 있다.

 

크롬을 열고 검사창에 JS 명령어를 실행시켜보면 알 수 있다.

 

이때 브라우저 밖

즉, 개발 PC에서 다양한 용도로 사용하기 위해 만들어진 것이 Node.js 이다.

 

Node.js는 JS 런타임이고,

 

로컬에서 웹 서버를 만들 수 있는 하나의 방법에 불과하다.

 

주요 특징

  1. 비동기식 프로그래밍을 강조하며, 이벤트 루프를 사용하여 비동기 작업을 처리한다.
  2. 단일 스레드(Single Thread)로 동작하지만, 비동기 작업을 통해 동시성을 지원한다.
  3. 어플리케이션 자체는 Single Thread 지만, 실행 백그라운드에서 쓰레드 풀(Thread pool)을 구성해 수행한다.
  4. NPM(노드 패키지 매니저)을 통해 패키지 및 모듈을 관리할 수 있다.
  5. HTTP 요청 및 응답에 대한 편리한 API를 제공한다.

장점

  1. JS를 동일하게 사용하여 서버단 로직을 처리할 수 있다는게 가장 큰 장점이다.
  2. 이벤트 기반 비동기 방식이라 서버 무리가 적다.
  3. NPM을 통한 다양한 모듈(패키지) 제공, 효율성이 좋다.

단점

  1. 이벤트 기반 비동기 방식이라 로직이 복잡한 경우 콜백 지옥의 염려가 있다.
  2. Single Thread 라 단일 작업이 오래걸리는 웹서비스의 경우 어울리지 않다.
  3. 코드가 수행되어야 (런타임 때) 에러를 알 수 있다.

'Javascript > Node.js' 카테고리의 다른 글

Node.js 동작원리  (0) 2024.01.15
Node 에서 import export 사용하기 위한 babel 과 type: module 의 차이  (0) 2023.09.23
node-cache  (0) 2023.07.30
Method  (0) 2023.06.13