Eternal Victory Frontend Wiki - hyein07100/eternal-victory-frontend GitHub Wiki
π νλ‘μ νΈ μμ± λͺ λ Ήμ΄
npx create-next-app@latest ev-frontend --typescript
β μ νμ¬ν ESLint: β
Tailwind: β
src λλ ν 리: β
App Router: β
import alias: β
π¬ 컨벀μ
π» μ½λ 컨벀μ
λ³μ : μΉ΄λ©μΌμ΄μ€+μ«μ (μ : productData
, selectedOption
)
γ΄ λ³μ ν λΉκ°μ΄ boolreanμΌ κ²½μ°: isλ₯Ό μ λμ¬λ‘ (const isLoading = false;
)
μμ : λλ¬Έμ, λ¨μ΄ ν©μ±μ μΈλμ€μ½μ΄
const BASE_URL = "http://localhost:3000/"
ν¨μ : νμ΄ν ν¨μ μμ±
const page = () => {}
π ν΄λ
-
ν΄λλͺ : μλ¬Έμλ‘ μμ±νκΈ° μ΄μ΄μ§λ λ¨μ΄
-
μμ) : user-id -
νμΌλͺ : ν¨μλͺ μ΄λ λμΌνκ² μμ±νκΈ°
μ»΄ν¬λνΈ νμΌ : νμ€μΉΌ μΌμ΄μ€ (μ:
ProductDetail.tsx
,Header.tsx
)μ€νμΌ μνΈ νμΌ : μ€νμΌ μ μ©ν νμΌλͺ +.styled (μ :
ProductDetail.styled.tsx
,Header.styled.tsx
)
π μ»€λ° μ»¨λ²€μ
[νμ ] λ μ§ ID μ λͺ© #μ΄μλ²νΈ
"[νμ ] <λ μ§> μ λͺ© #μ΄μλ²νΈ" μ νμμΌλ‘ μ λͺ© μμ±
μ λͺ©μ 20μ μ΄λ΄ / λ³κ²½μ¬νμ΄ "무μ"μΈμ§ λͺ νν μμ± / λμ λ§μΉ¨ν κΈμ§
μ)
git commit -m "μ»€λ° νκ·Έ: μ»€λ° λ΄μ© (#μ΄μλ²νΈ)"
[Feat] 01/21 μ΄κΈ° νλ‘μ νΈ μμ±
- init: μ²μ λΉλ
- feat: μλ‘μ΄ κΈ°λ₯ μΆκ°
- fix: λ²κ·Έ, μ€λ₯ ν΄κ²°
- docs: READMEλ WIKI λ±μ λ¬Έμ μμ
- remove: ν΄λ λλ νμΌ μμ , μΈλͺ¨μλ μ½λ μμ
- rename: νμΌ μ΄λ¦ λ³κ²½ λλ νμΌ μ΄λ
- refactor: κΈ°λ₯ μΆκ°λ λ²κ·Έ μμ μ΄ μλ μ½λ λ³κ²½ (μ½λ ꡬ쑰 λ³κ²½ λ±μ 리ν©ν λ§)
- style: μ½λ formatting, μΈλ―Έμ½λ‘ λλ½ λ± μ½λ μ체μ λ³κ²½μ΄ μλ κ²½μ°
- design: CSS λ± μ¬μ©μ UI λμμΈ λ³κ²½
- test: ν μ€νΈ μ½λ, 리ν©ν λ§ ν μ€νΈ μ½λ μΆκ°
- chore: src λλ test νμΌμ μμ νμ§ μλ κΈ°ν λ³κ²½ μ¬ν (λΉλ/ν¨ν€μ§ λ§€λμ μ€μ λ³κ²½ λ±)
- merge: merge νλ κ²½μ°
- !BREAKING CHANGE: 컀λ€λ API λ³κ²½μ κ²½μ°
- !HOTFIX: κΈνκ² μΉλͺ μ μΈ λ²κ·Έλ₯Ό κ³ μ³μΌ νλ κ²½μ°
α λΈλμΉ μ»¨λ²€μ
main
: λ°°ν¬μ©
develop
: κ°λ°μ©
feat/μ΄μλ²νΈ-κΈ°λ₯ feat/22-login
git push origin feat/22-login
νΈμ¬ ν github νμ΄μ§μμ devleopμΌλ‘ PR, merge νκΈ°
π ν΄λ ꡬ쑰
κΈ°λ₯ λΆλ¦¬μ κ΄μ¬μ¬ λΆλ¦¬λ₯Ό κ³ λ €ν Next.js + Spring API μ°λ νλ‘μ νΈ κ΅¬μ‘°μ λλ€.
/src
βββ app/ # Next.js App Router (page.tsx λ±)
β βββ api/ # App Routerμ API route (Next.js μλ²)
β
βββ components/ # Dumb μ»΄ν¬λνΈ (UI μ μ©)
β
βββ constants/ # μμκ° μ μ (api endpoint, enums λ±)
β
βββ domain/
β βββ repositories/ # μΆμ μΈν°νμ΄μ€ (ex. DiaryRepository.ts)
β βββ models/ # (μ ν) λλ©μΈ λͺ¨λΈ μ μ (Diary.ts λ±)
β
βββ application/
β βββ usecases/ # λΉμ¦λμ€ λ‘μ§ (μλΉμ€ μ€μ¬ κ³μΈ΅)
β βββ diary/
β βββ dto/ # λ°μ΄ν° μ λ¬ κ°μ²΄ (ex. CreateDiaryDTO.ts)
β βββ createDiary.ts
β
βββ infrastructure/
β βββ repositories/ # μ€μ API ꡬν체 (ex. DiaryHttpRepository.ts)
β
βββ utils/ # λ²μ© μ νΈ ν¨μ
β μ€κ³ μ² ν
- app/: Next.js App Router μ μ© λλ ν 리, λΌμ°ν λ§ λ΄λΉ
- features/: κΈ°λ₯ λ¨μλ‘ ν , UI, μλΉμ€κ° λͺ¨μ¬ μλ κ³ cohesion ꡬ쑰
- domain/: μμν λΉμ¦λμ€ λͺ¨λΈ μ μ, μΈλΆ μμ‘΄ μμ
- repositories/: κΈ°λ₯ μꡬλ₯Ό μΆμνν interface
- infra/: μ€μ API ꡬν (fetch/axios λ±)
- components/: Dumb UIλ§ λ΄λΉνλ μ¬μ¬μ© μ»΄ν¬λνΈ
- constants/: API baseURL, μν κ°, routes λ± κ³ μ κ°
- utils/: ν¬λ§·ν°, λ³νκΈ° λ± λΉμ¦λμ€μ 무κ΄ν μ νΈ ν¨μ
π§ μ½μ§ κΈ°λ‘
λ μ§ | λ΄μ© | μμΈ | ν΄κ²° |
---|---|---|---|
2025-05-28 | dev λΈλμΉ push μΆ©λ | GitHub dev λΈλμΉμ README μ»€λ° μ‘΄μ¬ | git push -f origin dev λ‘ κ°μ νΈμ |
π νκ³
- Git μΆ©λμ νμ λ‘컬 vs μ격 μ΄λ ₯ μ°¨μ΄ λλ¬Έ β push μ
pull
νμΈ μ΅κ΄ν
π λ°°ν¬ νμ€ν 리
Vercel μ€μ
νλͺ© | κ° |
---|---|
νλ‘μ νΈ μ΄λ¦ | eternal-victory-frontend |
λ°°ν¬ λꡬ | Vercel |
μ°λ λΈλμΉ | main only (Preview λΈλμΉ λ―Έμ¬μ©) |
λ°°ν¬ μ΄λ ₯
λ μ§ | λΈλμΉ | λ°°ν¬ λ΄μ© |
---|---|---|
2025-05-28 | main | ν μ€νΈ νμ΄μ§ μ΅μ΄ λ°°ν¬ |