π UMC 10κΈ° λ°λͺ¨λ°μ΄ λμ μμ Β· BEXCO, 2026
Muffinμ κ²½μ Β·κΈμ΅ λ΄μ€λ₯Ό μ½κ³ μ¬λ―Έμκ² νμ΅ν μ μλλ‘ λλ λͺ¨λ°μΌ μΉμ±μ λλ€.
μ¬μ©μλ λ΄μ€λ₯Ό μ½κ³ , ν΄μ¦λ₯Ό νκ³ , λͺ¨μν¬μλ₯Ό μ§ννλ©° κ²½μ κ°λ μ μμ°μ€λ½κ² νμ΅ν μ μμ΅λλ€.
- μλΉμ€: https://muffin.ai.kr
| λ¨Έν | μ΄λ¦ | μν | λ΄λΉ μ 무 | GitHub |
|---|---|---|---|---|
| ν©μ€μ¬ | Frontend | ν, μΈμ¦, μ¨λ³΄λ©, ν΄μ¦ νλ©΄ ꡬν | @D5-wq | |
| μ μμ | Frontend | λͺ¨μν¬μ νλ©΄ λ° ν¬μ νλ‘μ° κ΅¬ν | @ay-yoo | |
| νμκ²½ | Frontend | μμ΅ ν΅κ³, λνΉ νλ©΄ ꡬν | @seokyun9 | |
| μ ν΄μ°¬ | Frontend | λ΄μ€, λ΄μ€ μμΈ, νμ΅ μ μ₯μ νλ©΄ ꡬν | @hchnnn |
| μν | μ’ λ₯ |
|---|---|
| Core | |
| Programming Language | |
| Styling | |
| Data Fetching | |
| Code Quality | |
| Package Manager | |
| Version Control |
| ν΄λ | μ€λͺ |
|---|---|
assets |
μ΄λ―Έμ§, μμ΄μ½ λ± μ μ 리μμ€ κ΄λ¦¬ |
components |
κ³΅ν΅ μ¬μ¬μ© μ»΄ν¬λνΈ κ΄λ¦¬ |
layouts |
κ³΅ν΅ λ μ΄μμ κ΄λ¦¬ (MobileLayout, NavLayout, TopBarLayout) |
lib |
API μμ²Β·μΈμ¦Β·μΊλ¦ν° λ± λλ©μΈ λ‘μ§ λ° μ νΈ κ΄λ¦¬ |
pages |
νμ΄μ§ λ¨μ μ»΄ν¬λνΈ κ΄λ¦¬ (λλ©μΈλ³ νμ ν΄λλ‘ κ΅¬μ±) |
routes |
λΌμ°ν
μ€μ κ΄λ¦¬ (router.tsx) |
types |
TypeScript νμ κ΄λ¦¬ |
| λΈλμΉ | μ©λ |
|---|---|
main |
λ°°ν¬μ© λΈλμΉ, μ§μ push κΈμ§ |
dev |
κ°λ° ν΅ν© λΈλμΉ, PRλ‘λ§ λ¨Έμ§ |
feat/μ΄μλ²νΈ-κΈ°λ₯λͺ
|
κΈ°λ₯ κ°λ° |
fix/μ΄μλ²νΈ-λ²κ·Έλͺ
|
λ²κ·Έ μμ |
chore/μ΄μλ²νΈ-μμ
λͺ
|
νκ²½ μ€μ , ν¨ν€μ§ λ³κ²½ λ± κΈ°ν μμ |
docs/μ΄μλ²νΈ-λ¬Έμλͺ
|
λ¬Έμ μμ± λ° μμ |
μμ:
feat/12-login-page
fix/15-bottom-nav-icon
chore/4-project-setting
docs/7-readme| νμ | μ€λͺ |
|---|---|
feat |
μ κΈ°λ₯ μΆκ° |
fix |
λ²κ·Έ μμ |
style |
UI μ€νμΌ λ³κ²½ |
refactor |
μ½λ 리ν©ν λ§ |
chore |
μ€μ , ν¨ν€μ§ λ³κ²½ |
docs |
λ¬Έμ μμ |
remove |
νμΌ λλ μ½λ μμ |
rename |
νμΌ λλ ν΄λλͺ μμ |
μ»€λ° νμ:
νμ
: μμ
λ΄μ©μμ:
feat: λ‘κ·ΈμΈ νμ΄μ§ ꡬν
fix: νλ¨ ν μμ΄μ½ μ€λ₯ μμ
chore: λͺ¨λ°μΌ λ μ΄μμ λ° λΌμ°ν
ꡬ쑰 μΈν
docs: README μμ±- PR μ λͺ©μ
[νμ ] μμ λ΄μ©νμμΌλ‘ μμ±ν©λλ€. - PRμ
devλΈλμΉλ‘λ§ μμ±ν©λλ€. - λ¨Έμ§ μ μ΅μ 1λͺ μ΄μμ 리뷰λ₯Ό λ°μ΅λλ€.
- λ¨μ
LGTMλ§ λ¨κΈ°λ 리뷰λ μ§μνκ³ , μ€μ§μ μΈ μ½λ 리뷰 μ½λ©νΈλ₯Ό μμ±ν©λλ€. - PR λ³Έλ¬Έμ κ΄λ ¨ μ΄μ λ²νΈλ₯Ό μ°κ²°ν©λλ€.
PR μ λͺ© μμ:
feat: λ‘κ·ΈμΈ νμ΄μ§ ꡬν
fix: νλ¨ ν μμ΄μ½ μ€λ₯ μμ
chore: λͺ¨λ°μΌ λ μ΄μμ λ° λΌμ°ν
ꡬ쑰 μΈν
docs: README μμ±κ΄λ ¨ μ΄μ μμ± μμ:
resolves #12git clone https://github.com/money-pin/muffin-front.gitcd muffin-frontpnpm install루νΈμ .env νμΌμ λ§λ€κ³ μλ κ°μ μ±μλλ€. (.env.example μ°Έκ³ )
# API μλ² base URL (λ μ¬λμ μμ΄)
VITE_API_BASE_URL=https://api.muffin.ai.kr
# Google OAuth Client ID (Google Cloud Console > μ¬μ©μ μΈμ¦ μ 보)
VITE_GOOGLE_CLIENT_ID=your-google-client-id
.envλ 컀λ°νμ§ μμ΅λλ€(.gitignoreμ²λ¦¬). κ°μ νμμ 곡μ λ°μ μ€μ νμΈμ.
pnpm devκ°λ° μλ² μ€ν ν μλ μ£Όμλ‘ μ μν©λλ€.
http://localhost:5173/| λͺ λ Ήμ΄ | μ€λͺ |
|---|---|
pnpm dev |
κ°λ° μλ² μ€ν |
pnpm build |
νλ‘λμ λΉλ |
pnpm preview |
λΉλ κ²°κ³Ό 미리보기 |
pnpm lint |
ESLint κ²μ¬ μ€ν |
| νλ©΄ μ΄λ¦ | νμ΄μ§ ID | μ§μ κ²½λ‘ |
|---|---|---|
| μ€νλμ | SplashPage |
/splash |
| λ‘κ·ΈμΈ | LoginPage |
/login |
| νμκ°μ | SignupPage |
/signup |
| μ¨λ³΄λ© | OnboardingPage |
/onboarding |
| ν | HomePage |
/home |
| ν΄μ¦ | QuizPage |
/quiz |
| λ΄μ€ λͺ©λ‘ | NewsPage |
/news |
| λ΄μ€ μμΈ | NewsDetailPage |
/news/:newsId |
| νμ΅ μ μ₯μ | MyStoragePage |
/my/storage |
| λͺ¨μν¬μ | InvestPage |
/invest |
| μμ΅ ν΅κ³ | StatsPage |
/invest/stats |
| μμ΅ λ΄μ | ProfitHistoryPage |
/invest/profit-history |
| λνΉ | RankingPage |
/invest/ranking |
| λ§μ΄νμ΄μ§ | MyPage |
/my |
| μ€μ | MySettingsPage |
/my/settings |
| Not Found | NotFoundPage |
* |
μ€νλμ / μ§μ
βββ λ‘κ·ΈμΈ μ¬λΆ νμΈ
βββ λΉλ‘κ·ΈμΈ μ¬μ©μ β λ‘κ·ΈμΈ / νμκ°μ
βββ λ‘κ·ΈμΈ μ¬μ©μ
βββ μ¨λ³΄λ© λ―Έμλ£ β μ¨λ³΄λ©
βββ μ¨λ³΄λ© μλ£ β ν
ν
βββ μ€λμ ν΄μ¦ β ν΄μ¦
βββ λ΄μ€ μΉ΄λ β λ΄μ€ μμΈ
βββ νλ¨ ν β λ΄μ€ / λͺ¨μν¬μ / λ§μ΄νμ΄μ§
βββ λͺ¨μν¬μ ν β μμ΅ ν΅κ³ / λνΉλ³Έ νλ‘μ νΈλ λͺ¨λ°μΌ μΉμ± κΈ°μ€μΌλ‘ μ μλ©λλ€.
- κΈ°μ€ λμμΈ μ¬μ΄μ¦:
390px - PC λΈλΌμ°μ μμλ νλ©΄μ΄ μ€μ μ λ ¬λ©λλ€.
- μ€μ νμ΄μ§λ
MobileLayoutλ΄λΆμμ λ λλ§λ©λλ€.
μ 체 λΈλΌμ°μ νλ©΄
βββ MobileLayout
βββ κ° νμ΄μ§