[Node.js] Node.js란 / Node.js 사용하는 이유

EUN JY·2022년 9월 30일
1

JS

목록 보기
3/6

1. Node.js

  • Node.js는 JavaScript 런타임 환경
    • 런타임 환경 : 소프트웨어 애플리케이션을 구축하고 실행하기 위한 인프라를 의미
    • Node.js는 JavaScript로 애플리케이션을 빌드

1-1. Node.js의 특징

  • 서버 프레임워크이며 무료 이용 가능
  • Windows, Linux, Mac OS 등에서 실행됨
  • 서버에서 JavaScript를 사용
  • 이벤트 기반 비동기 방식 > 서버의 무리가 적음

1-2. Node.js의 작동 방식

  • 작업이 파일 시스템으로 이동
  • 시스템이 다음 요청을 위해 대기
  • 파일을 열고 읽을 때 시스템은 클라이언트에 내용을 보냄

1-3. Node JS 파일이란

  • 작업을 포함하고 설정된 이벤트에 따라 실행
  • 누군가가 서버에 액세스하려고 할 때 이벤트 발생
  • 파일은 서버에서 시작되어야 함
  • 파일 확장자는 '.js'

1-4. Node.js 활용

  • 동적 콘텐츠 생성 가능
  • 서버에서 파일 생성, 열기 및 읽기 또는 삭제
  • 데이터베이스에서 데이터 수집 및 수정

2. Node.js 사용하는 이유

  • 높은 처리 성능 : Non-blocking I/O와 단일 스레드 이벤트 루프
  • 가장 큰 장점은 JavaScript 언어가 I/O를 차단하지 않는 것 (NodeJS 개발자 Ryan Dahi)
  • 단일 스레드 이벤트 루프
    • node가 시작될 때 이벤트 루프를 시작하고 입력을 처리, 작업 순서를 시작함

2-1. Node.js의 장점

  • Google JavaScript 엔진
    • 빠르고 확장가능한 웹 앱
  • 서버 측 애플리케이션용
    • 노드는 특정 이벤트(사용자 작업, 메시지 등)에 의해 흐름이 결정되는 이벤트 기반 프로그래밍 모델
  • 쉽게 확장 가능
    • 다중 CPU 서버로 확장하기가 쉬움
  • 각 프로세스 또는 서버끼리, 노드는 멀티 코어 서버에 부하를 분산시키는 개별 프로세스 기반으로 확장 가능

2-2. Node.js의 장점

  • JavaScript는 배우기 간단하고 수많은 프레임워크를 가지고 있어 초심자에게 좋음
  • Node를 구글에서 관리하기 때문에 빠름
  • DB에서 데이터를 순수 JSON으로 관리할 수 있음
  • 다양한 모듈이 지원됨 (ex. NPM, Grunt 등)
  • SNS, 채팅, 게임 등 실시간 어플을 만들기 좋음
  • 데이터 스트리밍에 적합 (ex. 오디오, 비디오 파일)

2-3. Non-blocking I/O

  • 일반 프로그래밍 언어 : 여러 요청이 동시에 들어왔을 때 요청이 들어온 순서대로 일을 처리
  • Non-blocking I/O : 금방 완료될 수 있는 것부터 처리하게 설계된 런타임

3. 설치

# 설치된 Node 목록
nvm list
# 사용할 Node 버전 선택
nvm use 20.10.0

# 아래와 같이 cmd 에서 설치도 가능
nvm list available
nvm install 20.10.0
nvm use 20.10.0
profile
개린이

0개의 댓글