Swift Realm은 iOS 및 macOS에서 사용할 수 있는 데이터베이스 관리 및 모니터링 도구입니다. 이 도구를 사용하면 애플리케이션에서 데이터를 저장하고 검색할 수 있으며, 강력한 데이터베이스 모델링 및 쿼리 기능을 제공합니다.
Realm 데이터베이스 생성 및 설정
Realm 데이터베이스를 사용하기 위해 Realm
객체를 생성하고 설정해야 합니다. 데이터베이스 파일의 경로, 데이터 모델 및 다양한 옵션을 설정할 수 있습니다.
import RealmSwift
// 데이터베이스 파일 경로 지정
let config = Realm.Configuration(fileURL: URL(fileURLWithPath: "path/to/realm"))
// realm 객체 생성
let realm = try! Realm(configuration: config)
데이터 모델 정의 및 사용
Realm에서 데이터를 저장하고 검색하기 위해서는 데이터 모델을 정의해야 합니다. 데이터 모델은 Swift 클래스와 속성을 사용하여 정의할 수 있습니다.
import RealmSwift
// 예시 데이터 모델
class Person: Object {
@Persisted var name: String
@Persisted var age: Int
@Persisted var email: String?
}
위와 같이 Object
클래스를 상속받는 클래스를 정의하고, @Persisted
속성을 사용하여 각 속성을 정의합니다.
데이터 추가, 수정, 삭제
Realm을 사용하면 간단하게 데이터를 추가, 수정 및 삭제할 수 있습니다.
// 데이터 추가
let person = Person()
person.name = "John"
person.age = 25
try! realm.write {
realm.add(person)
}
// 데이터 수정
try! realm.write {
person.name = "John Smith"
}
// 데이터 삭제
try! realm.write {
realm.delete(person)
}
데이터 쿼리 및 필터링
Realm을 사용하면 강력한 쿼리 기능을 사용하여 저장된 데이터를 검색할 수 있습니다. 예를 들어, 특정 조건을 가진 데이터를 필터링하거나 정렬할 수 있습니다.
// 이름이 "John"인 사람 검색
let johns = realm.objects(Person.self).filter("name == %@", "John")
// 나이가 30 이상인 사람 검색
let adults = realm.objects(Person.self).filter("age >= 30").sorted(byKeyPath: "age")
데이터베이스 모니터링
Realm은 데이터베이스의 변경 사항을 모니터링하는 기능도 제공합니다. 이를 사용하면 애플리케이션이 실시간으로 데이터베이스 변경 사항을 감지하고, 이에 대응할 수 있습니다.
// Realm의 변경 사항을 모니터링하는 Notification 구독
let token = realm.observe { (notification, realm) in
// 변경 사항 처리
}
위와 같이 observe
메서드를 사용하여 변경 사항을 모니터링할 수 있습니다. 내부의 클로저에서 변경 사항을 처리할 수 있습니다.
결론
Swift Realm은 iOS 및 macOS 애플리케이션에서 데이터베이스 관리 및 모니터링을 쉽게 구현할 수 있는 강력한 도구입니다. 데이터 모델링, 저장, 검색 및 모니터링 기능을 통해 애플리케이션의 데이터 관리를 효율적으로 처리할 수 있습니다.
더 많은 자세한 정보는 Swift Realm 공식 문서를 참조하세요.