[official skill] μΉ μν°ν©νΈ λΉλ
μ΄ μ€ν¬μ React + TypeScript κΈ°λ°μ νλ‘ νΈμλ μ½λλ₯Ό λ¨μΌ HTML νμΌλ‘ λ²λ€λ§νμ¬ claude.ai μν°ν©νΈλ‘ μ 곡νλ λꡬμ λλ€.
π μ°Έκ³ : μ΄ λ¬Έμλ 곡μ Claude Code λ¬Έμμ μλ¬Έ + λ νΌλ°μ€μ λλ€.
- μλ¬Έ λ§ν¬λ₯Ό μ§μ μ¬μ©νμ λ λ©λλ€
- μ΄ νμΌμ
.claude/skills/νμμ 볡μ¬νμ¬ μ€ν¬λ‘ λ±λ‘ν μλ μμ΅λλ€(2026.03.15 κΈ°μ€)
μΉ μν°ν©νΈ λΉλ
κ°λ ₯ν νλ‘ νΈμλ claude.ai μν°ν©νΈλ₯Ό ꡬμΆνλ €λ©΄, λ€μ λ¨κ³λ₯Ό λ°λ₯΄μΈμ:
scripts/init-artifact.shλ₯Ό μ¬μ©νμ¬ νλ‘ νΈμλ μ μ₯μλ₯Ό μ΄κΈ°νν©λλ€- μμ±λ μ½λλ₯Ό νΈμ§νμ¬ μν°ν©νΈλ₯Ό κ°λ°ν©λλ€
scripts/bundle-artifact.shλ₯Ό μ¬μ©νμ¬ λͺ¨λ μ½λλ₯Ό λ¨μΌ HTML νμΌλ‘ λ²λ€λ§ν©λλ€- μ¬μ©μμκ² μν°ν©νΈλ₯Ό νμν©λλ€
- (μ ν μ¬ν) μν°ν©νΈλ₯Ό ν μ€νΈν©λλ€
κΈ°μ μ€ν: React 18 + TypeScript + Vite + Parcel (λ²λ€λ§) + Tailwind CSS + shadcn/ui
λμμΈ λ° μ€νμΌ κ°μ΄λλΌμΈ
λ§€μ° μ€μ: νν "AI μ¬λ‘"μ΄λΌ λΆλ¦¬λ κ²μ νΌνκΈ° μν΄, κ³Όλν μ€μ μ λ ¬ λ μ΄μμ, 보λΌμ κ·ΈλΌλ°μ΄μ , κ· μΌν λ₯κ·Ό λͺ¨μ리, Inter ν°νΈ μ¬μ©μ νΌνμΈμ.
λΉ λ₯Έ μμ
1λ¨κ³: νλ‘μ νΈ μ΄κΈ°ν
μ΄κΈ°ν μ€ν¬λ¦½νΈλ₯Ό μ€ννμ¬ μλ‘μ΄ React νλ‘μ νΈλ₯Ό μμ±ν©λλ€:
bash scripts/init-artifact.sh <project-name>
cd <project-name>
μ΄κ²μ λ€μμ΄ μμ ν ꡬμ±λ νλ‘μ νΈλ₯Ό μμ±ν©λλ€:
- React + TypeScript (Vite κΈ°λ°)
- Tailwind CSS 3.4.1κ³Ό shadcn/ui ν λ§ μμ€ν
- κ²½λ‘ λ³μΉ(
@/) κ΅¬μ± - 40κ° μ΄μμ shadcn/ui μ»΄ν¬λνΈ μ¬μ μ€μΉ
- λͺ¨λ Radix UI μμ‘΄μ± ν¬ν¨
- Parcel λ²λ€λ§ κ΅¬μ± (.parcelrc μ¬μ©)
- Node 18+ νΈνμ± (μλ κ°μ§ λ° Vite λ²μ κ³ μ )
2λ¨κ³: μν°ν©νΈ κ°λ°
μν°ν©νΈλ₯Ό λΉλνλ €λ©΄, μμ±λ νμΌμ νΈμ§ν©λλ€. μλ΄λ μλμ μΌλ°μ μΈ κ°λ° μμ μ μ°Έμ‘°νμΈμ.
3λ¨κ³: λ¨μΌ HTML νμΌλ‘ λ²λ€λ§
React μ±μ λ¨μΌ HTML μν°ν©νΈλ‘ λ²λ€λ§νλ €λ©΄:
bash scripts/bundle-artifact.sh
μ΄κ²μ bundle.htmlμ μμ±ν©λλ€ β λͺ¨λ JavaScript, CSS, μμ‘΄μ±μ΄ μΈλΌμΈλ μ체 ν¬ν¨ μν°ν©νΈμ
λλ€. μ΄ νμΌμ Claude λνμμ μν°ν©νΈλ‘ μ§μ 곡μ ν μ μμ΅λλ€.
μꡬ μ¬ν: νλ‘μ νΈμ λ£¨νΈ λλ ν 리μ index.htmlμ΄ μμ΄μΌ ν©λλ€.
μ€ν¬λ¦½νΈκ° νλ μΌ:
- λ²λ€λ§ μμ‘΄μ± μ€μΉ (parcel, @parcel/config-default, parcel-resolver-tspaths, html-inline)
- κ²½λ‘ λ³μΉ μ§μμ΄ ν¬ν¨λ
.parcelrcκ΅¬μ± μμ± - Parcelλ‘ λΉλ (μμ€λ§΅ μμ)
- html-inlineμ μ¬μ©νμ¬ λͺ¨λ μμ μ λ¨μΌ HTMLλ‘ μΈλΌμΈν
4λ¨κ³: μ¬μ©μμκ² μν°ν©νΈ 곡μ
λ§μ§λ§μΌλ‘, λ²λ€λ HTML νμΌμ λνμμ μ¬μ©μμκ² κ³΅μ νμ¬ μν°ν©νΈλ‘ λ³Ό μ μκ² ν©λλ€.
5λ¨κ³: μν°ν©νΈ ν μ€νΈ/μκ°ν (μ ν μ¬ν)
μ°Έκ³ : μ΄κ²μ μμ ν μ νμ μΈ λ¨κ³μ λλ€. νμνκ±°λ μμ²λ κ²½μ°μλ§ μννμΈμ.
μν°ν©νΈλ₯Ό ν μ€νΈ/μκ°ννλ €λ©΄, μ¬μ© κ°λ₯ν λꡬ(λ€λ₯Έ μ€ν¬μ΄λ Playwright λλ Puppeteer κ°μ λ΄μ₯ λꡬ ν¬ν¨)λ₯Ό μ¬μ©νμΈμ. μΌλ°μ μΌλ‘, μμ²κ³Ό μμ±λ μν°ν©νΈλ₯Ό λ³Ό μ μλ μμ μ¬μ΄μ μ§μ°μ΄ μΆκ°λλ―λ‘ μν°ν©νΈλ₯Ό 미리 ν μ€νΈνλ κ²μ νΌνμΈμ. μν°ν©νΈλ₯Ό μ μν ν, μμ²μ΄ μκ±°λ λ¬Έμ κ° λ°μν κ²½μ°μ λμ€μ ν μ€νΈνμΈμ.
μ°Έμ‘°
- shadcn/ui μ»΄ν¬λνΈ: https://ui.shadcn.com/docs/components