26장. Node와 package graph를 재현한다
NestJS 11은 Node 20 이상을 요구하며 이 책은 Node 24를 고정한다. node --version, npm --version, npm ci, npm test, npm run build, production start를 새 clone에서 순서대로 실행한다. npm install이 조용히 lockfile을 바꿨다면 그대로 커밋하지 않고 direct·transitive dependency 변화와 engine 조건을 검토한다. CI와 container도 같은 major를 쓴다.
package.json에는 engine과 exact 핵심 framework version을 기록하고 lockfile을 release artifact로 보존한다. install script가 native binary나 network를 실행하는지 확인한다. npm audit 숫자만으로 위험을 판정하지 않고 production 도달 경로, exploit 조건, vendor fix, 임시 통제를 issue에 기록한다. 취약점을 감추기 위해 무관한 major upgrade를 한꺼번에 적용하지 않는다.
.env.example은 이름·형식·설명만 담고 secret은 넣지 않는다. configuration schema가 누락·잘못된 URL·음수 timeout을 startup에서 거부해야 한다. IDE run configuration 없이 CLI와 container에서 같은 health를 반환해야 첫 실습을 통과한다.