도서 검색 앱의 기능 개선 작업을 진행하였다. CoreData를 활용하여 최근 본 책 기능을 구현하고, 전반적인 코드 구조를 개선하였다.
// Before: RecentBook 엔티티에 기본 속성만 존재
- isbn (String)
- viewedAt (Date)
// After: 썸네일 이미지 URL 저장을 위한 속성 추가
- isbn (String)
- viewedAt (Date)
- thumbnail (String) // 추가된 속성
// Before: 최근 본 책의 기본 정보만 저장
func saveRecentBook(_ book: Book) {
let recentBook = NSManagedObject(entity: entity, insertInto: context)
recentBook.setValue(book.isbn, forKey: "isbn")
recentBook.setValue(Date(), forKey: "viewedAt")
}
// After: 썸네일 URL도 함께 저장하여 이미지 표시 가능
func saveRecentBook(_ book: Book) {
let recentBook = NSManagedObject(entity: entity, insertInto: context)
recentBook.setValue(book.isbn, forKey: "isbn")
recentBook.setValue(Date(), forKey: "viewedAt")
recentBook.setValue(book.thumbnail, forKey: "thumbnail") // 썸네일 URL 저장
}
// Before: 최근 본 책 관련 속성/메서드 부재
class BookSearchViewModel {
private(set) var books: [Book] = []
}
// After: 최근 본 책 관련 기능 추가
class BookSearchViewModel {
private(set) var books: [Book] = []
private(set) var recentBooks: [Book] = [] // 최근 본 책 목록
func loadRecentBooks() {
recentBooks = CoreDataManager.shared.fetchRecentBooks()
onBooksUpdated?()
}
}