728x90
실무하면서 다시 꺼내보게 된 Node.js 의존성 이야기
실무를 하다 보면 완전히 새로운 걸 만드는 것보단,
기존 코드에 기능을 추가하거나 유지보수하는 일이 훨씬 많죠.
그러다 보니 잊고 지냈던 친구들... dependencies
와 devDependencies
를 다시 정리해보게 됐습니다.
dependencies (실행 의존성)
프로덕션 환경(=서비스 환경)에서 애플리케이션을 실행할 때 필수적인 라이브러리
npm install express
- 위처럼
express
를 설치하면 서버를 구성하는 핵심 라이브러리죠? - 이건 실제 서비스 구동에 꼭 필요한 라이브러리니까
dependencies
에 등록됩니다. - 예시:
- express
- axios
- sequelize
- mongoose
- jsonwebtoken
devDependencies (개발 의존성)
개발할 때만 필요한 도구들. 프로덕션 빌드엔 포함되지 않음.
npm install nodemon eslint prettier --save-dev
- 코드 변경 시 자동 재시작해주는
nodemon
- 코드 스타일 맞춰주는
eslint
,prettier
- 테스트 도구들 (
jest
,mocha
,supertest
)
이런 것들은 개발 편의를 위한 도구들이고,
운영 서버에서는 실행되지 않아요. 그래서 devDependencies
에 포함됩니다.
정리 요약
구분 | 언제 필요한가? | 설치 명령어 |
---|---|---|
dependencies | 실제 앱 실행 시 | npm install 모듈명 |
devDependencies | 개발/테스트/빌드 도중 | npm install 모듈명 --save-dev |
실무 팁
- 배포 시
NODE_ENV=production
으로 설정하면,devDependencies
는 설치되지 않음 - Dockerfile에서도
npm ci --only=production
으로 최적화 가능 - 개발 도구가 프로덕션에 포함되지 않도록 주의할 것!
간단하지만 실무에서 헷갈리기 쉬운 포인트.
기초일수록 다시 한 번 복습해두면 분명 도움이 됩니다 🙂
반응형
'언어 · 런타임' 카테고리의 다른 글
JavaScript 출력 최적화 - 백준에서 console.log() 쓰면 안 되는 이유 (0) | 2025.05.11 |
---|