ν루μ κΈ°λΆμ κΈλ‘ λ¨κΈ°λ©΄, AIκ° κ°μ μ λΆμν΄ λμκ² κΌ λ§λ κ°μ ν€μλλ₯Ό μΆμ²ν΄μ€μ.
λ§μμ λλ κ°μ μ κ³ λ₯΄λ©΄, μ§κΈμ λμ μ΄μΈλ¦¬λ μμ
κΉμ§ ν¨κ» μΆμ²ν΄μ£Όλ κ°μ κΈ°λ° μΌκΈ° μλΉμ€, Feelody!
κ°μ κ³Ό μμ
μ μ°κ²°ν΄μ£Όλ νΉλ³ν μΌκΈ° μ΅κ΄, Feelodyμμ λΉμ μ ν루λ₯Ό κΈ°λ‘ν΄λ³΄μΈμ. π§ππ
π£οΈ νλ‘μ νΈ λ°ν μμ & λ°ν λ¬Έμ
λ©μΈν
μκ°νμ΄μ§
μμ
λ‘κ·ΈμΈ
λ‘κ·ΈμΈ μν μ²λ¦¬
λμΌ μ΄λ©μΌ μ²λ¦¬
νμκ°μ
νλ‘ν
λ§μ΄νμ΄μ§
λ§μ΄νμ΄μ§ μμ
λ‘κ·Έμμ
νμνν΄
μΌκΈ°μμ± - κ°μ λΆμ
μΌκΈ°μμ± - λΆμμ€ν¨
μΌκΈ°μμ± - κΈ°λ³Έκ°μ
κ°μ μ ν - μΌκΈ° ν리뷰
μμ
μΆμ² μ±κ³΅ - μΌκΈ°μ μ₯
μμ
μΆμ² μ€ν¨ - μΌκΈ°μ μ₯
μΌκΈ°μ μ₯
μΌκΈ°μμ
μΌκΈ°κ²μ
κ°μ μ°¨νΈ
νμ΄λ 컨νμ°½
μμ±μ€λ¨ 컨νμ°½
main / dev λΈλμΉ κΈ°λ³Έ μμ±
mainκ³Ό devλ‘ μ§μ push μ ν
PR μ μ΅μ 2μΈ μ΄μ μΉμΈ νμ
μ μ ν μ»€λ° μ λμ¬ μμ±
μ»€λ° λ©μμ§ λ΄μ© μμ±
μ λμ¬
μ΄λͺ¨μ§
μ€λͺ
Feat
β¨
μλ‘μ΄ κΈ°λ₯ μΆκ°
Fix
π
κΈ°λ₯ μμ λ° λ²κ·Έ μμ
Chore
π‘
μ€ν μμ , μ£Όμ μΆκ° λ± κΈ°λ₯ λ³κ²½ μμ΄ μ½λ μμ
Docs
π
λ¬Έμ μμ (μ: README.md)
Build
π
λΉλ κ΄λ ¨ νμΌ μμ λλ μμ
Test
β
ν
μ€νΈ μ½λ μΆκ° λ° μμ (νλ‘λμ
μ½λ λ³κ²½ μμ)
Refactor
β»οΈ
μ½λ 리ν©ν λ§ (κΈ°λ₯ λ³ν μμ΄ κ΅¬μ‘° κ°μ )
Hotfix
π
κΈ΄κΈ μμ
μ λͺ©μ '[Feat]/#μ΄μλ²νΈ/ν νμ΄μ§ ꡬν'κ³Ό κ°μ΄ μμ±ν©λλ€ [FE]
μ λͺ©μ 'β¨/ν νμ΄μ§ ꡬν'κ³Ό κ°μ΄ μμ±ν©λλ€ [BE]
ꡬ체μ μΈ μμ
λ΄μ©μ μμ±ν΄μ£ΌμΈμ.
μ΄λ―Έμ§λ₯Ό λ³λλ‘ μ²¨λΆνλ©΄ λ μ’μ΅λλ€ π
μΆν λ
Όμν μ μ λν΄ μμ±ν΄μ£ΌμΈμ.
BE
ν¨ν€μ§λͺ
μ 체 μλ¬Έμ
FE
ESLint, Prettier μ¬μ©νμ¬ λ€μ¬μ°κΈ°, λ°μ΄ν ν΅μΌ
νμΌ λ° ν΄λλͺ
: camelCase (ex. userProfile.tsx)
μ»΄ν¬λνΈ: PascalCase (ex. UserProfile.tsx)
λ³μ λ° ν¨μ: camelCase (ex. fetchUserData)
μμ:UPPER_SNAKE_CASE (ex. API_BASE_URL)
μ΄λ²€νΈ νΈλ€λ¬:handleEventName (ex. handleClick)
axios κΈ°λ° API λͺ¨λν
μ μ μνκ΄λ¦¬ : Zustand
μλ² μνκ΄λ¦¬: React Query
λΆνμν 리λ λλ§ μ΅μν
Zep, Discord νμ©
μ€μ 10μ 20λΆ μ κΈ° νμ (30λΆ)
π API λͺ
μΈμ μμ
π μꡬμ¬ν μ μμ μμ
π ERD μμ
π ν
μ΄λΈ λͺ
μΈμ μμ
π νλ©΄ μ μμ μμ )