[iOS] Core Data CRUD (Create, Read, Update, Delete) 구현

iosSwift
avatar
2025.02.19
·
2 min read

Core Data에서 데이터를 저장(Create), 불러오기(Read), 수정(Update), 삭제(Delete)하는 기본적인 CRUD 기능을 구현하는 방법 정리

  1. Core Data 스택 설정

    import CoreData
    
    class CoreDataManager {
        static let shared = CoreDataManager()
        
        let persistentContainer: NSPersistentContainer = {
            let container = NSPersistentContainer(name: "MyAppModel")
            container.loadPersistentStores { _, error in
                if let error = error {
                    fatalError("Core Data error: \(error)")
                }
            }
            return container
        }()
        
        var context: NSManagedObjectContext {
            return persistentContainer.viewContext
        }
    }
  2. 데이터 생성(Create)

    func createUser(name: String, email: String) {
        let user = UserEntity(context: CoreDataManager.shared.context)
        user.name = name
        user.email = email
        
        saveContext()
    }
  3. 데이터 불러오기(Read)

    func fetchUsers() -> [UserEntity] {
        let request: NSFetchRequest<UserEntity> = UserEntity.fetchRequest()
        do {
            return try CoreDataManager.shared.context.fetch(request)
        } catch {
            print("Fetch error: \(error)")
            return []
        }
    }
  4. 데이터 수정(Update)

    func updateUser(user: UserEntity, newName: String) {
        user.name = newName
        saveContext()
    }
  5. 데이터 삭제(Delete)

    func deleteUser(user: UserEntity) {
        CoreDataManager.shared.context.delete(user)
        saveContext()
    }
  6. 공통 저장 함수(saveContext)

    func saveContext() {
        let context = CoreDataManager.shared.context
        if context.hasChanges {
            do {
                try context.save()
            } catch {
                print("Save error: \(error)")
            }
        }
    }






- 컬렉션 아티클