02-reusable-page β νμ΄μ§ λ 벨 μ¬μ¬μ© μ»΄ν¬λνΈ
νλ‘μ νΈμ 볡μ¬νμ¬ μ¬μ©νλ νμ΄μ§ λ 벨 μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬
κ°μ
νλ©΄μ λ
립λ μμ(Footer, Header, Hero, Sidebar λ±)μ ν΅μ§Έλ‘ κ°μ Έκ°λ μμ±λ μΉμ
μ»΄ν¬λνΈλ₯Ό κ΄λ¦¬ν©λλ€. 02-reusable-code/μ μμμ λΆνμ μ‘°ν©νκ³ , 02-reusable-design/μ λμμΈ ν ν°μ μ μ©ν κ²°κ³Όλ¬Όμ
λλ€.
3κ³μΈ΅ λͺ¨λΈμμμ μμΉ
02-reusable-design β "μ¬λ£" (μμ, ν°νΈ, μ λλ©μ΄μ
μ μ)
β μ°Έμ‘°
02-reusable-code β "λΆν" (Button, hooks, utils)
β μ‘°ν©
02-reusable-page β "μμ±ν" β
(Footer, Header, Hero)
| κ³μΈ΅ | νλ¨ κΈ°μ€ | μμ |
|---|
| design | κ°/μ€μ μΈκ°? | --color-primary: #6366f1, @keyframes fadeIn |
| code | λμνλ μ½λμΈκ°? | useDebounce(), <Button>, formatDate() |
| page | νλ©΄μ ν μμμΈκ°? | <Footer>, <HeroSection>, <Sidebar> |
pageμ λ£λ κ²
- νμ΄μ§μ λ
립λ μμ (Header, Footer, Hero, CTA, Pricing)
- code μ»΄ν¬λνΈλ₯Ό μ‘°ν©ν μμ±λ μΉμ
- μ¬λ¬ νλ‘μ νΈμμ "ν΅μ§Έλ‘ κ°μ Έκ°λ" λ¨μ
pageμ λ£μ§ μλ κ²
- λ¨λ
UI μ»΄ν¬λνΈ (
<Button>, <Card>) β 02-reusable-code
- μμ μ€νμΌ μ μ (CSS λ³μ, ν€νλ μ) β
02-reusable-design
- μ 체 νμ΄μ§ (
page.tsx) β νλ‘μ νΈ νΉν, λ무 ν° λ¨μ
νΈνμ±
| νλͺ© | μ΅μ λ²μ |
|---|
| TypeScript | 5.0+ |
| React | 18+ |
| Next.js | 14+ (App Router) |
| Tailwind CSS | 3.4+ |
ν΄λ ꡬ쑰
02-reusable-page/
βββ README.md # μ΄ νμΌ
βββ footer/ # Footer μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬
βββ README.md # μμΈ λ¬Έμ
βββ _shared/
β βββ types.ts # κ³΅ν΅ νμ
/μΈν°νμ΄μ€
β βββ i18n.ts # EN/KO λΌλ²¨
βββ footer-corporate.tsx # κΈ°μ
ν (λ€ν¬ λ°°κ²½, μ°λ½μ², μ¬μ
μ μ 보)
βββ footer-saas.tsx # SaaSν (shadcn ν
λ§, μμ
λ§ν¬)
βββ footer-i18n.tsx # i18n μ§μν (t() ν¨μ μ£Όμ
, μν νμκΈ°)
βββ footer-minimal.tsx # λ―Έλλ©ν (μ΅μ ꡬ쑰, κ²½λ)
μΉ΄ν
κ³ λ¦¬λ³ μΈλ±μ€
Footer (4κ° λ³ν)
| νμΌ | λ³ν | νΉμ§ | μΆμ² |
|---|
footer-corporate.tsx | κΈ°μ
ν | λ€ν¬ λ°°κ²½, 4컬λΌ, μ°λ½μ²+μ¬μ
μμ 보 | silvercare-master |
footer-saas.tsx | SaaSν | shadcn ν
λ§, μμ
λ§ν¬, ν¬λ λ§ | monet-registry |
footer-i18n.tsx | i18n μ§μν | t() ν¨μ μ£Όμ
, μμ€ν
μν νμκΈ° | secure-vault |
footer-minimal.tsx | λ―Έλλ©ν | μ΅μ ꡬ쑰, κ°μ₯ λΉ λ₯Έ μ μ© | galaxy-con |
곡μ λͺ¨λ (2κ°)
| νμΌ | μ©λ |
|---|
footer/_shared/types.ts | κ³΅ν΅ νμ
/μΈν°νμ΄μ€ 8κ° |
footer/_shared/i18n.ts | EN/KO λΌλ²¨ (Corporate, SaaS, Minimal) |
μμ‘΄μ± λ§€νΈλ¦μ€
| ν¨ν€μ§ | Corporate | SaaS | I18n | Minimal |
|---|
next/link | O | O | O | O |
next/image | β³ | - | - | - |
lucide-react | O | - | - | - |
tailwindcss | O | O | O | O |
| shadcn CSS λ³μ | - | O | O | β³ |
O: νμ, β³: μ ν, -: λΆνμ
μ¬μ© λ°©λ²
- νμν λ³νμ
.tsx νμΌμ νλ‘μ νΈμ 볡μ¬
_shared/types.tsμ _shared/i18n.tsλ ν¨κ» 볡μ¬
- import κ²½λ‘λ₯Ό νλ‘μ νΈμ λ§κ² μμ
- μμΈ μ¬μ©λ²μ κ° λ³νμ JSDocκ³Ό
footer/README.md μ°Έμ‘°
μΆμΆ μ΄λ ₯
| λ μ§ | μΆμ² | μΆμΆ νλͺ© |
|---|
| 2026-02-18 | silvercare-master (260214 + 260114 λ³ν©) | footer-corporate.tsx |
| 2026-02-18 | monet-registry-main (260114) | footer-saas.tsx |
| 2026-02-18 | secure-vault-master (260116) | footer-i18n.tsx |
| 2026-02-18 | galaxy-con (260218) | footer-minimal.tsx |
κ΄λ ¨ λ¬Έμ