NodeJS 제대로 알고 쓰자!

lee-goeun·2023년 4월 27일
0

Nodejs가 좋다고 하는데 어떻게 좋은 지 어떻게 써야 제대로 쓰는 지 알기 위해 글을 작성해보기로 했다!😉

NodeJS란 ? Chrome V8 JavaScript엔진으로 빌드된 JavaScript 런타임이다.

NodeJS 특징

  1. 자바스크립트 런타임
  • 런타임이란? 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 말한다.
    2008년 구글이 v8 엔진을 사용하여 크롬을 출시하여 libuv 라이브러리와 함께 빌드되었다.
  1. 이벤트 기반
  • 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 말한다.
    • 발생 방식 : 호출 스택이 실행되고 실행이 끝나 비워지면 이벤트 루프가 돌면서 태스크 큐의 콜백을 호출 스택에 올려 태스크 큐의 실행한다.
      만약 호출 스택에 함수들이 많으면 이벤트 루프가 돌지 않아 테스크 큐의 함수는 실행되지 않을 수도 있다.
  1. 논 블로킹 I/O
  • 논 블로킹으로 처리하게 되면 동시 처리될 수 있는 작업은 묶어서 처리하기 때문에 시간을 절약할 수 있다.
    *setTimeOut(콜백, 0) : 0으로 설정을 하더라도 기본적인 지연시간이 있기 때문에 바로 실행되지는 않음
  1. 싱글 스레드
  • 하나의 스레드로 논 블로킹 방식을 사용하면서 한번에 여러가지 일을 할 수 있게 한다. 하지만 스레드가 하나뿐이기 때문에 에러로 멈추게 되면 서버 전체가 멈추게 된다.

    장점 단점
    멀티 스레드 방식에 비해 적은 컴퓨터 자원 사용 기본적으로 싱글 스레드라서 CPU 코어를 하나만 사용
    I/O 작업이 많은 서버로 적합 CPU 작업이 많은 서버로는 부적합
    멀티 스레드 방식보다 쉬움 하나뿐인 스레드가 멈추지 않도록 관리 필요
    웹 서버가 내장되어 있음 서버 규모가 커졌을 때 서버를 관리하기 어려움
    자바스크립트를 사용함 어중간한 성능
    JSON형식과 쉽게 호환됨

0개의 댓글