Skip to content

Architecture

전종현 edited this page May 29, 2024 · 3 revisions

image

디자인 패턴

  • MVVM Pattern (View - ViewModel - Model)
  • UseCases
  • Repository Pattern (Repository - DataSource)

DI

  • Get It

Domain Interface

@startuml
'[UseCase]
'로그인, 회원가입 화면
interface SignInUserUseCase {
}

interface SignUpUserUseCase {
}

'홈화면
interface GetHomeWeatherUseCase {
}

interface GetHomeLocationUseCase {
}

interface GetRecommendedFeedsUseCase {
}

interface GetHomeImageUseCase {
}

interface RefreshHomeUseCase {
}

RefreshHomeUseCase <|.. GetHomeWeatherUseCase
RefreshHomeUseCase <|.. GetHomeLocationUseCase
RefreshHomeUseCase <|.. GetRecommendedFeedsUseCase

'OOTD 피드화면
interface GetOOTDFeedsUseCase {
}

'OOTD 상세화면
interface GetDetailFeedDetailUseCase {
}

interface GetDetailUserProfileUseCase {
}

'검색화면
interface GetSearchFeedsUseCase {
}

'마이페이지 화면
interface GetMyPageUserProfileUseCase {
}

interface GetMyPageFeedsUseCase {
}

interface RemoveMyPageFeedUseCase {
}

'유저페이지 화면
interface GetUserPageUserProfileUseCase {
}

interface GetUserPageFeedsUseCase {
}

interface RefreshUserPageUseCase {
}

RefreshUserPageUseCase <|.. GetUserPageUserProfileUseCase
RefreshUserPageUseCase <|.. GetUserPageFeedsUseCase

'사진 크롭 화면
interface SaveCroppedImageUseCase {
}

interface SaveOriginImageUseCase {
}

interface GetOriginImageUseCase {
}

'OOTD 작성 화면
interface GetCroppedImageUseCase {
}

interface GetEditWeatherUseCase {
}

interface GetEditLocationUseCase {
}

interface SaveEditFeedUseCase {
}

interface UndoEditCroppedImageUseCase {
}

'앱 설정 화면
interface SignOutSettingUseCase {
}

interface LogOutSettingUseCase {
}

'스플래시 화면 (홈화면꺼 훔쳐쓰기)

'[Repository]

' Weather
interface WeatherRepository {
}

' Location
interface LocationRepository {
}

' Feed
interface FeedRepository {
}

' User
interface UserRepository {
}

' UserProfile
interface UserProfileRepository {
}

' UserAuth
interface UserAuthRepository {
}
@enduml

Data Interface

@startuml

' DataSource
interface LocalWeatherDataSource {
}

interface RemoteWeatherDataSource {
}

interface LocalLocationDataSource {
}

interface RemoteLocationDataSource {
}

interface LocalFeedDataSource {
}

interface RemoteFeedDataSource {
}

interface LocalUserDataSource {
}

interface RemoteUserDataSource {
}

interface LocalUserProfileDataSource {
}

interface RemoteUserProfileDataSource {
}

interface LocalUserAuthDataSource {
}

interface RemoteUserAuthDataSource {
}
@enduml

Clone this wiki locally