프로잉2 2025. 7. 11. 19:35
728x90

Node.js 란?

  • Node.js = 구글 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경
  • 브라우저 밖에서도 자바스크립트를 실행할 수 있게 만들어줌
  • 서버 개발, CLI 툴, 빌드 도구 등 범용적으로 활용 가능

NPM 이란?

  • Node Package Manager의 약자
  • Node.js 생태계의 패키지 관리 도구
  • 필요한 라이브러리를 검색, 설치, 관리할 수 있음
  • npm 공식 사이트 → https://www.npmjs.com/

✅ NPM 기본 사용법


1. 라이브러리 설치

프로젝트 로컬 설치

npm install 라이브러리이름
  • 예:
npm install express

→ 설치된 라이브러리는 node_modules/ 폴더에 들어감


2. 특정 버전 설치

 
npm install 패키지명@버전
  • 예:
  •  
npm install express@4.18.1

3. 전역 설치

npm install -g 패키지명
  • CLI 툴(ex: nodemon, eslint)을 설치할 때 주로 사용
  • 전역 설치된 패키지들은 시스템 어디서든 명령어로 실행 가능
  • 관지라 권한(root 권한) 필요할 때도 있음 (특히 macOS, Linux)

4. nodemon 이란?

  • Node.js 애플리케이션 개발 중 자동으로 서버 재시작해주는 툴
  • 코드 변경 → 자동 감지 → 앱 재시작
  • 개발자 필수템

nodemon 설치

로컬 설치:

npm install nodemon --save-dev

전역 설치:

npm install -g nodemon

nodemon 실행

nodemon index.js

✅ npm init

  • 프로젝트의 package.json 파일을 생성
  • 아래 명령어로 시작:
npm init
  • 빠르게 생성하고 싶으면:
npm init -y

package.json 주요 요소

예:

json
{
  "name": "my-app",
  "version": "1.0.0",
  "description": "테스트 프로젝트",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "^4.18.1"
  },
  "devDependencies": {
    "nodemon": "^3.0.0"
  }
}
  • name: 프로젝트 이름
  • version: 버전 (시맨틱 버저닝)
  • description: 설명
  • main: 진입 파일
  • scripts:
    • 커맨드 단축어 등록
    • 예: 
npm run start
    • 또는 단축형:
npm start
  • dependencies:
    • 실제 서비스에 필요한 패키지
  • devDependencies:
    • 개발용 도구 (ex. nodemon, eslint)

package-lock.json

  • 의존성 트리를 정확히 기록
  • 설치된 패키지들의 버전 고정 역할
  • 팀 프로젝트에서 동일한 환경 유지할 때 중요

✅ node_modules 관리

  • node_modules는 설치된 라이브러리들의 모음
  • 용량 큼 → 보통 Git에 올리지 않음
  • . gitignore에 꼭 추가:
     

node_modules 재설치

  • 다른 컴퓨터에서 프로젝트 복사했을 때:→ package.json 기반으로 다시 설치
npm install

버전 꼬임, 오류 해결

  • 아래 두 폴더 삭제 후 다시 설치:
rm -rf node_modules
rm package-lock.json
npm install

✅ 시맨틱 버저닝 (Semantic Versioning)

패키지 버전은 보통 세 자리로 구성됨:

  • major → 호환 깨질 정도의 큰 변화
  • minor → 새로운 기능 추가 (기존과 호환)
  • patch → 버그 수정

✅ 비유

구분 설명
major 2.0.0 큰 변화 (기존과 호환 안 됨)
minor 1.2.0 기능 추가 (호환됨)
patch 1.2.3 버그 수정
 

^, ~ 기호 의미

  • ^1.2.3 → major는 고정, minor/patch는 업그레이드 가능
  • ~1.2.3 → major/minor 고정, patch만 업그레이드 가능

✅ 정리

  • Node.js는 자바스크립트를 어디서든 돌릴 수 있게 해주는 환경
  • NPM은 라이브러리 설치, 관리의 표준 도구
  • package.json은 프로젝트의 설명서 + 설치 목록
  • node_modules는 버전 꼬이면 지우고 재설치
  • CLI 툴은 전역 설치, 라이브러리는 로컬 설치
  • 시맨틱 버저닝은 버전 관리의 필수 규칙!
728x90