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`을 외치세요! 그동안 수고하셨습니다! 👋