-
Notifications
You must be signed in to change notification settings - Fork 0
chore: 디버그 모드 기능 추가 #233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: 디버그 모드 기능 추가 #233
Conversation
Walkthrough온보딩 'seen' 상태를 초기화하는 public API(reset)들이 저장소·도메인·유스케이스 계층에 추가되고, Shake 제스처로 띄우는 디버그 메뉴(네트워크 로그 열기, 온보딩 플래그 초기화)를 구현해 SceneDelegate에서 해당 화면을 표시하도록 변경했습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant User as 사용자
participant App as 앱 (SceneDelegate)
participant Debug as DebugOptionViewController
participant UseCase as MarkOnboardingSeenUseCase
participant Repo as OnboardingRepository
participant Storage as Storage
User->>App: Shake 제스처
App->>Debug: 디버그 메뉴 표시
User->>Debug: "온보딩 플래그 초기화" 선택
Debug->>UseCase: reset()
UseCase->>Repo: resetOnboardingSeen()
Repo->>Storage: onboardingKey = false 저장
Storage-->>Repo: 저장 완료
Repo-->>UseCase: 완료 응답
UseCase-->>Debug: 완료 응답
Debug->>App: 앱 강제 종료 (forceQuit)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 주의 검토 포인트:
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
src/Projects/BKData/Sources/Repository/DefaultOnboardingRepository.swift(1 hunks)src/Projects/BKDomain/Sources/Interface/Repository/OnboardingRepository.swift(1 hunks)src/Projects/BKDomain/Sources/Interface/Usecase/MarkOnboardingSeenUseCase.swift(1 hunks)src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift(1 hunks)src/Projects/Booket/Sources/DebugOptionViewController.swift(1 hunks)src/Projects/Booket/Sources/SceneDelegate.swift(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (4)
src/Projects/BKDomain/Sources/Interface/Usecase/MarkOnboardingSeenUseCase.swift (1)
src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift (1)
reset(16-18)
src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift (1)
src/Projects/BKData/Sources/Repository/DefaultOnboardingRepository.swift (1)
resetOnboardingSeen(25-27)
src/Projects/BKDomain/Sources/Interface/Repository/OnboardingRepository.swift (1)
src/Projects/BKData/Sources/Repository/DefaultOnboardingRepository.swift (1)
resetOnboardingSeen(25-27)
src/Projects/Booket/Sources/DebugOptionViewController.swift (2)
src/Projects/BKCore/Sources/DiContainer/DIContainer.swift (1)
register(25-46)src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift (1)
reset(16-18)
🪛 SwiftLint (0.57.0)
src/Projects/Booket/Sources/DebugOptionViewController.swift
[Warning] 18-18: Imports should be unique
(duplicate_imports)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (8)
src/Projects/BKDomain/Sources/Interface/Usecase/MarkOnboardingSeenUseCase.swift (1)
7-7: 프로토콜 확장이 깔끔합니다.온보딩 상태를 재설정하는
reset()메서드가 프로토콜에 적절하게 추가되었습니다. 기존execute()메서드와 일관된 네이밍 스타일을 유지하고 있습니다.src/Projects/BKDomain/Sources/Interface/Repository/OnboardingRepository.swift (1)
6-6: LGTM!저장소 프로토콜에 온보딩 상태 초기화 메서드가 올바르게 추가되었습니다. 기존 메서드들과 네이밍이 일관성 있게 유지되고 있습니다.
src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift (1)
15-18: 구현이 올바릅니다.UseCase가 Repository로 적절하게 위임하고 있으며, 기존
execute()메서드와 동일한 패턴을 따르고 있습니다.src/Projects/Booket/Sources/SceneDelegate.swift (1)
97-97: 디버그 흐름 변경이 적절합니다.Shake 제스처 시
DebugOptionViewController를 표시하도록 변경이 올바르게 적용되었습니다. DEBUG 플래그로 적절하게 보호되어 있습니다.src/Projects/BKData/Sources/Repository/DefaultOnboardingRepository.swift (1)
24-27: 저장소 구현이 일관성 있습니다.
resetOnboardingSeen()구현이 기존saveOnboardingSeen()메서드와 동일한 패턴을 따르고 있으며, 올바르게false값을 저장하여 온보딩 플래그를 초기화합니다.src/Projects/Booket/Sources/DebugOptionViewController.swift (3)
27-41: performAction 패턴이 잘 구현되었습니다.
DebugOptionenum에서performAction(on:)메서드를 사용하여 각 옵션의 동작을 깔끔하게 캡슐화했습니다. 새로운 디버그 옵션 추가 시 확장이 용이한 구조입니다.
55-64: 섹션 데이터 구성이 명확합니다.디버그 옵션들이 논리적으로 "Log"와 "플래그 초기화" 섹션으로 잘 구분되어 있으며, 향후 옵션 추가가 용이한 구조입니다.
46-46: ---DI 등록 확인 완료 - 문제 없음
검증 결과,
MarkOnboardingSeenUseCase는src/Projects/BKDomain/Sources/DomainAssembly.swift156번 줄에서 DI 컨테이너에 올바르게 등록되어 있으며,DefaultMarkOnboardingSeenUseCase로 구현되어 있습니다. 필요한 의존성(OnboardingRepository)도@Autowired로 정상 주입되고 있습니다.DebugOptionViewController.swift46번 줄의@Autowired프로퍼티는 문제없이 작동합니다.
4d9fd08 to
2b35132
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
src/Projects/BKDomain/Sources/Interface/Usecase/MarkOnboardingSeenUseCase.swift (1)
7-7: 공개 API 메서드에 문서화 추가를 권장합니다.새로 추가된
reset()메서드에 문서화 주석이 없습니다. 공개 프로토콜 메서드의 경우 용도와 동작을 설명하는 주석을 추가하면 다른 개발자들이 이해하기 쉽습니다.다음과 같이 문서화를 추가할 수 있습니다:
public protocol MarkOnboardingSeenUseCase { func execute() + /// 온보딩 완료 상태를 초기화합니다. func reset() }src/Projects/BKData/Sources/Repository/DefaultOnboardingRepository.swift (1)
25-27: 구현이 올바르고 기존 패턴을 일관되게 따릅니다.
resetOnboardingSeen()메서드가saveOnboardingSeen()과 대칭적으로 잘 구현되었으며, 동일한 에러 처리 패턴을 사용합니다.참고: 원한다면 두 메서드를 하나로 통합하여 코드 중복을 줄일 수 있습니다:
private func setOnboardingSeen(_ seen: Bool) { try? storage.save(seen, for: key) } public func saveOnboardingSeen() { setOnboardingSeen(true) } public func resetOnboardingSeen() { setOnboardingSeen(false) }하지만 현재의 명시적인 구현도 충분히 명확하고 읽기 좋습니다.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
src/Projects/BKData/Sources/Repository/DefaultOnboardingRepository.swift(1 hunks)src/Projects/BKDomain/Sources/Interface/Repository/OnboardingRepository.swift(1 hunks)src/Projects/BKDomain/Sources/Interface/Usecase/MarkOnboardingSeenUseCase.swift(1 hunks)src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift(1 hunks)src/Projects/Booket/Sources/DebugOptionViewController.swift(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift
- src/Projects/BKDomain/Sources/Interface/Repository/OnboardingRepository.swift
- src/Projects/Booket/Sources/DebugOptionViewController.swift
🧰 Additional context used
🧬 Code graph analysis (2)
src/Projects/BKData/Sources/Repository/DefaultOnboardingRepository.swift (1)
src/Projects/Booket/Sources/DebugOptionViewController.swift (1)
resetOnboardingSeen(94-97)
src/Projects/BKDomain/Sources/Interface/Usecase/MarkOnboardingSeenUseCase.swift (1)
src/Projects/BKDomain/Sources/UseCase/DefaultMarkOnboardingSeenUseCase.swift (1)
reset(16-18)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔗 관련 이슈
📘 작업 유형
📙 작업 내역
🧪 테스트 내역
🎨 스크린샷 또는 시연 영상 (선택)
ScreenRecording_10-18-2025.18-45-05_1.mp4
✅ PR 체크리스트
💬 추가 설명 or 리뷰 포인트 (선택)
Summary by CodeRabbit
릴리스 노트