728x90 SMALL CoreData6 💡 iOS 가계부 앱 개발: Core Data와 FileManager 연동하기 안녕하세요! 가계부 앱의 데이터 모델과 로컬 파일 관리 클래스를 살펴보았는데요. 오늘은 이 둘을 하나로 묶어주는 핵심 클래스, TransactionCoreDataManager를 소개합니다. 이 클래스는 Core Data와 FileManager를 유기적으로 결합해 데이터를 안전하고 효율적으로 관리하는 '하이브리드' 데이터 관리자 역할을 합니다.1. TransactionCoreDataManager의 역할: 싱글톤 패턴과 의존성 주입이 클래스는 앱의 모든 데이터 작업을 총괄하는 '싱글톤'으로 설계되었습니다.final class TransactionCoreDataManager { static let shared = TransactionCoreDataManager() private let context.. 2025. 8. 24. 🧾 iOS MVVM 가계부 앱 - 거래 내역 조회(Read), 수정(Update), 삭제(Delete) 기능 완벽 구현 이전 글에서는 MVVM 구조에서의 TransactionViewModel 전반 구조와 초기화 방식에 대해 정리했습니다.이번 글에서는 그 ViewModel 내부에서 수행되는 데이터 읽기, 수정, 삭제 기능을 소개합니다.✳️ 전체 흐름 요약모든 데이터 처리는 TransactionCoreDataManager를 통해 Core Data와 통신하며, Combine을 통해 비동기 스트림을 처리합니다. 📌 관련 구조:TransactionViewModel → View에서 호출TransactionCoreDataManager → Core Data와 실제 상호작용@Published → UI 바인딩을 위한 데이터 상태 반영📖 Read - 거래 내역 불러오기✅ 모든 거래 내역 불러오기 (readAllTransactions()).. 2025. 8. 3. 💸 iOS MVVM 가계부 앱 - ViewModel(TransactionViewModel) 구조 완벽 정리 가계부 앱을 MVVM 구조로 개발하면서 핵심 역할을 하는 TransactionViewModel에 대해 소개합니다.이 글에서는 ViewModel의 역할, 내부 구조, init 설계 이유, 그리고 View와의 데이터 흐름까지 모두 짚어볼게요.🎯 ViewModel이란?MVVM에서 ViewModel은 View와 Model 사이의 중간 매개체로 작동합니다.사용자의 입력을 받아 Model에 반영하고, Model의 데이터를 가공해 View에 제공합니다.💡 이 글에서는 실제 프로젝트에 사용한 TransactionViewModel을 기준으로 설명합니다.📦 전체 구조 살펴보기final class TransactionViewModel { // MARK: - Published Properties @Pu.. 2025. 8. 3. 📦 iOS MVVM 가계부 앱 - Core Data 삭제(Delete) + 이미지 제거까지 정리 가계부 앱에서 한 번 입력한 지출/수입 데이터를 삭제하는 기능은 반드시 필요합니다. 특히 사용자가 실수로 입력했거나, 잘못된 이미지를 포함한 경우 Core Data + 이미지 파일까지 함께 삭제하는 구조가 되어야 합니다. 이번 글에서는 deleteTransaction(id:) 함수를 중심으로 Core Data에서의 삭제 처리 흐름과 이미지 정리 방식까지 상세히 정리합니다.🧩 1. 삭제 함수 코드func deleteTransaction(id: UUID) -> AnyPublisher { return Future { [weak self] promise in guard let self = self else { print("❌ deleteTransaction: self가 n.. 2025. 8. 2. 📚 iOS MVVM 가계부 앱 - Core Data 수정(Update) + 이미지까지 깔끔히 반영하는 법 가계부 앱을 만들면서 생기는 대표적인 고민 중 하나는 "기존에 등록된 내역을 수정할 때 이미지나 메모를 어떻게 반영하지?" 입니다.이번 글에서는 Core Data에서 기존 내역을 업데이트하고, 선택적으로 이미지까지 덮어쓸 수 있는 구조를 소개합니다.💡 목표 기능사용자가 등록한 기존 내역(지출/수입)을 수정메모, 금액, 카테고리 등 변경 사항 반영기존 이미지가 있을 경우:이미지 삭제이미지 교체기존에 이미지가 없더라도 새로 추가 가능📦 업데이트 함수 코드func updateTransaction(_ updatedTransaction: ExpenseModel) -> AnyPublisher { return Future { [weak self] promise in guard let self =.. 2025. 8. 2. 📚Core Data로 지출 내역 불러오기(Read) 정리 ✨ 목표이번 글에서는 가계부 앱에서 Core Data로 저장된 지출 내역을 전체 조회하거나 특정 ID로 조회하는 방법과, Core Data Entity(ExpenseEntity)를 우리가 ViewModel/화면에서 사용하기 위한 데이터 모델(ExpenseModel)로 변환하는 방법을 함께 정리합니다.✅ 전체 흐름 요약역할함수 이름설명CoreData → Model 변환toModel()Entity 데이터를 앱에서 사용할 수 있는 형태로 변환전체 데이터 읽기readAllTransaction()모든 지출 내역을 최신순으로 읽기특정 데이터 읽기readTransactionByID(by:)특정 ID 기반으로 하나의 내역 읽기 1️⃣ ExpenseEntity → ExpenseModel 변환: toModel()exten.. 2025. 8. 2. 이전 1 다음 728x90 LIST