muaring/
ββ app/ # μ€ν λͺ¨λ (λ°μ², λ€λΉκ²μ΄μ
, DI 루νΈ)
β ββ src/main/
β β ββ AndroidManifest.xml
β β ββ java/org/maru/muaring/ (App.java, MainActivity λ±)
β β ββ res/ (activity_main.xml λ±)
β ββ build.gradle
β
ββ core/ # μ μ κ³΅ν΅ κΈ°λ₯(μλΉμ€/μ νΈ) λ¬Άμ
β ββ common/ # Result, Error, Constants λ± λ² μ΄μ€ νμ
β ββ ui/ # BaseFragment/Adapter, κ³΅ν΅ UI ν¬νΌ
β ββ network/ # Retrofit/OkHttp, Interceptor, λ€νΈμν¬ μ νΈ
β ββ (core-database)/ # μ ν: Room, DataStore (νμ μ)
β
ββ data/ # λ°μ΄ν° μ κ·Ό(μμ²) λ μ΄μ΄: API/DB/Repo ꡬν
β ββ remote/ # Retrofit API
β ββ local/ # DAO / DataStore
β ββ model/ # DTO/Response (domainκ³Ό λΆλ¦¬)
β ββ repository/ # RepositoryImpl (+ mapper)
β ββ di/ # Hilt Module (Network/Repo μ 곡)
β
ββ design/ # λμμΈ μμ€ν
(ν
λ§/μ/νμ΄ν¬/μ»΄ν¬λνΈ μ€νμΌ)
β ββ src/main/res/values/ # themes.xml, colors.xml, styles.xml, dimens.xml
β ββ (components/, utils/) # μ ν: 컀μ€ν
λ·°/리μμ€ ν¬νΌ
β
ββ feature/ # νλ©΄(κΈ°λ₯) λ¨μ λͺ¨λλ€
β ββ search/
β β ββ ui/ # Fragment, Adapter λ± λ·° κ³μΈ΅
β β ββ domain/ # UseCase, Domain model(νμ μ)
β β ββ data/ # ν΄λΉ νΌμ² νμ RepoImpl(μ ν)
β β ββ di/ # νΌμ² λ΄λΆ μμ‘΄μ± μ 곡(Hilt)
β β ββ src/main/res/layout/fragment_search.xml
β ββ featureName # μ) feature-auth, feature-home λ±
β
ββ gradle/
β ββ libs.versions.toml # λ²μ μΉ΄νλ‘κ·Έ(μμ‘΄μ± λ²μ ν κ³³μμ κ΄λ¦¬)
β
ββ settings.gradle # λͺ¨λ λ±λ‘(include)
ββ build.gradle # λ£¨νΈ λΉλ μ€ν¬λ¦½νΈ