π μλΉμ€ λ§ν¬: https://say-cheese.me
| κΉκ·ν | κΉκ±΄μ° |
|---|---|
frontend |
frontend |
-
Language & Framework
- Next.js 15
- React
- TypeScript
-
State & Data Management
- Zustand
- TanStack Query
-
UI Utilities
- Tailwind CSS
- shadcn/ui
- Framer Motion
- Lucide Icons
-
Testing
- Vitest
-
CI/CD
- GitHub Actions
src
βββ app # π Next.js App Router (νμ΄μ§ μνΈλ¦¬)
β
βββ components
β βββ ui # π¨ κ³΅ν΅ UI μ»΄ν¬λνΈ (shadcn κΈ°λ°)
β
βββ feature # π¦ λλ©μΈ λ¨μ κΈ°λ₯ λͺ¨λ (components, hooks, utils, svg, constants ν΄λλ‘ κ΅¬μ±)
β βββ album # πΈ μ¨λ² λλ©μΈ
β β βββ 4cut # ποΈ μΉμ¦λ€μ»· μμ± / λ λλ§
β β βββ detail # πΌοΈ μ¨λ² μμΈ νλ©΄
β β βββ qrcode # π³ μ¨λ² QR μ½λ μμ±
β βββ album-entry # πͺ μ¨λ² μ
μ₯ νλ‘μ°
β βββ album-select # π μ¨λ² μ ν νλ©΄
β βββ create-album # π μ¨λ² μμ±
β βββ login # π λ‘κ·ΈμΈ / μΈμ¦ νλ‘μ°
β βββ main # π λ©μΈ νλ©΄
β βββ mypage # πββοΈ λ§μ΄νμ΄μ§
β βββ onboarding # π μ¨λ³΄λ©
β βββ photo-detail # πΌοΈ μ¬μ§ μμΈ
β βββ photo-entry # π₯ μ¬μ§ μ
λ‘λ μ
μ₯
β βββ root # π³ λλ©νμ΄μ§
β βββ term # π μ½κ΄
β βββ upload # β¬οΈ μ¬μ§ μ
λ‘λ
β
βββ global # π μ μ μ€μ / κ³΅ν΅ λͺ¨λ
β βββ api # π API ν΄λΌμ΄μΈνΈ / μλν¬μΈνΈ
β βββ components # π§© κΈλ‘λ² κ³΅ν΅ μ»΄ν¬λνΈ
β βββ constants # π§± μμ
β βββ context # βοΈ μ»¨ν
μ€νΈ νλ‘λ°μ΄λ
β βββ hooks # πͺ κ³΅μ© Hooks
β βββ svg # πΌοΈ SVG μμ
β βββ types # π§Ύ νμ
μ μ
β βββ utils # π§ κ³΅μ© μ νΈλ¦¬ν° ν¨μ
β
βββ store # ποΈ Zustand μ€ν μ΄ex. feat : μ¨λ²λκ°κΈ° λ²νΌμΆκ°
| Type | λ΄μ© |
|---|---|
feat |
μλ‘μ΄ κΈ°λ₯ ꡬν |
chore |
λΆμμ μΈ μ½λ μμ λ° κΈ°ν λ³κ²½μ¬ν |
docs |
λ¬Έμ μΆκ° λ° μμ , μμ |
fix |
λ²κ·Έ μμ |
test |
ν μ€νΈ μ½λ μΆκ° λ° μμ , μμ |
refactor |
μ½λ 리ν©ν λ§ |
