앱개발의 어려운 문제들을 해결할 수 있습니다

  • 강력한 오프라인-우선 기능
  • 모바일을 위한 REST API 연동
  • 레거시 데이터의 모바일 아답터
  • 빠른 성능의 실시간으로 협업 개발
  • 고수준의 캐싱과 엣지 컴퓨팅

더 알아보기

Realm 플랫폼 2.0

여러분들이 좋아해주신 Realm 플랫폼의 모든 기능들이 업데이트 되었습니다:

  • 새로운 Reslm 스튜디오: 사용하시는 Realm을 쉽게 관리하고 설정하세요
  • NPM으로 쉽고 간단하게 설치 하세요
  • 인증 시스템이 개선되고 다른 인증 시스템과 연동기능이 추가되었습니다
  • 수많은 안정성, 성능, 사용성 개선이 이루어졌습니다

웨비나 등록 또는 2.0 사용 하기

Realm 스튜디오를 소개합니다

Realm에서 언제나 기다렸던 개발도구

Realm을 관리하고 데이터를 수정하고, 사용자 관리와 설정 까지 아름다운 인터페이스로 Mac, 윈도우, 리눅스를 지원합니다.

Realm 스튜디오 다운받기

더 나은 모바일 솔루션으로 더 나은 앱을 만드세요

기존의 웹 시대의 기술로 복잡한 네트워크 스택위에 어플리케이션을 개발하고 계신가요? Realm은 처음부터 모바일 어플리케이션과 실시간 어플리케이션 개발팀을 위해 개발되었습니다. Realm을 사용하면 리액티브 어플리케이션, 실시간 협업 어플리케이션이나 오프라인-우선 기능들을 매우 빠르고 쉽게 개발 할 수 있습니다.

트라이얼 버전 시용해보기

Realm 투어에 등록해보세요

Realm Platform이 궁금하신 분들을 위해 다양한 도시에서 Realm 모임을 열고 있습니다.

Join us

Realm 적용 고객사
Amazon Logo
Google Logo
Hipmunk Logo
Starbucks Logo
GoPro Logo
eBay Logo
Netflix Logo
Intel Logo
고객사 하이라이트

디지털 시대의 교육을 위한 Thread Learning의 경험

Realm 플랫폼으로 특수 교육팀이 여러 기기에서 실시간으로 데이터를 동기화하고 협력 케어를 조율할 수 있도록 돕습니다. 더 알아보기

View more customer stories >
 
고객사 하이라이트

Arccos Golf의 Realm 사용기

Arccos는 전 세계의 골퍼를 대상으로 온라인 및 오프라인 환경에서 반응적이고 빠른 앱 경험을 제공합니다. 더 알아보기

View more customer stories >
 
양방향 데이터 동기화, 실시간 협업, 오프라인-우선 기능, API 브릿지, 데이터 푸시

최고의 기능을 제공하는 최고의 앱을 만들어 보세요.

Realm 플랫폼은 작은 개발조직에서 커다란 개발팀까지 누구나 양방향 동기화나 실시간 협업과 같은 복잡한 기능을 쉽게 구현할 수 있게 해줍니다. 서비스를 관리하는 시간을 줄이고 더 멋진 앱을 만드는 데 집중하세요.

더 알아보기

10줄 이하의 코드로 실시간 협업 기능 구현하기

모바일 플랫폼 데모 앱의 실제 구현 방법과 개발자의 경험 공유

영상 보기

Realm 모바일 플랫폼

10줄의 코드만으로 모바일 앱의 데이터 동기화를 제공하여 리액티브 애플리케이션 경험을 구현하세요. Realm 오브젝트 서버와 Realm 데이터베이스를 더해 Realm 모바일 플랫폼이라고 부릅니다.

더 알아보기
// Authenticating the User
[RLMSyncUser logInWithCredentials:[RLMSyncCredentials credentialsWithGoogleToken:@"google token"]
                    authServerURL:[NSURL URLWithString:@"http://realm.example.com:9080"]
                     onCompletion:^(RLMSyncUser *user, NSError *error) {
  if (user) {
    // Opening a remote Realm
    NSURL *realmURL = [NSURL URLWithString:@"realm://realm.example.com:9080/~/userRealm"];
    RLMRealmConfiguration *config = [[RLMRealmConfiguration alloc] init];
    config.syncConfiguration = [[RLMSyncConfiguration alloc] initWithUser:user realmURL:realmURL];
    RLMRealm *realm = [RLMRealm realmWithConfiguration:config error:nil];
    // Any changes made to this Realm will be synced across all devices!
  } else if (error) {
    // handle error
  }
}];
// Authenticating the User
SyncUser.logIn(with: .google(token: "google token"),
               server: URL(string: "http://realm.example.com:9080")!)
{ user, error in
  if let user = user {
    // Opening a remote Realm
    let realmURL = URL(string: "realm://realm.example.com:9080/~/userRealm")!
    let config = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: realmURL))
    let realm = try! Realm(configuration: config)
    // Any changes made to this Realm will be synced across all devices!
  } else if let error = error {
    // handle error
  }
}
// Authenticating the User
User user = User.login(Credentials.google("google token"),
                       "http://realm.example.com:9080/auth");
// Opening a remote Realm
String realmURL = "realm://realm.example.com:9080/~/userRealm";
SyncConfiguration config = new SyncConfiguration.Builder(user, realmURL).build();
Realm realm = Realm.getInstance(config);
// Any changes made to this Realm will be synced across all devices!
// Authenticating the User
Realm.Sync.User.registerWithProvider('http://realm.example.co:9080', 'google', googleAccessToken, (error, user) => {
  if (!error) {
    // Opening a remote Realm
    var realm = new Realm({
      sync: {
        user: user,
        url: 'realm://realm.example.co:9080/~/userRealm',
      }
    });
    // Any changes made to this Realm will be synced across all devices!
  }
})
var user = await User.LoginAsync(Credentials.Google("google token"),
                                 new Uri("http://realm.example.com:9080"));

var realmUrl = new Uri("realm://realm.example.com:9080/~/userRealm");
var config = new SyncConfiguration(user, realmUrl);

var realm = Realm.GetInstance(config);
// Any changes made to this Realm will be synced across all devices!

Realm 데이터베이스

더 나은 모바일 데이터베이스를 쓰면 더 나은 앱이 됩니다. 데이터를 빠르게 저장 처리할 수 있는 데이터베이스를 사용해서 모바일 앱을 더 빠르게 개발할 수 있습니다. SQLite와 Core Data를 대체하여 사용 가능한 저희 객체 데이터베이스를 자신 있게 오픈소스로 공개합니다.

더 알아보기
class Dog {}

Dog.schema = {
  name: 'Dog',
  properties: {
    name: 'string',
    age: 'int',
  }
};

let realm = new Realm();
realm.write(() => {
  realm.create('Dog', {name: 'Rex', age: 1});
});

let pups = realm.objects('Dog').filtered('age < 2');
@interface Dog : RLMObject
@property NSString *name;
@property NSInteger age;
@end
@implementation Dog
@end

Dog *dog = [Dog new];
dog.name = @"Rex";
dog.age = 1;

RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
  [realm addObject:dog];
}];

RLMResults<Dog *> *allDogs = [Dog allObjects];
RLMResults<Dog *> *pups = [allDogs objectsWhere:@"age < 2"];
class Dog: Object {
  @objc dynamic var name = ""
  @objc dynamic var age = 0
}

let dog = Dog()
dog.name = "Rex"
dog.age = 1

let realm = try! Realm()
try! realm.write {
  realm.add(dog)
}

let pups = realm.objects(Dog.self).filter("age < 2")
public class Dog extends RealmObject {
  public String name;
  public int age;
}

Dog dog = new Dog();
dog.name = "Rex";
dog.age = 1;

Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealm(dog)
realm.commitTransaction();

RealmResults<Dog> pups = realm.where(Dog.class)
                               .lessThan("age", 2)
                               .findAll();
public class Dog : RealmObject 
{
  public string Name { get; set; }
  public int Age { get; set; }
}

var realm = Realm.GetInstance();
realm.Write(() => 
{
  realm.Add(new Dog
  {
    Name = "Rex",
    Age = 1
  });
});

var pups = realm.All<Dog>().Where(d => d.Age < 2);
Amazon, Google, Hipmunk, Starbucks 등 Realm 고객사의 로고

10억 명 이상이 Realm을 사용하고 있습니다

전 세계 회사들을 통해 수십억 명 이상이 Realm을 사용하고 있습니다. 은행, 포춘 500 기업, 앱스토어 1등 앱부터 다양한 스타트업까지 모든 곳에서 사용하고 있습니다.

커뮤니티를 위해 엄선한 콘텐츠

Realm 커뮤니티 페이지에서 사용하는 언어의 신규 뉴스와 중요 토픽을 만나보세요. Realm은 저명한 개발자 컨퍼런스의 녹화 영상을 제공하고, 지역 모임 및 이벤트 등 다양한 행사를 주최하면서, 더 나은 앱을 만드는데 필요한 지식을 널리 알리는 데 기여하고 있습니다.

수십만 명의 개발자들이 Realm을 선택한 이유를 확인해 보세요


개발 문서보기