[#839] 의존성 주입 라이브러리인 Cradle을 적용한다 - #840
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6aa32426dc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 연관된 이슈
🎯 의도
AppDIContainer와Assembler기반 런타임 의존성 등록·조회 구조를 Cradle 1.2.0 기반 graph 구성으로 전환하는 작업기존 구현 initializer의 입력 형태와 객체 동일성을 유지하면서 모듈별 생성 책임과 App의 생명주기 조립 책임을 분리하기 위한 구조 개편
📝 작업 내용
📌 요약
Infra,Persistence,Widget,Data,Domain의 provider graph 구성GraphSet과AppGraph.shared기반 앱 graph 조립DependencyValues를 통한 Presentation 의존성 연결DIContainer와 계층별Assembler제거🔍 상세
모듈별 provider graph 구성
Assembler가 사용하던 initializer의 의존성 타입, 레이블, 순서를 유지한 provider 구성@Provide로 생성하고 실제 지연 근거가 있는 monitor·subscription·handler만@Provide(.lazy)로 구성AppGraph만@DependencyGraph(.shared)를 사용하고 하위 module graph는 App graph 수명 안에서 보관하는 구조App graph 조립
PersistenceGraphSet,InfraGraphSet,WidgetGraphSet과 기능별 Repository·UseCaseGraphSet구성AppGraph에서 14개GraphSet만 등록하고 service·Repository·UseCase 직접 등록 제외App lifecycle 전환
FCMTokenSyncHandlerGraph,UserTimeZoneSyncHandlerGraph,PushNotificationOpenHandlerGraph구성FCMTokenSyncHandlerUserTimeZoneSyncHandlerWidgetSyncEventHandlerWidgetSessionSyncHandlerPushMessagingService.setDelegate, push open 처리, background Widget 동기화를 같은AppGraph.shared출력으로 연결Presentation 연결
DevLogApp.init에서prepareDependencies를 한 번 호출해 Cradle graph의 UseCase를 기존 TCADependencyValues에 연결@Dependency,withDependencies,TestStore흐름 유지DIContainer,diContainer,container.resolve제거인증 provider 분리
AppleAuthenticationService,GithubAuthenticationService,GoogleAuthenticationServiceprotocol 구성AuthenticationRepositoryImpl,AuthDataRepositoryImpl의 역할별 타입 연결기존 DI 제거
AppDIContainer,DIContainer,DIContainerKey,DependencyName,DependencyScope제거Assemblerprotocol과 App·Persistence·Infra·Widget·Data·Domain의*Assembler.swift제거검증
Appscheme build 성공App및 관련 Presentation schemebuild-for-testing성공container.resolve,DIContainer,diContainer, Cradle import 잔존 없음AppGraphprovider와 lifecycle·Widget 객체 동일성 정적 검토 통과git diff --check통과📸 영상 / 이미지 (Optional)
해당 없음