
โ Realm์ด๋?
Realm์ ํ ๋ฌธ์ฅ์ผ๋ก ๋งํ๋ฉด
๐ ๋ชจ๋ฐ์ผ ์ฑ์ ์ต์ ํ๋ ๊ฐ์ฒด(Object) ๊ธฐ๋ฐ ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
“์ฑ ์์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์ ์ฅ·์กฐํํ๊ธฐ ์ํด ๋ง๋ DB”
• ๋ก์ปฌ Realm DB
→ ์ฑ ์์์๋ง ์ฐ๋ DB
→ ์ง๊ธ๋ ์ฌ์ฉ ๊ฐ๋ฅ
• MongoDB Realm / Device Sync
→ ์๋ฒ ์ฐ๋ + ๋๊ธฐํ ์๋น์ค
→ 2024~2025๋
์ ์ข
๋ฃ(EOL) ์๊ณ
๐ Realm = ๋ก์ปฌ DB ๊ฐ๋
์ ์ฌ์ ํ ์ ํจ
๐ Sync ์๋น์ค๋ง ์ข
๋ฃ
โ ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ
์ค์น
npm i realm
Usage
DB ์ฐ๊ฒฐ
import Navigator from "@/components/navigator";
import { SplashScreen } from "expo-router";
import { useEffect, useState } from "react";
import Realm from "realm";
SplashScreen.preventAutoHideAsync();
const FeelingSchema = {
name: "Feeling",
properties: {
_id: "int",
emotion: "string",
message: "string",
},
primaryKey: "_id",
};
export default function App() {
const [ready, setReady] = useState(false);
useEffect(() => {
async function prepare() {
try {
const realm = await Realm.open({
path: "nomadDiaryDB",
schema: [FeelingSchema],
});
console.log(realm);
} catch (e) {
console.warn(e);
} finally {
setReady(true);
}
}
prepare();
}, []);
useEffect(() => {
if (ready) {
SplashScreen.hideAsync();
}
}, [ready]);
return <Navigator />;
}
Write
realm?.write(() => {
realm.create("Feeling", {
_id: Date.now(),
emotion: selectedEmotion,
message: feelings,
});
});
Read
const realm = useDB();
useEffect(() => {
const feelings = realm?.objects("Feeling");
console.log(feelings);
});
Filter
const happy = feelings?.filtered("emotion = '๐' ");
Delete
const onPress = (id: number) => {
realm?.write(() => {
const feeling = realm.objectForPrimaryKey("Feeling", id);
realm.delete(feeling);
});
};
addListener
useEffect(() => {
const results = realm?.objects<Feeling>("Feeling");
results?.addListener((feelings, changes) => {
setFeelings(feelings.sorted("_id", true));
});
return () => {
results?.removeAllListeners();
};
}, [realm]);'๐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ - BeautifulSoup (0) | 2026.03.11 |
|---|---|
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ - Victory Native (0) | 2026.02.26 |
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ - TanStack Query(React Query) (0) | 2026.02.03 |
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ - Zod (0) | 2025.12.03 |
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ - SWR (0) | 2025.07.05 |