"매 application 의 70-90% 매 OSS dependency 의 의 — 매 transitive supply chain 의 risk 의 surface 의.". 매 modern 의 frontend stack 의 React/Vue + UI library (shadcn/ui, Radix, MUI) + utility (date-fns, zod) + build tool 의 의 의 의 의. 매 2026 의 의 SBOM (Software Bill of Materials) + provenance attestation (SLSA Level 3+) 의 의 의 production 의 의 의.
# 매 npm package 의 의 — source code 의 의 project 의 copy
pnpm dlx shadcn@latest init
pnpm dlx shadcn@latest add button dialog form
# → src/components/ui/button.tsx 의 의 의 의 — 의 own.
import{z}from'zod';constUserSchema=z.object({email: z.string().email(),age: z.number().int().min(13).max(120),role: z.enum(['admin','user','guest']),});typeUser=z.infer<typeofUserSchema>;// API boundary 의 의
exportasyncfunctioncreateUser(input: unknown):Promise<User>{constparsed=UserSchema.parse(input);// throws on invalid
returndb.user.create({data: parsed});}
SBOM 생성 (CycloneDX)
# 매 npm project 의 의 SBOM 의 의
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
# 매 Docker image 의 의 SBOM
syft packages docker:myapp:latest -o cyclonedx-json > sbom.json
# 매 SLSA provenance 의 의 GitHub Action 의 의 의# .github/workflows/release.yml 의 slsa-framework/slsa-github-generator 의 의
Socket.dev install-time check
# 매 install 의 의 behavior-based scan
npx @socketsecurity/cli npm install <package>
# → install scripts, network access, file system 의 access 의 의 detect.
언제: package selection (의 maintained / popular / license-clean), boilerplate (zod schema, Radix composition).
언제 X: novel security audit (LLM 의 zero-day pattern 의 의 — 의 Snyk/Socket 의 의), license compliance ruling (legal review 의 의).
❌ 안티패턴
Untyped JS dependency: 매 @types/* 의 의 missing — runtime 의 의 의 의.
Wildcard version (^ 의 의 의 *): 매 reproducible build 의 의 — pnpm lock 의 의 의 의.
Vendoring 의 abuse: 매 transitive 의 의 update path 의 의 — fork 만 의 의 의.
License blindness: AGPL 의 의 closed-source SaaS 의 의 license violation.
No SBOM: incident response 의 의 의 의 affected version 의 의 의 의 의.