mohaemukzip_FE_Repo
λ°λ³΅λλ 'λν΄ λ¨Ήμ§'λ₯Ό μ§λ°₯ 루ν΄μΌλ‘ λ°κΎΈλ€, λν΄λ¨Ήμ§?
| νμ 1 | νμ 2 | νμ 3 |
|---|
| κ³ μν | μ΄νκ²° | μ΄μν |
- μ 체 κΈ°κ°:
2025.12.20 - 2025.02.20 - κ°λ° κΈ°κ°:
2025.12.20 - 2025.02.20
For building and running the application you need:
iOS 18.2
Xcode 16.2
Swift 6.0
- Front : SwiftUI
- λ²μ λ° μ΄μ κ΄λ¦¬ : Github, Github Issues
- νμ ν΄ : Discord, Notion
main- μ ν μΆμ λΈλμΉdev- μΆμλ₯Ό μν΄ κ°λ°νλ λΈλμΉfeat/xx- κΈ°λ₯ λ¨μλ‘ λ 립μ μΈ κ°λ° νκ²½μ μν΄ μμ±refac/xx- κ°λ°λ κΈ°λ₯μ 리ν©ν λ§ νκΈ° μν΄ μμ±hotfix/xx- μΆμ λ²μ μμ λ°μν λ²κ·Έλ₯Ό μμ νλ λΈλμΉchore/xx- λΉλ μμ , ν¨ν€μ§ λ§€λμ μ€μ λ±design/xx- λμμΈ λ³κ²½bugfix/xx- λ²κ·Έ μμ
- λ³μμ μμλ
camelCaseλ₯Ό μ¬μ©νλ€. - ν΄λμ€, ꡬ쑰체, μ΄κ±°ν, SwiftUI View λ±μ νμ
μ
PascalCaseλ₯Ό μ¬μ©νλ€.
- νλΌλ―Έν° μ΄λ¦μ κΈ°μ€μΌλ‘ μ€λ°κΏ νλ€.
let actionSheet = UIActionSheet(
title: "μ λ§ κ³μ μ μμ νμ€ κ±΄κ°μ?",
delegate: self,
cancelButtonTitle: "μ·¨μ",
destructiveButtonTitle: "μμ ν΄μ£ΌμΈμ"
)- if let κ΅¬λ¬Έμ΄ κΈΈ κ²½μ°μ μ€λ°κΏ νλ€
if let user = self.veryLongFunctionNameWhichReturnsOptionalUser(),
let name = user.veryLongFunctionNameWhichReturnsOptionalName(),
user.gender == .female {
// ...
}- View λ΄λΆλ
Properties β Body β FunctionsμμΌλ‘ ꡬμ±νλ€.` - λμ€μ μΆκ°λ‘ μμ
ν΄μΌ ν λΆλΆμ λν΄μλ
// TODO: - xxx μ£Όμμ λ¨κΈ°λλ‘ νλ€. - μ½λμ μΉμ
μ λΆλ¦¬ν λλ
// MARK: - xxx μ£Όμμ λ¨κΈ°λλ‘ νλ€. - ν¨μμ λν΄ μ λΆ μ£Όμμ λ¨κΈ°λλ‘ νμ¬ λ¬΄μ¨ μ‘μ μ νλμ§ μ μ μλλ‘ νλ€.`
- λ²νΌ, μ λ ₯μ°½ λ± μμ£Ό μ¬μ©λλ UIλ μ»΄ν¬λνΈλ‘ λΆλ¦¬νμ¬ μ¬μ¬μ©νλ€.
- PR μ, ν
νλ¦Ώμ΄ λ±μ₯νλ€. ν΄λΉ ν
νλ¦Ώμμ μμ±ν΄μΌν λΆλΆμ μλμ κ°λ€
PR μ ν μμ±, μ΄λ€ λ³κ²½ μ¬νμ΄ μμλμ§ [] κ΄νΈ μ¬μ΄μ xλ₯Ό μ λ ₯νμ¬ μ²΄ν¬ν μ μλλ‘ νλ€.μμ λ΄μ© μμ±, μμ λ΄μ©μ λν΄ μμΈνκ² μμ±μ νλ€.μ€ν¬λ¦°μ·, μμ ν νλ©΄μ μ€ν¬λ¦°μ·ν΄μ μ¬λ¦°λ€.리뷰 ν¬μΈνΈ, λ³ΈμΈ PRμμ κΌ νμΈν΄μΌ ν λΆλΆμ μμ±νλ€.PR νκ·Έ μ’ λ₯, PR μ λͺ©μ νκ·Έλ μλ νμμ λ°λ₯Έλ€.
| νκ·Έ | μ€λͺ |
|---|---|
| [Feat] | μλ‘μ΄ κΈ°λ₯ μΆκ° |
| [Fix] | λ²κ·Έ μμ |
| [Refactor] | μ½λ 리ν©ν λ§ (κΈ°λ₯ λ³κ²½ μμ΄ κ΅¬μ‘° κ°μ ) |
| [Style] | μ½λ ν¬λ§·ν , λ€μ¬μ°κΈ° μμ λ± |
| [Docs] | λ¬Έμ κ΄λ ¨ μμ |
| [Test] | ν μ€νΈ μ½λ μΆκ° λλ μμ |
| [Chore] | λΉλ/μ€μ κ΄λ ¨ μμ |
| [Design] | UI λμμΈ μμ |
| [Hotfix] | μ΄μ μ€ κΈ΄κΈ μμ |
| [CI/CD] | λ°°ν¬ λ° μν¬νλ‘μ° κ΄λ ¨ μμ |
[Chore] νλ‘μ νΈ μ΄κΈ° μΈν
[Feat] νλ‘ν νλ©΄ UI ꡬν
[Fix] iOS 17μμ λ²νΌ ν΄λ¦ μ€λ₯ μμ
[Design] λ‘κ·ΈμΈ νλ©΄ λ μ΄μμ μ‘°μ
[Docs] READMEμ νλ‘μ νΈ μκ° μΆκ°
| νκ·Έ | μ€λͺ |
|---|---|
| [Feat] | μλ‘μ΄ κΈ°λ₯ μΆκ° |
| [Fix] | λ²κ·Έ μμ |
| [Refactor] | μ½λ 리ν©ν λ§ (κΈ°λ₯ λ³κ²½ μμ΄ κ΅¬μ‘° κ°μ ) |
| [Style] | μ½λ ν¬λ§·ν , μΈλ―Έμ½λ‘ λλ½, λ€μ¬μ°κΈ° μμ λ± |
| [Docs] | README, λ¬Έμ μμ |
| [Test] | ν μ€νΈ μ½λ μΆκ° λ° μμ |
| [Chore] | ν¨ν€μ§ λ§€λμ μ€μ , λΉλ μ€μ λ± κΈ°ν μμ |
| [Design] | UI, CSS, λ μ΄μμ λ± λμμΈ κ΄λ ¨ μμ |
| [Hotfix] | μ΄μ μ€ κΈ΄κΈ μμ μ΄ νμν λ²κ·Έ λμ |
| [CI/CD] | λ°°ν¬ κ΄λ ¨ μ€μ , μν¬νλ‘μ° κ΅¬μ± λ± |
[Chore] νλ‘μ νΈ μ΄κΈ° μΈν
[Feat] νλ‘ν νλ©΄ UI ꡬν
[Fix] iOS 17μμ λ²νΌ ν΄λ¦ μ€λ₯ μμ
[Design] λ‘κ·ΈμΈ νλ©΄ λ μ΄μμ μ‘°μ
[Docs] READMEμ νλ‘μ νΈ μκ° μΆκ°
weady
βββ Resources
β βββ Fonts // 컀μ€ν
ν°νΈ κ΄λ ¨ νμΌ
β βββ Assets.xcassets // μ΄λ―Έμ§ λ° μ»¬λ¬ μμ
λ±
β
βββ Service // API κ΄λ ¨ λ€νΈμν¬ λ μ΄μ΄
β βββ [API μ΄λ¦ ν΄λ] // μ: Auth, Board, Comment λ±
β βββ Endpoints // API Endpoint μ μ
β βββ RequestDTOs // μμ² λͺ¨λΈ μ μ
β βββ ResponseDTOs // μλ΅ λͺ¨λΈ μ μ
β βββ Service // μ€μ API νΈμΆμ λ΄λΉνλ μλΉμ€ ν΄λμ€
β
βββ Sources
β βββ Common // μ± μ λ°μμ 곡ν΅μΌλ‘ μ¬μ©νλ μ½λ
β β βββ Components // κ³΅ν΅ UI μ»΄ν¬λνΈ
β β βββ Extensions // Swift κΈ°λ³Έ νμ
,SwiftUI νμ₯
β β βββ Navigation // λΌμ°ν
λ° λ€λΉκ²μ΄μ
κ΄λ ¨ μ½λ
β β βββ Utilities // Helper, Manager, Constants λ± μ νΈλ¦¬ν°μ± μ½λ
β β
β βββ Feature // κΈ°λ₯ λ¨μλ‘ λΆλ¦¬λ ν΄λ (MVVM ꡬ쑰)
β βββ [Feature μ΄λ¦] // μ: Login, Weadyboard, Comment λ±
β βββ View // SwiftUI View
β βββ ViewModel // μν λ° λ‘μ§ μ²λ¦¬
β βββ Model // λλ©μΈ λͺ¨λΈ μ μ