Node.js 란?

강준석·2023년 4월 14일
0

Node.js 기초

목록 보기
1/15

01. JavaScript란?

자바스크립트는 정적인(Static)문서를 조금 더 동적(Dynamic)으로 표현할 수 있도록 만들어졌는데NetScape라는 웹브라우저를 통해 상호작용을 강조하기 위해 간단한 기능을 넣어 만든것이 자바스크립트의 시초

  • java와 javaScript는 아무런 관련이 없다

02. Node.js란?

Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.
Node.js는 V8엔진으로 빌드되었지만 구글이 만든것은 아니고 자바스크립트를 실행할 수 있는 환경이라고 보면된다

  • Node.js는 JavaScript를 컴퓨터에서 브라우저 없이 실행하기 도와주는 환경을 의미

Node.js를 굳이 사용해야 하는 이유

  • Node.js는 논 블로킹(Non-blocking)I/O, 싱글 스레드(Single Threed), 이벤트 루프(Event Loop)의 특성이 있다

  • 기존의 블로킹(Blocking) : I/O는 프로그램 내부에서 함수를 호출하면 호출된 함수가 작업을 마칠 때까지 대기하는 방식

  • 논 블로킹(Non-blocking) : I/O는 함수가 실행되는 중에도 다른 작업을 동시에 진행할 수 있는 장점이 있다.

  • 싱글 스레드(Single Thread) : 스레드 하나를 사용하는 것이며, 동시에 하나의 작업만을 처리할 수 있다.

  • 싱글 스레드를 고집하는 이유

    1. 스레드 생성 부하 및 스레드 유지에 대한 부담이 없어 조금 더 효율적으로 사용할 수 있다.
    2. 스레드들이 공유하는 자원에 대한 동시접근 문제(Racecondition)상황이 발생하지 않는다
    3. Node.js는 차라리 새로운 프로세스를 생성해 확장을 도모, 프로세스는 여러개라도 서로에 대해 독립적으므로 하나의 프로세스가 문제를 일어키더라도 다른 프로세스까지 모두 종료될 확률은 낮다. 때문에 서버확장에 매우 자유롭다
  • 이벤트 루프(Event Loop)는 JavaScript가 가지고 있던 싱글 스레드의 약점을 극복하기 위해 효율적으로 작업을 처리할 수 있 특성이다.

profile
백엔드개발자를 목표로 공부중

0개의 댓글

관련 채용 정보