Node.js

이혜령·2023년 9월 4일
0

현장실습

목록 보기
2/8
post-thumbnail

Node.js

Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임

  • Node.js는 JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다.
  • Node.js는 V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(환경)이다.
  • Node.js는 서버사이드 스크립트 언어가 아니다. 프로그램(환경)이다.
  • Node.js는 웹 서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌다.

Node.js의 장점

  • Javascript 언어로 프론트엔드 뿐만 아니라 백엔드 개발 환경을 구성할 수 있기에 생산성이 좋다.
  • C/C++로 개발된 V8 엔진을 사용하여 확장성이 좋다.
  • 다양한 패키지 매니저(npm: node Package Manager)를 기반으로 다양한 모듈(패키지)을 제공하며 필요 라이브러리에 대해 설치하고 사용할 수 있기에 효율성이 좋다.
  • 이벤트 기반 Non-Blocking 및 비동기 처리가 가능하다.
    : event loop는 비동기 I/O를 사용하므로 스레드가 block 되지 않고 싱글 스레드로 다수의 요청 처리 가능(I/O 예시: 저장장치(SSD, HDD), 데이터베이스, 네트워크 접근), 멀티스레드보다 자원을 효율적으로 사용
  • 간단한 확장 모듈 관리가 가능하다.(NPM)
  • http 서버 모듈을 내장하고 있어서 아파치와 같은 별도의 웹 서버를 설치할 필요가 없다.

Node.js의 단점

  • 싱글 스레드 모델이기 때문에, 하나의 작업이 지연되면 전체 시스템의 성능도 같이 떨어진다.
  • 스크립트 언어의 특성상 해당 언어가 수행되어야 에러가 나는지 확인할 수 있어서 에러가 날 경우 프로세스가 종료된다.
  • 이벤트 기반 비동기 방식이라 서버의 로직이 복잡한 경우에 ‘콜백 함수 늪(callback hell)'에 빠질 수 있다.
profile
배운 거 대충 정리하는 블로그

0개의 댓글