realm/realm-swift
iOS/macOS에서 직접 실행되는 경량 모바일 데이터베이스로 ORM 없이 객체 지향적 데이터 관리 가능
16,609+0이번 주2,232474Objective-C
데모·홈페이지 열기realm.io중간맛 분석
스택: Swift, Objective-C / 난이도: 낮음(간단한 API, ORM 불필요) / 즉시 사용성: 높음(SPM, CocoaPods, Carthage 지원) / 특징: 라이브 객체(변경 자동 반영), 암호화 지원, SwiftUI @ObservedResults 통합, 오프라인 우선 설계. 작은 프로젝트부터 대규모 앱까지 가능하며 문서가 풍부합니다.
이런 레포예요
이럴 때 쓰면 좋아요
- 오프라인에서도 작동하는 메모 ·캘린더·할일 앱 개발
- SwiftUI에서 복잡한 상태 관리 없이 데이터 바인딩하는 소셜 앱
- 민감한 사용자 데이터를 암호화하여 저장하는 금융·의료 앱
핵심 기능
라이브 객체와 자동 변경 감지SwiftUI @ObservedResults 네이티브 통합데이터 암호화(전송 및 저장)
대안 대비 차별점
Core Data나 SQLite 대비 ORM 없는 직관적 객체 모델과 라이브 쿼리로 UI 갱신 코드 제거, 모바일 환경에 최적화된 메모리·배터리 효율성 제공
준비물
- Xcode 15.3 이상 (빌드용)
바로 시작하기
- Swift Package Manager로 설치
// Xcode: File > Add Packages > realm/realm-swift 입력
// 또는 Package.swift에 추가:
.package(url: "https://github.com/realm/realm-swift.git", .upToNextMajor(from: "10.0.0"))
- 모델 클래스 정의
import RealmSwift
class Dog: Object {
@Persisted var name: String
@Persisted var age: Int
}
- 데이터 저장
let dog = Dog()
dog.name = "Rex"
dog.age = 1
let realm = try! Realm()
try! realm.write {
realm.add(dog)
}
- 데이터 조회
let realm = try! Realm()
let allDogs = realm.objects(Dog.self)
let puppies = allDogs.where { $0.age < 2 }
- SwiftUI에서 자동 갱신
struct DogsView: View {
@ObservedResults(Dog.self) var dogs
var body: some View {
List {
ForEach(dogs) { dog in
Text("\(dog.name) (\(dog.age) years)")
}
}
}
}
별 추이 · 7일
16,609+0 / 7일
활용성 · 따라 만들기 좋은가
따라 하기 좋음샘플 점수 50/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
🟢 최근 활동 있음 · 2012년 생성
AI가 README 기반으로 요약했습니다 · 원문 보기