๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Realm

2026. 2. 24. 12:41ยท๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Realm

 

โœ… 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
'๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - BeautifulSoup
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Victory Native
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - TanStack Query(React Query)
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Zod
j2yonghwa
j2yonghwa
Trying to be a fullstack developer ๐Ÿš€
  • j2yonghwa
    j2yonghwa
    j2yonghwa
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (156)
      • โฐ Daily WakaTime (1)
      • ๐Ÿ–๏ธ ๋…ธ๋งˆ๋“œ์ฝ”๋” (2)
      • ๐Ÿบ Dev Setup (3)
      • ๐Ÿ”ญ Tech Info (1)
      • ๐Ÿšซ Error (1)
      • ๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (23)
      • ♣๏ธ Next.js 14 (10)
      • ♠๏ธ Next.js 12 (20)
      • ๐Ÿ›ธ React Native (12)
      • ๐Ÿฆ‹ TypeScript (1)
      • ๐Ÿ Python (2)
      • ๐ŸŒŠ TailwindCSS (4)
      • ๐Ÿงฉ SQL (25)
      • ๐Ÿ’Ž Prisma (5)
      • ๐ŸŒฑ MongoDB (4)
      • ๐ŸŽฏ Redis (1)
      • ๐Ÿงฌ GraphQL (2)
      • ๐Ÿ”ฅ Firebase (7)
      • ๐Ÿ’ธ Third-Party Services (2)
      • ๐Ÿ•ธ๏ธ Web (1)
      • ๐Ÿ† ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (23)
      • ๐Ÿ“™ ๋ชจ๋”ฅ๋‹ค (5)
      • ๐Ÿ“— ์ฝ”ํ…Œ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ -JS- (0)
      • ๐Ÿ“˜ ํด๋ฆฐ์ฝ”๋“œ (0)
      • ๐Ÿฏ ๊ฟ€ํŒ ๐Ÿ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๊นƒํ—™
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Next.js
    MySQL
    mongoDB
    next.js 12
    PostgreSQL
    react router
    Firebase
    SQL
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ
    Python
    Prisma
    ๋ชจ๋”ฅ๋‹ค
    API
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    0๋ ˆ๋ฒจ
    tailwindcss
    next.js 14
    React Native
    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    dev setup
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
j2yonghwa
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Realm
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”