Node.js 기초

Node.js는 확장성 있는 네트워크 애플리케이션 개발에 사용되는 자바스크립트 런타임입니다. 서버 개발을 비롯한 다양한 분야에서 활용됩니다.

개요

Node.js는 구글의 V8 자바스크립트 엔진으로 빌드된 서버 측 플랫폼입니다. 웹 브라우저 밖에서도 자바스크립트를 실행할 수 있게 해주며, 특히 이벤트 기반, 비동기 I/O 모델을 채택하여 가볍고 효율적인 데이터 처리 성능을 보여줍니다. 이를 통해 실시간 웹 서비스, 스트리밍 서비스 등 다양한 애플리케이션을 구축할 수 있습니다.

참고

Node.js는 프레임워크가 아닌 자바스크립트 '런타임' 환경입니다. Express.js, NestJS와 같은 프레임워크를 함께 사용하여 더욱 체계적인 개발을 할 수 있습니다.

핵심 개념

Node.js를 이해하는 데 중요한 몇 가지 핵심 개념입니다:

개념 설명
V8 엔진 구글 크롬의 자바스크립트 엔진으로, 자바스크립트 코드를 매우 빠르게 실행합니다.
단일 스레드 기본적으로 하나의 스레드로 동작하며, 비동기 방식을 통해 여러 작업을 동시에 처리합니다.
비동기 I/O 네트워크 요청, 파일 시스템 접근 등 시간이 오래 걸리는 작업이 완료될 때까지 기다리지 않고 다음 코드를 실행합니다.
이벤트 루프 비동기 작업의 순서를 관리하는 메커니즘으로, Node.js의 핵심 동작 원리입니다.

패키지 매니저(NPM)

NPM(Node Package Manager)은 Node.js의 기본 패키지 관리 도구입니다. 전 세계 개발자들이 공유하는 수많은 라이브러리(패키지)를 쉽게 설치, 업데이트, 관리할 수 있습니다.

CLI
# 새로운 Node.js 프로젝트 시작
npm init -y

# Express.js 패키지 설치
npm install express

# 개발용 패키지 설치
npm install nodemon --save-dev

사용 예제

아주 간단한 "Hello, World!" 웹 서버 예제입니다. (Express.js 사용)

JavaScript
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(port, () => {
  console.log(Server listening on port ${port});
});

주의사항 및 팁

  • 비동기 코드에 익숙해져야 합니다. 콜백 함수, Promise, async/await 등의 개념을 깊이 이해하는 것이 중요합니다.
  • 프로덕션 환경에서는 PM2와 같은 프로세스 매니저를 사용하여 애플리케이션을 관리하는 것이 좋습니다.
  • Node.js는 서버뿐만 아니라 프론트엔드 개발 환경(webpack, Babel 등)을 구축하는 데에도 필수적으로 사용됩니다.
주의

단일 스레드 모델이기 때문에, CPU를 많이 소모하는 복잡한 연산은 애플리케이션 전체를 멈추게 할 수 있습니다. 이러한 작업은 별도의 워커 스레드를 사용하거나 다른 언어로 처리하는 것을 고려해야 합니다.