Skip to content

Latest commit

ย 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ ์˜ค๋Š˜๋„ ๋งํ•จ (Degrowth Diary)

๋‚˜์œ ์Šต๊ด€์„ ๊ธฐ๋กํ•˜๋ฉด ๋ชฌ์Šคํ„ฐ๊ฐ€ ์ƒ๊ธฐ๋Š” ์—ญ์„ค์  ์ž๊ธฐ๊ณ„๋ฐœ ์•ฑ

Flutter Firebase License

App Preview

๐Ÿ“– ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

์˜ค๋Š˜๋„ ๋งํ•จ์€ "๋งํ•œ ๊ฒƒ๋„ ๊ธฐ๋ก์ด๋‹ค"๋ผ๋Š” ์ฒ ํ•™์œผ๋กœ ์‹œ์ž‘๋œ ์Šต๊ด€ ์ถ”์  ์•ฑ์ž…๋‹ˆ๋‹ค.

์™„๋ฒฝํ•œ ์ž๊ธฐ๊ณ„๋ฐœ ์•ฑ์— ์ง€์นœ ๋‹น์‹ ์„ ์œ„ํ•ด, ์‹คํŒจ์™€ ์‹ค์ˆ˜๋ฅผ ์ •์งํ•˜๊ฒŒ ๊ธฐ๋กํ•˜๋ฉด ๊ท€์—ฌ์šด(?) ๋ชฌ์Šคํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€๋„๋Ÿฌ์šด ์Šต๊ด€๋„ ์ธ์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ณ€ํ™”์˜ ์ฒซ๊ฑธ์Œ์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ํ•ต์‹ฌ ์ปจ์…‰

  • ์—ญ๋ฐœ์ƒ ๊ฒŒ์ด๋ฏธํ”ผ์ผ€์ด์…˜: ๋‚˜์œ ์Šต๊ด€ โ†’ ๋ชฌ์Šคํ„ฐ ํš๋“ โ†’ ์ปฌ๋ ‰์…˜ ๋™๊ธฐ๋ถ€์—ฌ
  • ๋‚ฎ์€ ์ง„์ž… ์žฅ๋ฒฝ: "๊ดœ์ฐฎ์•˜์–ด์š”" ๋ฒ„ํŠผ์œผ๋กœ ๋ถ€๋‹ด ์—†์ด ์ฒดํฌ์ธ
  • ํฌ๊ท€ ๋ชฌ์Šคํ„ฐ ์‹œ์Šคํ…œ: ํŠน์ • ์‹œ๊ฐ„๋Œ€/์š”์ผ์—๋งŒ ๋“ฑ์žฅํ•˜๋Š” ํ•œ์ • ๋ชฌ์Šคํ„ฐ
  • ๊ธ์ •์  ํ”ผ๋“œ๋ฐฑ: ๋ชฌ์Šคํ„ฐ๊ฐ€ ๊ฒฉ๋ คํ•ด์ฃผ๋Š” ๋”ฐ๋œปํ•œ ์„ธ๊ณ„๊ด€

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿฆ– ๋ชฌ์Šคํ„ฐ ์ปฌ๋ ‰์…˜

  • ์ง„ํ™” ์‹œ์Šคํ…œ: ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ชฌ์Šคํ„ฐ๊ฐ€ ์ง„ํ™”
  • ํฌ๊ท€๋„ ๋“ฑ๊ธ‰: Common โ†’ Rare โ†’ Epic โ†’ Legendary
  • ์†์„ฑ ์‹œ์Šคํ…œ: ์‹์Šต๊ด€, ์ˆ˜๋ฉด, ์šด๋™, ์†Œ๋น„, ์ƒ์‚ฐ์„ฑ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ชฌ์Šคํ„ฐ
  • ํ•œ์ • ๋ชฌ์Šคํ„ฐ: ์‹œ๊ฐ„๋Œ€/์š”์ผ ์กฐ๊ฑด๋ถ€ ๋“ฑ์žฅ (์˜ˆ: ์‹ฌ์•ผ ๋ฐฐ๋‹ฌ ๊ณ ๋ธ”๋ฆฐ, ๊ธˆ์š”์ผ ํญ์‹ ๋“œ๋ž˜๊ณค)

๐Ÿ“ ์Šต๊ด€ ๊ธฐ๋ก

  • ๋ฐ์ผ๋ฆฌ ์ฒดํฌ์ธ: ์˜ค๋Š˜ ์–ด๋• ๋Š”์ง€ ๊ฐ„๋‹จํžˆ ๊ธฐ๋ก
  • ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ: 5๊ฐ€์ง€ ์ฃผ์š” ์ƒํ™œ ์˜์—ญ
  • ์‹ฌ๊ฐ๋„ ์ธก์ •: 1~5๋‹จ๊ณ„๋กœ ์‹ค์ˆ˜์˜ ์ •๋„ ํ‘œ์‹œ
  • ๋ฉ”๋ชจ ๊ธฐ๋Šฅ: ์ƒํ™ฉ๊ณผ ๊ฐ์ • ๊ธฐ๋ก

๐Ÿ“Š ํ†ต๊ณ„ & ์„ฑ์žฅ

  • ์—ฐ์† ๊ธฐ๋ก์ผ: ์•ฑ ์‚ฌ์šฉ ์ŠคํŠธ๋ฆญ (๋‚˜์œ ์Šต๊ด€์ด ์•„๋‹Œ ๊ธฐ๋ก ์Šต๊ด€)
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ถ„์„: ์–ด๋–ค ์˜์—ญ์—์„œ ์ž์ฃผ ์‹ค์ˆ˜ํ•˜๋Š”์ง€ ์‹œ๊ฐํ™”
  • ๋„๊ฐ ์™„์„ฑ๋„: ์ „์ฒด ๋ชฌ์Šคํ„ฐ ์ค‘ ๋ณด์œ  ํ˜„ํ™ฉ

๐ŸŽจ UI/UX

  • ๋‹คํฌ ํ…Œ๋งˆ: ๋˜์ „ ๋А๋‚Œ์˜ ๋ชฐ์ž…๊ฐ ์žˆ๋Š” ๋””์ž์ธ
  • ๋ชฌ์Šคํ„ฐ ์„œ์‹์ง€: ๋ฉ”์ธ ํ™”๋ฉด์—์„œ ๋ชฌ์Šคํ„ฐ์™€ ์ƒํ˜ธ์ž‘์šฉ
  • ์˜ค๋Š˜์˜ ํŠน๋ณ„ ๋ชฌ์Šคํ„ฐ: ํ˜„์žฌ ํš๋“ ๊ฐ€๋Šฅํ•œ ํฌ๊ท€ ๋ชฌ์Šคํ„ฐ ํžŒํŠธ

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

Frontend

  • Flutter 3.x: Cross-platform UI framework
  • Riverpod: State management & Dependency Injection
  • GoRouter: Declarative routing
  • Freezed: Immutable data classes

Backend

  • Firebase Authentication: Google ์†Œ์…œ ๋กœ๊ทธ์ธ
  • Cloud Firestore: NoSQL ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • Firebase Storage: ์ด๋ฏธ์ง€ ์ €์žฅ (ํ–ฅํ›„)
  • Cloud Functions: ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฑ์—”๋“œ ๋กœ์ง (ํ–ฅํ›„)

Architecture

  • Clean Architecture: Domain/Data/Presentation ๋ ˆ์ด์–ด ๋ถ„๋ฆฌ
  • Repository Pattern: ๋ฐ์ดํ„ฐ ์†Œ์Šค ์ถ”์ƒํ™”
  • Entity-Model ๋ถ„๋ฆฌ: ์ˆœ์ˆ˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ Firebase ๊ตฌํ˜„์ฒด ๋ถ„๋ฆฌ

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

lib/
โ”œโ”€โ”€ app/                    # ์•ฑ ์„ค์ • (๋ผ์šฐํŒ…, ํ…Œ๋งˆ ๋“ฑ)
โ”œโ”€โ”€ core/                   # ๊ณตํ†ต ์ฝ”๋“œ
โ”‚   โ”œโ”€โ”€ constants/          # ์ƒ์ˆ˜ (์ƒ‰์ƒ, ํ…์ŠคํŠธ, ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ)
โ”‚   โ””โ”€โ”€ errors/             # ์—๋Ÿฌ ์ฒ˜๋ฆฌ
โ”œโ”€โ”€ domain/                 # ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง (Firebase ๋…๋ฆฝ)
โ”‚   โ”œโ”€โ”€ entities/           # ์ˆœ์ˆ˜ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค
โ”‚   โ””โ”€โ”€ repositories/       # ์ถ”์ƒ ์ธํ„ฐํŽ˜์ด์Šค
โ”œโ”€โ”€ data/                   # ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด
โ”‚   โ”œโ”€โ”€ models/             # DTO (JSON ์ง๋ ฌํ™”)
โ”‚   โ”œโ”€โ”€ firebase/           # Firebase ๊ตฌํ˜„์ฒด
โ”‚   โ””โ”€โ”€ local/              # Hive ๋กœ์ปฌ ์บ์‹œ (ํ–ฅํ›„)
โ”œโ”€โ”€ providers/              # Riverpod ์ƒํƒœ ๊ด€๋ฆฌ
โ””โ”€โ”€ presentation/           # UI ๋ ˆ์ด์–ด
    โ”œโ”€โ”€ screens/            # ํ™”๋ฉด๋ณ„ ํด๋”
    โ””โ”€โ”€ widgets/            # ๊ณตํ†ต ์œ„์ ฏ

์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Presentation (Widgets)             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Providers (Riverpod State)         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Domain (Entities + Interfaces)     โ”‚  โ† Firebase ๋…๋ฆฝ ๊ณ„์ธต
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Data (Firebase ๊ตฌํ˜„์ฒด)             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

์˜์กด์„ฑ ๊ทœ์น™: ์ƒ์œ„ โ†’ ํ•˜์œ„๋งŒ ์ฐธ์กฐ ๊ฐ€๋Šฅ (์—ญ๋ฐฉํ–ฅ ๊ธˆ์ง€)

๐Ÿš€ Getting Started

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Flutter SDK 3.x ์ด์ƒ
  • Dart 3.x ์ด์ƒ
  • Firebase ํ”„๋กœ์ ํŠธ ์„ค์ •
  • Android Studio / VS Code

์„ค์น˜ ๋ฐ ์‹คํ–‰

# 1. ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/yourusername/degrowth-diary.git
cd degrowth-diary

# 2. ์˜์กด์„ฑ ์„ค์น˜
flutter pub get

# 3. Firebase ์„ค์ •
# - Firebase Console์—์„œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
# - google-services.json (Android)
# - GoogleService-Info.plist (iOS)
# ํŒŒ์ผ๋“ค์„ ๊ฐ๊ฐ android/app, ios/Runner์— ์ถ”๊ฐ€

# 4. ์‹คํ–‰
flutter run

# 5. ํŠน์ • ํ”Œ๋žซํผ ์‹คํ–‰
flutter run -d chrome       # ์›น
flutter run -d android      # ์•ˆ๋“œ๋กœ์ด๋“œ
flutter run -d ios          # iOS

์ฝ”๋“œ ์ƒ์„ฑ (Freezed/JSON)

flutter pub run build_runner build --delete-conflicting-outputs

๐Ÿ“ฑ ํ™”๋ฉด ๊ตฌ์„ฑ

ํ™”๋ฉด ์„ค๋ช… ์ƒํƒœ
๐Ÿ  ํ™ˆ ๋ชฌ์Šคํ„ฐ ์„œ์‹์ง€ + ๋ฐ์ผ๋ฆฌ ์ฒดํฌ์ธ โœ… ์™„๋ฃŒ
๐Ÿ“ ๊ธฐ๋กํ•˜๊ธฐ ์Šต๊ด€ ๊ธฐ๋ก ํ”Œ๋กœ์šฐ โœ… ์™„๋ฃŒ
๐Ÿ“– ๋„๊ฐ ๋ชฌ์Šคํ„ฐ ์ปฌ๋ ‰์…˜ โœ… ์™„๋ฃŒ
๐Ÿ“Š ํ†ต๊ณ„ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ถ„์„ โœ… ์™„๋ฃŒ
๐Ÿ“œ ํžˆ์Šคํ† ๋ฆฌ ๊ณผ๊ฑฐ ๊ธฐ๋ก ์กฐํšŒ โœ… ์™„๋ฃŒ
โš™๏ธ ์„ค์ • ํ”„๋กœํ•„, ์•Œ๋ฆผ, ๊ณ„์ • โœ… ์™„๋ฃŒ
๐Ÿ† ์—…์  ๋„์ „๊ณผ์ œ ์‹œ์Šคํ…œ โœ… ์™„๋ฃŒ

๐Ÿ—บ๏ธ ๋กœ๋“œ๋งต

Phase 1: MVP (ํ˜„์žฌ)

  • ๊ธฐ๋ณธ ์ธ์ฆ (Google Login)
  • ์Šต๊ด€ ๊ธฐ๋ก CRUD
  • ๋ชฌ์Šคํ„ฐ ํ•ด๊ธˆ ์‹œ์Šคํ…œ
  • ํฌ๊ท€ ๋ชฌ์Šคํ„ฐ (์‹œ๊ฐ„/์š”์ผ ์กฐ๊ฑด)
  • ๋ฐ์ผ๋ฆฌ ์ฒดํฌ์ธ

Phase 2: ์บ๋ฆญํ„ฐ ์„ธ๊ณ„๊ด€ (์ง„ํ–‰ ์ค‘)

  • ๋ชฌ์Šคํ„ฐ ์ผ๋Ÿฌ์ŠคํŠธ ์—์…‹ ์ ์šฉ
  • ์„œ์‹์ง€ ๋ฐฐ๊ฒฝ ๋””์ž์ธ
  • ๋ชฌ์Šคํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜
  • ์‚ฌ์šด๋“œ ํšจ๊ณผ

Phase 3: ์†Œ์…œ ๊ธฐ๋Šฅ

  • ์นœ๊ตฌ ์‹œ์Šคํ…œ
  • ์›”๊ฐ„ ๋ฆฌํฌํŠธ ์นด๋“œ (SNS ๊ณต์œ ์šฉ)
  • ๋ชฌ์Šคํ„ฐ ๊ตํ™˜ ๊ธฐ๋Šฅ

Phase 4: ๊ณ ๋„ํ™”

  • ํ‘ธ์‹œ ์•Œ๋ฆผ (ํŠน๋ณ„ ๋ชฌ์Šคํ„ฐ ๋“ฑ์žฅ ์•Œ๋ฆผ)
  • ์ฃผ๊ฐ„ ๋„์ „ ๊ณผ์ œ
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”ผ๋“œ
  • ๋‹ค๊ตญ์–ด ์ง€์›

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

๊ธฐ์—ฌ๋Š” ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๋‹ค์Œ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ผ์ฃผ์„ธ์š”:

  1. ์ด ์ €์žฅ์†Œ๋ฅผ Forkํ•ฉ๋‹ˆ๋‹ค
  2. Feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค (git checkout -b feature/AmazingFeature)
  3. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค (git commit -m 'feat: Add some AmazingFeature')
  4. ๋ธŒ๋žœ์น˜์— Pushํ•ฉ๋‹ˆ๋‹ค (git push origin feature/AmazingFeature)
  5. Pull Request๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค

์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

Conventional Commits ์Šคํƒ€์ผ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค:

  • feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ
  • fix: ๋ฒ„๊ทธ ์ˆ˜์ •
  • docs: ๋ฌธ์„œ ๋ณ€๊ฒฝ
  • style: ์ฝ”๋“œ ์Šคํƒ€์ผ (ํฌ๋งทํŒ… ๋“ฑ)
  • refactor: ๋ฆฌํŒฉํ† ๋ง
  • test: ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€/์ˆ˜์ •
  • chore: ๋นŒ๋“œ/์„ค์ • ๋ณ€๊ฒฝ

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๐Ÿ“ž ์—ฐ๋ฝ์ฒ˜

ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋ฌธ์˜๋‚˜ ์ œ์•ˆ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“ ์ง€ ์—ฐ๋ฝ์ฃผ์„ธ์š”!

๐Ÿ™ ๊ฐ์‚ฌ์˜ ๋ง

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋“ค์˜ ์˜๊ฐ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค:

  • Flutter - ํฌ๋กœ์Šค ํ”Œ๋žซํผ UI ํ”„๋ ˆ์ž„์›Œํฌ
  • Riverpod - ๊ฐ•๋ ฅํ•œ ์ƒํƒœ๊ด€๋ฆฌ ์†”๋ฃจ์…˜
  • Firebase - ๋ฐฑ์—”๋“œ ์ธํ”„๋ผ

์˜ค๋Š˜๋„ ๋งํ–ˆ๋‹ค๋ฉด, ๊ธฐ๋กํ•˜์„ธ์š”. ๋ชฌ์Šคํ„ฐ๊ฐ€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿฆ–

Made with โค๏ธ and ๐Ÿ• (์•ผ์‹)


๐Ÿ“š ์ฐธ๊ณ  ๋ฌธ์„œ

ํ”„๋กœ์ ํŠธ ์ƒ์„ธ ๋ฌธ์„œ๋Š” docs/ ํด๋”๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”:

Sources:

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages