Node.js란

유지민·2023년 10월 4일
0

Node.js란?

Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.

node.js 공식 홈페이지에 나와있는 소개글이다.
기존 웹 어플리케이션을 만들기 위해선 브라우저 상에서 Javascript 언어를 사용해 만들었다.
Javascript를 실행하려면 브라우저 위에서 실행하는 수 밖엔 없었다.
그러나 Chrome V8부터는 node.js를 통해 브라우저 뿐만 아니라 로컬에서도 자바스크립트를 실행할 수 있게 되었다.
즉, node.js는 브라우저 밖에서도 javascript를 실행할 수 있는 환경, 프로그램이라 이해하면 쉽다.

Node.js 특징

  • 자바스크립트 런타임
  • 이벤트 기반
  • 이벤트 루프
  • 논 블록킹 I/O
  • 싱글 스레드

비동기 이벤트 기반

비동기 이벤트 기반 프로그래밍 모델은, 이벤트가 발생할 때마다 이를 처리하기 위한 콜백 함수를 등록해 놓고, 이벤트가 발생하면 등록된 콜백 함수를 실행하는 방식으로 동작.

이벤트 루프

자바스크립트는 비동기 처리를 위해 이벤트 루프와 콜백 함수를 사용합니다. 일반적으로, 자바스크립트는 단일 스레드로 동작하며, 코드를 순차적으로 실행하면서 이벤트 루프를 통해 비동기 작업을 처리 합니다. 예를 들어, Ajax 요청, 타이머, 이벤트 등의 비동기 작업은 이벤트 루프를 통해 처리.

논 블록킹 I/O

Node.js는 비동기 이벤트 기반 프로그래밍 모델을 사용하므로 I/O 작업을 동기적으로 처리하지 않고 비동기적으로 처리할 수 있다. 이것은 Node.js가 대규모 애플리케이션에서 높은 처리량과 확장성을 제공하는 이유 중 하나이다.

싱글 스레드

JavaScript 언어 자체는 싱글 스레드 기반이다. Node.js는 JavaScript를 실행하기 위한 런타임 환경 중 하나로, 이 역시 싱글 스레드 기반이다.

JavaScript 언어 자체가 싱글 스레드 기반이기 때문에, Node.js 런타임 환경에서도 싱글 스레드 기반의 서버를 구현하고 있다. 따라서 JavaScript 언어와 Node.js 모두 싱글 스레드 기반의 서버라고 표현할 수 있다.

npm

Node Package Manage의 약자로 Node.js 기반에서 실행되는 기능들을 관리합니다.
다른 사람들이 만들어놓은 기능들을 다운받아 사용할 수 있고 내가 만든 기능을 올릴수도 있습니다.

npm vs yarn?

yarn은 기능 자체는 npm과 똑같지만 페이스북이 자체 개발한 것으로 npm보다 속도가 높습니다.

profile
개발 취준생

1개의 댓글

comment-user-thumbnail
2023년 10월 6일

취준 힘내십쇼 화이팅입니다

답글 달기