본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

npm이 여전히 기본값인 이유

~10 min · npm, overview, javascript

Level 0입문자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

npm, 즉 Node Package Manager는 2009년 Node.js와 함께 나온 뒤 JavaScript 패키지 관리의 기본값이 되었어. 이 퀘스트의 다른 도구보다 오래되었고 덜 영리하며 느리기도 해. 하지만 모든 기여자의 컴퓨터에 이미 있다고 기대할 수 있고, 모든 CI 이미지가 지원하며, 거의 모든 JavaScript 안내서가 전제로 삼아. 이 보편적인 기준점이 npm의 가장 큰 힘이고 지금도 기본값으로 남는 이유야.

Node.js 24와 함께 제공되는 npm v11은 Node.js ^20.17.0 || >=22.9.0이 필요해. 최근에는 캐시 개선으로 설치가 빨라졌고, --ignore-scripts가 모든 lifecycle script에 적용되어 보안이 강화됐어. npm init도 조용히 기본값을 택하는 대신 ESM과 CommonJS 중 무엇을 쓸지 물어봐.

한계도 분명해. 평평한 node_modules 구조 때문에 package.json에 선언하지 않은 패키지를 우연히 불러오는 phantom dependencies가 생길 수 있어. 설치 속도는 pnpm이나 Bun보다 느리고, 예를 들어 Next.js 설치가 약 57초로 약 9초인 도구보다 훨씬 오래 걸릴 수 있지. package-lock.json은 장황해 병합 충돌이 잦고, 내장 monorepo 지원도 pnpm이나 Yarn만큼 강하지 않아.

그래도 가장 큰 장점은 변하지 않아. 이미 어디에나 있다는 것이야. 취미 프로젝트, 오픈 소스 라이브러리, 도구 선택에 확신이 없는 팀에는 npm이 안전한 기본값이야. 설치 속도나 monorepo 지원이 실제 문제가 될 때 pnpm이나 Bun을 검토하면 돼.

Code

Node.js와 함께 설치되는 도구·bash
# Homebrew 로 Node install (또는 nvm, fnm, mise, asdf, ...)
brew install node

# npm 이 번들 — 공짜로 받음
node --version    # v22.x.x or v24.x.x
npm --version     # 10.x or 11.x

# npx (일회용 패키지 runner) 도 번들
npx --version

External links

Exercise

'npm --version'과 'node --version'을 실행해. Node가 없다면 Homebrew로 설치해('brew install node'). 임시 디렉터리를 만든 다음 'npm init -y'를 실행하고 생성된 package.json을 읽어 봐. 각 필드는 의미가 있으며, 이 파일이 모든 JavaScript 도구가 공유하는 중심이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.