개발자 성장 로드맵/프론트엔드
NPM 기초 완전 정리
프로잉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