[swift] Swift 데이터베이스 연동

소개

Swift 언어는 다양한 데이터베이스 시스템과의 연동을 지원합니다. 데이터베이스는 애플리케이션에서 중요한 역할을 담당하며, 데이터를 저장하고 검색하는 등의 작업을 수행합니다. 이번 블로그에서는 Swift 언어를 사용하여 데이터베이스와의 연동을 어떻게 수행할 수 있는지 알아보겠습니다.

SQLite 데이터베이스 연동

SQLite는 경량 데이터베이스 시스템으로, Swift 언어에서 쉽게 사용할 수 있습니다. SQLite 데이터베이스를 사용하기 위해서는 SQLite.swift 라이브러리를 이용할 수 있습니다. 이 라이브러리를 사용하면 Swift 코드에서 SQLite 데이터베이스를 쉽게 생성하고, 데이터를 조작할 수 있습니다.

먼저, SQLite.swift 라이브러리를 프로젝트에 추가해야 합니다. 이를 위해서는 CocoaPods나 Swift Package Manager를 이용할 수 있습니다.

import SQLite

// 데이터베이스 연결
let db = try Connection("/path/to/database.sqlite3")

// 테이블 생성
let users = Table("users")
let id = Expression<Int64>("id")
let name = Expression<String>("name")

// 사용자 추가
try db.run(users.insert(name <- "John Doe"))

// 사용자 조회
for user in try db.prepare(users) {
    print("id: \(user[id]), name: \(user[name])")
}

위의 예제 코드에서는 SQLite.swift 라이브러리를 사용하여 SQLite 데이터베이스에 연결하고, users 테이블을 생성하고, 사용자를 추가하고 조회하는 방법을 보여줍니다.

Core Data 연동

Core Data는 Apple이 제공하는 고수준 데이터베이스 프레임워크입니다. Swift 언어에서 Core Data와의 연동을 위해서는 NSPersistentContainer 클래스를 사용할 수 있습니다. 이 클래스를 사용하면 Core Data 스택을 만들고, 데이터를 저장하고 검색하는 등의 작업을 수행할 수 있습니다.

import CoreData

// Core Data 스택 생성
let persistentContainer = NSPersistentContainer(name: "DataModel")
persistentContainer.loadPersistentStores { (description, error) in
    if let error = error {
        fatalError("Failed to load Core Data stack: \(error)")
    }
}

// 데이터 저장
let context = persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "Person", in: context)
let person = NSManagedObject(entity: entity!, insertInto: context)
person.setValue("John Doe", forKey: "name")
do {
    try context.save()
} catch {
    fatalError("Failed to save data: \(error)")
}

// 데이터 검색
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Person")
do {
    let people = try context.fetch(fetchRequest)
    for person in people {
        if let name = person.value(forKey: "name") as? String {
            print("name: \(name)")
        }
    }
} catch {
    fatalError("Failed to fetch data: \(error)")
}

위의 예제 코드에서는 NSPersistentContainer 클래스를 사용하여 Core Data 스택을 생성하고, 데이터를 저장하고 검색하는 방법을 보여줍니다.

참고 자료

위의 예제 코드와 참고 자료를 통해 Swift 언어에서 데이터베이스와의 연동을 쉽게 수행할 수 있습니다. 데이터베이스를 사용하여 애플리케이션의 기능을 강화하고 데이터를 효율적으로 관리하는데 도움이 됩니다.