npm 설치 방법, Node.js 받기부터 첫 패키지 설치까지 직접 해 보니
맥(Apple 실리콘)에서 Node.js 24.22.1 LTS 공식 파일을 받아 npm 설치부터 첫 패키지 설치까지 해 봤습니다. 내려받기는 4.7초, 나머지 단계는 각각 0.9초 이하였습니다. 명령과 출력, 단계별 시간, 다른 설치 방법을 고르는 기준까지 담았습니다.
Finn ·

맥(Apple 실리콘)에서 nodejs.org의 LTS 파일인 Node.js 24.22.1(51M)을 받아 npm 설치까지 끝내 보면, 내려받기에 4.7초가 걸리고 나머지 단계는 각각 0.9초 이하로 끝납니다. npm은 따로 받지 않아도 됩니다. 압축을 풀면 node와 함께 npm 11.19.1이 들어 있죠. AI 코딩 도구에게 프로젝트 준비를 맡기기 전에 이 순서를 한 번 손으로 따라가 두면, 에이전트가 낸 오류를 읽기도 쉬워집니다.
따라 할 순서 한눈에 보기
첫 명령을 실행하기 전에 새 빈 폴더를 만들고 그 폴더로 이동합니다.
mkdir npm-install-walk && cd npm-install-walk아래 아홉 단계는 모두 이 폴더 안에서, 한 터미널 창에서 차례대로 실행하면 됩니다. 단계 중에 node 폴더를 만들고 npm init과 패키지 설치를 하므로, 기존 제품 프로젝트 폴더에서는 실행하지 않는 편이 좋습니다. 측정도 새 임시 폴더 하나 안에서만 했고, 컴퓨터에 원래 있던 다른 Node.js는 건드리지 않았습니다. 명령과 출력은 단계별 절에서 하나씩 보여 드립니다.
- 컴퓨터 확인: CPU 종류와 macOS 버전을 봅니다.
- Node.js 내려받기: nodejs.org에서 LTS 압축 파일을 받습니다.
- 체크섬 확인: 받은 파일이 공식 체크섬과 같은지 봅니다.
- 압축 풀기: 파일을 풀고 폴더 이름을
node로 바꿉니다. - PATH에 넣고 버전 확인:
node와npm버전을 확인합니다. - 새 프로젝트 만들기:
package.json을 만듭니다. - 패키지 설치:
dayjs를 설치합니다. - 설치한 패키지 써 보기: 한 줄 코드로 실행해 봅니다.
- 설치 내역 보기: 설치된 패키지 목록을 확인합니다.
함께 읽을 글
단계마다 시간은 얼마나 걸리나요?
아래 표는 새 임시 폴더에서 위 명령을 한 번씩 실행하며 잰 값입니다. 모든 단계의 종료 코드는 0이었어요.
| 단계 | 걸린 시간 |
|---|---|
| 1. 컴퓨터 확인 | 0.0초 |
| 2. Node.js 내려받기 | 4.7초 |
| 3. 체크섬 확인 | 0.2초 |
| 4. 압축 풀기 | 0.6초 |
| 5. PATH에 넣고 버전 확인 | 0.9초 |
| 6. 새 프로젝트 만들기 | 0.2초 |
| 7. 패키지 설치 | 0.4초 |
| 8. 설치한 패키지 써 보기 | 0.0초 |
| 9. 설치 내역 보기 | 0.2초 |

가장 오래 걸린 단계는 내려받기였습니다. 다만 이 값은 네트워크 속도에 따라 달라지니, 다른 단계와 견주는 기준으로만 보세요. 그럼 첫 단계부터 명령을 보겠습니다.
Node.js 파일을 받고 확인하는 방법
먼저 내 맥이 Apple 실리콘인지 확인합니다. arm64가 나오면 darwin-arm64 파일을 받으면 되죠.
$ uname -m && sw_vers -productVersion
arm64
27.0.1다음으로 Node.js 다운로드 페이지에 LTS로 표시된 v24.22.1 파일을 받습니다. 같은 페이지에 v26.12.1(Current)도 있지만, npm 문서는 LTS 표시가 붙은 버전을 설치하라고 안내합니다.
$ curl -fsSLO https://nodejs.org/dist/v24.22.1/node-v24.22.1-darwin-arm64.tar.gz && ls -lh node-v24.22.1-darwin-arm64.tar.gz | awk '{print $5, $9}'
51M node-v24.22.1-darwin-arm64.tar.gz그런데 받은 파일이 공식 파일과 같은지는 어떻게 알까요? 같은 경로의 SHASUMS256.txt에서 해당 줄을 골라 대조하면 됩니다. OK가 나오면 통과입니다.
$ curl -fsSL https://nodejs.org/dist/v24.22.1/SHASUMS256.txt | grep 'node-v24.22.1-darwin-arm64.tar.gz$' | shasum -a 256 -c -
node-v24.22.1-darwin-arm64.tar.gz: OK이제 압축을 풀고 폴더 이름을 짧게 바꿉니다. bin 폴더 안을 보면 npm이 어디서 오는지 바로 보여요.
$ tar -xzf node-v24.22.1-darwin-arm64.tar.gz && mv node-v24.22.1-darwin-arm64 node && ls node/bin
corepack
node
npm
npxNode.js를 설치하면 npm도 같이 오나요?
네, 같이 옵니다. 위 출력처럼 node/bin에는 node 옆에 npm, npx, corepack이 함께 들어 있습니다. npm 공식 문서도 패키지를 설치하려면 버전 관리 도구나 설치 프로그램으로 Node.js와 npm 명령줄 도구를 설치하라고 안내하죠. 그래서 'node js 설치'와 'npm 설치'는 사실상 같은 작업입니다.

PATH 설정과 버전 확인은 어떻게 하나요?
풀어 둔 node/bin을 PATH 맨 앞에 넣고, 어느 파일이 잡히는지와 버전을 확인합니다.
$ export PATH="$PWD/node/bin:$PATH" && which node npm && node -v && npm -v
./node/bin/node
./node/bin/npm
v24.22.1
11.19.1이 기록은 단계마다 새 셸에서 실행해서 뒤의 모든 명령 앞에 export를 다시 붙였습니다. 한 터미널 창에서 이어서 따라 한다면 한 번만 적으면 됩니다. 이럴 때는 주의하세요. AI 에이전트가 명령마다 새 셸을 연다면, 이 기록처럼 명령 앞에 PATH 설정을 매번 붙여 달라고 지시해야 같은 node가 잡힙니다. 창을 새로 연 뒤에도 이 설정을 유지하는 방법은 이번 근거 문서들이 다루지 않습니다.
첫 프로젝트에 패키지를 설치하는 방법
npm init -y는 질문 없이 기본값으로 package.json을 만듭니다. 이름은 폴더 이름(walk)을 따라갔어요.
$ export PATH="$PWD/node/bin:$PATH" && npm init -y
Wrote to ./package.json:
{
"name": "walk",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs"
}이어서 dayjs를 버전까지 지정해 설치합니다. --cache는 이 측정의 캐시를 임시 폴더에 두려고 붙인 옵션입니다.
$ export PATH="$PWD/node/bin:$PATH" && npm install dayjs@1.11.23 --cache ./npm-cache && ls
added 1 package, and audited 2 packages in 320ms
found 0 vulnerabilities
npm notice
npm notice New major version of npm available! 11.19.1 -> 12.2.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.2.1
npm notice To update run: npm install -g npm@12.2.1
npm notice
node
node-v24.22.1-darwin-arm64.tar.gz
node_modules
npm-cache
package-lock.json
package.json설치가 끝나면 node_modules와 package-lock.json이 생깁니다. 에이전트와 함께 작업한다면 이렇게 버전을 지정해 설치하고 잠금 파일을 남겨 두는 편이, 나중에 같은 환경을 다시 만들 때 확인할 거리를 줄여 줍니다. 출력에 나온 npm 12.2.1 안내는 알림일 뿐이고, 설치 자체는 끝난 상태예요.
정말 쓸 수 있는지는 한 줄로 확인해 보세요. 2026-10-26에 7일을 더한 날짜가 나오면 됩니다.
$ export PATH="$PWD/node/bin:$PATH" && node -e "const dayjs = require('dayjs'); console.log(dayjs('2026-10-26').add(7, 'day').format('YYYY-MM-DD'))"
2026-11-02설치 내역은 어떻게 확인하나요?
npm ls는 이 프로젝트에 설치된 패키지를 트리로 보여 줍니다. 함께 실행한 npm config get prefix는 npm의 전역 설치 위치(prefix) 설정값을 출력하죠.
$ export PATH="$PWD/node/bin:$PATH" && npm ls && npm config get prefix
walk@1.0.0 .
`-- dayjs@1.11.23
/opt/homebrew예를 들어 여기서는 prefix가 압축을 푼 폴더가 아니라 /opt/homebrew로 나왔습니다. 왜 이 값이 나왔는지는 이 측정만으로는 가를 수 없습니다. 전역 설치(-g)를 할 계획이라면, 그 전에 이 명령으로 위치부터 확인해 보세요. 그래야 패키지가 의도한 곳에 들어가는지 알 수 있습니다.
맥에서 다른 설치 방법은 뭐가 있나요?
이 글은 공식 압축 파일을 직접 푸는 방식으로 진행했습니다. 하지만 npm 문서가 먼저 권하는 방법은 따로 있어요. 문서가 말하는 기준은 이렇습니다.
| 방법 | 공식 문서의 안내 | 맞는 경우 |
|---|---|---|
버전 관리 도구 (nvm, n) | 강력히 권장. 여러 버전을 설치하고 바꿔 쓸 수 있음 | 여러 Node.js 버전에서 앱을 시험해야 할 때 |
| 설치 프로그램 (Node.js 다운로드 페이지) | 권장하지 않음. 전역 패키지 실행 시 권한 오류가 날 수 있음 | 버전 관리 도구를 쓸 수 없을 때 |
| 미리 빌드된 파일 (이 글의 방식) | 다운로드 페이지에서 제공 | 폴더 하나에 풀어 PATH로 지정해 쓰고 싶을 때 |
설치 프로그램을 쓴다면 LTS 표시가 붙은 버전을 고르세요. npm 문서는 다른 버전이 아직 npm과 함께 시험되지 않았다고 밝힙니다. 어떤 방법을 고르든 첫 확인은 같습니다. node -v와 npm -v로 이미 설치되어 있는지와 버전을 보면 됩니다. npm만 최신으로 올리려면 문서에 나온 npm install -g npm을 쓰면 됩니다.

막힐 때 확인할 것
명령이 실패했다면 원인을 단정하기 전에 아래부터 하나씩 보세요.
- 파일 종류:
uname -m이arm64인데 다른 아키텍처 파일을 받지 않았는지 - 체크섬:
OK가 나오지 않았다면 그 파일로 진행하지 않기 - PATH:
which node npm이 방금 푼node/bin을 가리키는지 - 새 창이나 새 셸: 다시 열었다면 PATH 설정을 다시 적었는지
- 전역 설치: 설치 프로그램으로 Node.js를 넣었다면 전역 패키지 실행 때 권한 오류가 날 수 있다는 점(npm 문서 안내)
마지막 점검 목록은 다음과 같습니다.
node -v가v24.22.1,npm -v가11.19.1로 나오는지- 프로젝트 폴더에
package.json과package-lock.json이 있는지 npm ls에 설치한 패키지가 보이는지
측정 조건과 한계
측정은 2026-10-26 16:20 KST에 macOS 27.0.1(Apple 실리콘, arm64) 맥 한 대에서 했습니다. 명령은 새 임시 폴더 하나에서 한 번씩만 실행했고, 컴퓨터에 원래 있던 다른 Node.js는 건드리지 않았습니다. 그래서 시간은 반복 측정한 평균이 아니고, 특히 내려받기 시간은 네트워크 속도에 따라 크게 달라질 수 있어요. 윈도우와 리눅스 설치는 다루지 않았습니다.
참고 자료
- Download Node.js® nodejs.org
- Downloading and installing Node.js and npm docs.npmjs.com