개발지식/Node.js

[Node.js] Node.js 기본 생태계

thinktank911 2025. 9. 15. 09:33

1. 런타임 환경 (Node.js 자체)

  • V8 엔진: 구글 크롬에서 사용하는 자바스크립트 엔진. 자바스크립트를 빠르게 실행.
  • libuv: 비동기 I/O와 이벤트 루프(Event Loop)를 제공하는 라이브러리.
  • 이벤트 루프: 비동기 처리의 핵심. 콜백, 프로미스, async/await 등이 여기서 관리됨.
  • 싱글 스레드 기반: 한 개의 메인 스레드에서 동작하지만, 내부적으로는 libuv가 백그라운드에서 스레드 풀을 사용.

2. 표준 라이브러리 (Core Modules)

Node.js를 설치하면 기본 제공되는 모듈들:

  • fs: 파일 시스템 읽기/쓰기
  • http / https: 서버 만들기, 요청/응답 처리
  • path: 파일 경로 다루기
  • os: 운영체제 관련 정보
  • events: 이벤트 기반 프로그래밍 지원
  • crypto: 암호화, 해싱
  • stream: 스트림 처리 (파일 다운로드, 대용량 데이터 처리 등)

👉 별도 설치 없이 바로 require('fs')처럼 사용 가능.

 

3. 패키지 관리 (npm 생태계)

  • npm (Node Package Manager): Node.js 기본 패키지 관리자
  • yarn / pnpm: npm 대체 도구, 빠르고 효율적인 설치 지원
  • package.json: 프로젝트 의존성, 스크립트, 메타데이터 관리
  • package-lock.json: 의존성 버전 고정

👉 Node.js 생태계의 강점은 바로 거대한 npm 오픈소스 생태계이다.

 

4. 프레임워크 및 라이브러리

Node.js 위에서 동작하는 주요 생태계 구성요소:

  • 웹 서버/백엔드
    • Express.js (가장 많이 쓰이는 경량 프레임워크)
    • Koa, Fastify, NestJS
  • 실시간 통신
    • Socket.io, ws(WebSocket)
  • 테스팅
    • Jest, Mocha, Chai
  • ORM/DB
    • Sequelize, Prisma, TypeORM, Mongoose(MongoDB)

 

5. 빌드 & 실행 도구

  • nodemon: 코드 변경 시 자동 재시작
  • webpack / Vite / esbuild: 번들러, 프론트엔드 통합할 때 사용
  • ts-node: TypeScript 실행 지원

6. 운영 & 배포

  • PM2: 프로세스 매니저 (무중단 실행, 클러스터링)
  • Docker: 컨테이너 기반 배포
  • CI/CD: GitHub Actions, GitLab CI 등과 결합