Node.js

훈이는못말려·2023년 7월 31일
0
post-thumbnail

Node.js란?

Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 입니다.
출처: Node.js 공식 사이트

크롬, 파이어폭스 등 브라우저들은 자바스크립트를 읽고 해석하는 역할을 한다.
자바스크립트를 빠르게 읽고 해석하면 웹사이트 렌더링 성능도 빨라지니 개발자들은 자바스크립트를 해석할 수 있는 엔진 개발에 집중했다.
이때 '크롬 브라우저 개발자' 들이 성능이 매우 뛰어난 자바스크립트 해석 엔진 V8을 개발하게 된다.

기존에 자바스크립트는 웹 브라우저에서만 실행됐고, 웹브라우저가 없으면 실행할 수 없었다. 또한 서버 환경에서 사용하려니 속도가 매우 느렸다. 하지만, V8 엔진 개발 이후 서버에서의 속도가 향상되었고, 웹 브라우저 외의 환경에서 사용할 수 있기를 원했다. 그 결과 Node.js가 등장했다. Node.js의 등장으로 cmd, terminal 에서도 자바스크립트를 사용할 수 있게 되었다.

런타임은 프로그래밍 언어가 구동되는 환경을 말한다. 즉, Node.js는 자바스크립트를 브라우저 말고도 로컬 PC에서도 실행시키는 환경이다.

장점

  • 빠른 속도
    • Node.js는 I/O 작업을 비동기적으로 처리하여 블로킹이 발생하지 않고 많은 클라이언트 요청을 동시에 처리할 수 있다.
      참고: https://youtu.be/k2GWnDb5zoQ
  • 다양한 플랫폼 지원
    • Windows, macOS, Linux등 다양한 운영체제에서 동작한다.
  • 큰 생태계
    • npm을 통해 다양한 패키지와 모듈을 제공하며, 필요한 라이브러리를 설치하고 사용할 수 있다.

단점

  • 단일 쓰레드 작업이기 때문에 하나의 작업 자체가 많이 걸리는 웹 서비스에는 어울리지 않는다.
    • 대용량 파일 업로드 및 다운로드 서비스
    • 복잡한 데이터 처리 서비스
    • 과학적 모델링 및 시뮬레이션

이러한 특징들 때문에 주로 게시판 혹은 채팅 서비스 등에서 많이 사용한다.

[번외]
Next.js는 Node.js 위에서 빌드된 오픈 소스 웹 개발 프레임워크이다.

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기