NPM 마스터 클래스 Ep 6. 안전하고 빠른 NPM 생활 (npx, audit, ci)
지금까지 NPM의 기본 기능부터 배포까지 알아봤습니다. 마지막으로, 더 똑똑하고 안전하게 NPM을 사용하는 3가지 꿀팁을 전수해 드립니다.
---
1. 설치 없이 실행한다: npx
예전에는 패키지를 실행하려면 먼저 설치(`npm install`)를 해야 했습니다. 하지만 `npx`를 쓰면 "설치하지 않고 한 번만 실행"할 수 있습니다.
언제 쓰나요?
* `create-react-app`처럼 프로젝트를 만들 때 한 번만 쓰고 버리는 도구들.
* 내 컴퓨터에 지저분하게 설치하기 싫을 때.
# 설치 없이 리액트 프로젝트 생성
npx create-react-app my-app
2. 보안 취약점 점검: npm audit
내가 쓰는 패키지에 해커가 침입할 수 있는 구멍(취약점)이 있다면 큰일이겠죠?
NPM은 설치된 패키지들을 검사해서 위험한지 알려주는 기능을 내장하고 있습니다.
npm audit
이 명령어를 치면 "당신의 패키지 중 3개가 위험합니다!" 같은 리포트를 보여줍니다.
운이 좋으면 `npm audit fix` 명령어로 자동으로 고칠 수도 있습니다.
3. CI/CD 환경을 위한: npm ci
서버 배포 자동화(CI/CD)를 할 때, `npm install` 대신 `npm ci`를 써야 한다는 사실, 알고 계셨나요?
* `npm install`: `package.json`을 보고 설치하며, `package-lock.json`을 수정할 수도 있습니다. (개발자용)
* `npm ci` (Clean Install): 무조건 `package-lock.json`과 똑같이 설치하며, 절대 파일을 수정하지 않습니다. (로봇/서버용)
`npm ci`는 `node_modules`를 아예 지우고 새로 깔끔하게 설치하기 때문에 훨씬 빠르고 안정적입니다. 젠킨스(Jenkins)나 깃허브 액션(GitHub Actions)에서는 꼭 `npm ci`를 쓰세요!
---
🎉 시리즈를 마치며
축하합니다! 이제 여러분은 `npm install`만 겨우 하던 초보에서, `package-lock.json`을 이해하고 배포와 보안까지 챙기는 NPM 마스터가 되었습니다.
1. NPM 기초: `package.json`의 역할
2. 의존성 관리: `dependencies` vs `devDependencies`
3. 스크립트: `npm run`으로 자동화
4. 협업: `package-lock.json`의 중요성
5. 배포: `npm publish`로 오픈소스 기여
6. 심화: `npx`, `audit`, `ci`
이제 어떤 Node.js 프로젝트를 만나도 자신 있게 `npm install`을 외치세요! 그동안 수고하셨습니다! 👋