refactor: Actor 기반 KeychainManager로 마이그레이션#1
Merged
Conversation
- Networking 모듈을 Networks로 변경 - ThirdPartys 모듈 신규 추가 - 불필요한 테스트 파일 삭제 및 테스트 디렉토리 재구성 - 프로젝트 설정 파일 업데이트
✨ Improvements: - Add accessGroup support for keychain sharing between apps - Improve service configuration with Bundle identifier - Enhance memory safety with explicit error handling in nonisolated methods - Add security attributes (kSecAttrAccessibleWhenUnlockedThisDeviceOnly) - Refactor query building with baseQuery helper method - Fix InMemoryKeychainManager thread safety with concurrent queue 🛡️ Security: - Enhanced keychain access control - Better error logging for debugging - Thread-safe InMemoryKeychainManager implementation 🚀 Performance: - Optimized query building - Reduced code duplication - Better async/await patterns
✨ Improvements: - Convert from class with complex concurrent queue to simple actor - Remove @unchecked Sendable and complex DispatchQueue management - Maintain backward compatibility with nonisolated methods - Consistent pattern with KeychainManager implementation 🚀 Benefits: - Automatic thread safety with Swift Concurrency - Cleaner and simpler implementation - No complex queue management needed - Better testability and maintainability 📝 Breaking Changes: None - Legacy sync API still supported via nonisolated methods - Test code can use async API for better reliability
11 tasks
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.
🚀 개요
KeychainManager를 class에서 actor로 마이그레이션하여 Swift Concurrency 패턴을 적용했습니다.
✨ 주요 변경사항
🔧 기술적 변경점
Before:
After:
📋 API 변화
Legacy (계속 지원):
Modern (권장):
✅ 테스트 계획
🎯 Breaking Changes
없음 - 기존 API는 deprecated 없이 계속 지원됩니다.
📚 관련 이슈
iOS 17+ Swift Concurrency 적용을 위한 아키텍처 개선