-
Notifications
You must be signed in to change notification settings - Fork 1
ASCacheKit
Sangwon edited this page Dec 1, 2024
·
1 revision
struct ASCacheManager: CacheManagerProtocol, Sendable {
public let memoryCache: MemoryCacheManagerProtocol
public let diskCache: DiskCacheManagerProtocol
}
enum CacheOption {
case onlyMemory
case onlyDisk
case both
case none
}
- url을 키로 이용해 data를 저장, cacheOption을 활용
func saveCache(withKey url: URL, data: Data, cacheOption: CacheOption) {}
- url에 요청을 보내기 전에 사용
func loadCache(from url: URL, cacheOption: CacheOption) -> Data? {}
- 필요없는 캐시만 골라서 삭제할 수 있도록 리팩토링 예정
func clearMemoryCache() {
memoryCache.clearCache()
}
func clearDiskCache() {
diskCache.clearCache()
}
- 📒 기획의 과정과 의도
- 📒 swift6 도입기 ‐ @unchecked Sendable을 사용해야만 했던 이유
- 📒 WaveForm(파형) 제작기
- 📒 프로젝트 구조와 이유
- 📒 화면 전환(Game NavigationController)
- 📒 DIContainer를 사용한 계기
- 📒 AudioHelper 제작기
- 📒 음악 플레이어의 compact 버전 제작기
- 📒 Combine을 이용한 데이터 전달
- 📒 파이어베이스를 쓰며 있었던 일
- 📒 캐싱 모듈 구현과 문제점
- 📒 로그 시스템 제작기
- ❗ Data 끼리의 비교
- ❗ 프레임워크 Reference 안잡히는 문제
- ❗ actor 안에서 timer가 실행되지 않는 문제
- ❗ NSLayoutConstraint 옵셔널 문제
- ❗ 테이블 뷰가 보고 있는 배열과 bind하고 있는 배열 간의 race condition 문제
- ❗ 테스트끼리의 독립성
- ❗ 네트워크 테스팅 시 Error 핸들링
- ❗ 여러 클라이언트가 서버에 동시 요청시, 데이터가 반영이 안되는 이슈 해결
- ❗ 의존성 framework 추가시 불러오지 못하는 문제
- ❗ Timer를 6초 설정해도 더 실행되는 문제
- ❗ Music Kit Data Request 에러
- ❗ DI Container 에서 생성한 인스턴스가 동시에 존재 하는 이슈