개발지식/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 등과 결합
