Skip to content

Latest commit

ย 

History

History
77 lines (60 loc) ยท 2.73 KB

File metadata and controls

77 lines (60 loc) ยท 2.73 KB

DailyDev Architecture

๋ ˆ์ด์–ด ๊ตฌ์กฐ

App (iOS / macOS)
  โ””โ”€ Features
       โ””โ”€ Core / DesignSystem
            โ””โ”€ Domain
                 โ””โ”€ Data / Entity

์˜์กด์„ฑ์€ ๋‹จ๋ฐฉํ–ฅ. ์ƒ์œ„ ๋ ˆ์ด์–ด๋งŒ ํ•˜์œ„ ๋ ˆ์ด์–ด๋ฅผ ์ฐธ์กฐํ•˜๋ฉฐ, ์—ญ๋ฐฉํ–ฅ ์ฐธ์กฐ๋Š” ๊ธˆ์ง€.

App
 โ”œโ”€โ”€ Features      โ† TCA Reducer + View, DependencyClient ์กฐ๋ฆฝ
 โ”œโ”€โ”€ Core          โ† ํฌ๋กœ์Šค์ปคํŒ… ์ธํ„ฐํŽ˜์ด์Šค (Analytics, CrashReporting, AppEnvironment)
 โ”œโ”€โ”€ DesignSystem  โ† ๋””์ž์ธ ํ† ํฐ + ์žฌ์‚ฌ์šฉ UI ์ปดํฌ๋„ŒํŠธ
 โ””โ”€โ”€ (transitive)
      โ”œโ”€โ”€ Domain   โ† Repository ํ”„๋กœํ† ์ฝœ + UseCase
      โ”œโ”€โ”€ Data     โ† ๋„คํŠธ์›Œํฌ ๊ตฌํ˜„์ฒด (Supabase, REST)
      โ””โ”€โ”€ Entity   โ† ์ˆœ์ˆ˜ ๋„๋ฉ”์ธ ๋ชจ๋ธ

๊ฐ ๋ ˆ์ด์–ด ํ•œ ์ค„ ์ฑ…์ž„

๋ ˆ์ด์–ด ์ฑ…์ž„ ์„ธ๋ถ€ ๊ทœ์น™
App ์ง„์ž…์ , SDK ์ดˆ๊ธฐํ™”, ๋ฃจํŠธ Store ์ƒ์„ฑ App/iOS/CLAUDE.md
Features TCA Reducer + View, DependencyClient Modules/Features/CLAUDE.md
Core SDK ์—†๋Š” ์ˆœ์ˆ˜ ์ธํ„ฐํŽ˜์ด์Šค Modules/Core/CLAUDE.md
DesignSystem ๋””์ž์ธ ํ† ํฐ, ๊ธฐ์ดˆ ์ปดํฌ๋„ŒํŠธ Modules/DesignSystem/CLAUDE.md
Domain Repository ํ”„๋กœํ† ์ฝœ, UseCase Modules/Domain/CLAUDE.md
Data Repository ๊ตฌํ˜„์ฒด, DTOโ†’Entity Modules/Data/CLAUDE.md
Entity ์ˆœ์ˆ˜ ๋„๋ฉ”์ธ ๋ชจ๋ธ Modules/Entity/CLAUDE.md

์ „์ฒด ๋ฐ์ดํ„ฐ ํ๋ฆ„

User Action
  โ†’ TCA Reducer (Features)
  โ†’ DependencyClient.fetch()
  โ†’ UseCase.execute() (Domain)
  โ†’ Repository.fetch() (Domain Protocol)
  โ†’ ConcreteRepository (Data) โ†’ Supabase / REST
  โ†’ DTO โ†’ Entity ๋ณ€ํ™˜
  โ†’ State ์—…๋ฐ์ดํŠธ โ†’ View ๋ Œ๋”๋ง

ํฌ๋กœ์Šค์ปคํŒ… ๊ด€์‹ฌ์‚ฌ ํ๋ฆ„

Analytics / CrashReporting์€ ๊ตฌํ˜„๊ณผ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ ˆ์ด์–ด ๊ฒฝ๊ณ„๋กœ ๋ถ„๋ฆฌ๋จ:

Core          : ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜ (AnalyticsClient, CrashReportingClient)
Features      : DependencyKey ๋“ฑ๋ก, liveValue = .noop
App/iOS       : Firebase ๊ธฐ๋ฐ˜ live ๊ตฌํ˜„์ฒด ์ƒ์„ฑ + withDependencies๋กœ ์ฃผ์ž…

์ „์ฒด ๊ธˆ์ง€ ์‚ฌํ•ญ

  • Feature ๊ฐ„ ์ง์ ‘ import ๊ธˆ์ง€ (HomeFeature โ†’ QuizFeature ๋“ฑ)
  • App layer ์ด์™ธ์—์„œ Firebase, ์™ธ๋ถ€ SDK ์ง์ ‘ import ๊ธˆ์ง€
  • TCA State์— ํด๋ž˜์Šค ํƒ€์ž… ์ €์žฅ ๊ธˆ์ง€ (Equatable ์ค€์ˆ˜ ๋ถˆ๊ฐ€)
  • _ prefix action์„ Feature ์™ธ๋ถ€์—์„œ send ๊ธˆ์ง€
  • Reducer ๋‚ด์—์„œ UI ์ž‘์—… ์ง์ ‘ ์ˆ˜ํ–‰ ๊ธˆ์ง€
  • Feature์—์„œ Repository ์ง์ ‘ import ๊ธˆ์ง€ (DependencyClient ํ†ตํ•ด์„œ๋งŒ)
  • Core์—์„œ ์™ธ๋ถ€ SDK import ๊ธˆ์ง€ (์ˆœ์ˆ˜ Swift ์ธํ„ฐํŽ˜์ด์Šค๋งŒ)