본문 바로가기

Back-end & Server/Node.js

[Node.js] Node.js 시작하기

728x90
반응형

Node.js란?

"Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임(컴퓨터 프로그램이 실행되고 있는 동안의 동작)이다."

 

구글은 Chrome에서 사용하기 위해 V8이라는 JavaScript 엔진을 개발했다. V8은 빠른 속도로 JavaScript를 해석하고, 기계가 인식해서 수행할 수 있는 코드로 변환하는 역할을 한다. 또 오픈소스로 공개되었기 때문에 독립적으로 실행할 수 있도록 개발되었다.

Node.js에서 동작하는 Javascript는 모두 이 V8 엔진 위에서 동작한다.

 

Node.js는 Non-Blocking I/O를 사용한다. 

Non-Blocking I/O는 여러 개의 요청을 동시에 처리한다. 그리고 서로의 결과를 기다릴 필요 없이 각각의 결과가 도착하는 순간 결과를 바로 출력할 수 있게한다.

 

Node.js는 Event-Driven을 지원한다.

Event-Driven이란 이벤트(또는 객체의 상태 변환)에 따라 프로그램의 실행을 제어하는 구현 방식을 말한다.

일반적으로 어떤 이벤트가 발생하는지 살펴보고 있다가 해당 이벤트가 발생 시 원하는 작업(또는 콜백 함수)을 실행한다.

 

Node.js는 Event-Driven, Non-Blocking I/O 같은 비동기 작업을 구현하기 위해서 내부적으로 Event Loop를 이용한다.

Event Loop는 프로그램의 작업 목록(Call Stack)이 비어있는지를 지켜보고 있다가 작업이 모두 실행되어 비어 있는 상태가 되면 Callback Queue에 담긴 콜백을 하나씩 꺼내 작업 목록으로 가져와 처리한다.

 

Node.js는 대부분의 I/O와 내부 모듈들을 이벤트 형태로 구현해 제공한다.

개발자는 오래 걸리는 작업 여러 가지를 동시적(Concurrently)으로 요청해 처리할 수 있다.

Event Loop와 Non-Blocking I/O 덕분에 서버와 같은 프로그램이 수많은 요청을 처리할 수 있고 Multi-threading의 필요성을 제거했다.

 

Node.js는 npm(node package manager)라는 패키지 매니저를 사용한다. 

npm을 이용해 자신이 필요한 라이브러리와 패키지를 바로 검색해서 설치하고, 사용할 수 있다.

이를 통해 개발 속도와 효율성을 높이는 데 크게 도움이 된다.

 

이 밖에도 Node.js는 자바스크립트 하나로 Frontend와 Backend를 모두 개발 할 수 있을 뿐만 아니라 Windows, Linux, MacOS, Android, iOS 개발 까지 할 수 있다.

 

 

Node.js의 사용처

Node.js를 사용하면 좋은 곳

  • 입출력이 잦은 어플리케이션
  • 데이터 스트리밍 어플리케이션
  • 데이터를 실시간으로 다루는 어플리케이션
  • JSON API 기반 어플리케이션
  • 싱글페이지 어플리케이션

 

Node.js를 쓰지 말아야 할 곳

  • CPU 사용률이 높은 어플리케이션

 

 

Node.js 설치하기

Node.js는 두 가지 설치 방법이 있다.

 

먼저 공식 사이트에서 다운로드하는 방법이다.

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

공식 사이트에서 LTS 버전 또는 원하는 버전을 자신의 운영 체제에 맞게 다운로드 받는다.

 

또 다른 방법은 패키지 매니저로 다운 받는 방법이다.

 

패키지 매니저로 Node.js 설치하기 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

각 OS에서 지원하는 패키지 매니저로 다운로드 받을 수 있다.

ex. macOS

brew install node

 

 

Node.js 프로젝트 생성

먼저 프로젝트를 생성할 위치에 디렉터리 하나를 만들어준다.

그 다음 터미널에서 그 디렉터리로 이동 한다.

npm을 이용해서 프로젝트 초기화를 진행하면 package.json이라는 파일이 생성된다.

그리고 src라는 디렉터리를 하나 만들고 그 안에 index.js라는 파일을 만들고 다음과 같은 코드를 입력한다.

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

 

그리고 터미널에서 다음과 같은 명령어를 입력한다.

node src/index.js

그러면 Node.js로 서버가 실행된다. 브라우저에서 저 주소로 접속하면 Hello, World가 나타난다.

기본적인 Node.js 프로젝트의 생성과 실행법이다.

 

728x90
반응형

'Back-end & Server > Node.js' 카테고리의 다른 글

[Node.js] Event Loop  (0) 2023.07.29
[Node.js] Callback Function  (0) 2023.07.29
[Node.js] index.js 파해쳐보기  (0) 2023.07.29
[Node.js] Node.js의 핵심 기능  (0) 2023.07.28
[Node.js] package.json 알아보기  (0) 2023.07.28