objectbox/objectbox-java

Database for Android and JVM - first and fast, lightweight on-device vector database

ObjectBox Java – 장치 내 NoSQL 데이터베이스에 벡터 검색 기능 탑재

무엇인가요

ObjectBox‑Java는 Java 및 Kotlin 앱(안드로이드, 데스크톱, 서버)용 경량 장치 내 데이터베이스입니다. 일반 객체(POJO)를 직접 저장하므로 SQL을 작성할 필요가 없습니다. 이 라이브러리는 또한 벡터 검색 엔진을 내장하고 있어, 일반 데이터와 함께 고차원 임베딩(embeddings)을 저장하고 빠르게 유사성 쿼리를 실행할 수 있습니다. 이는 RAG, 생성형 AI 또는 추천 기능에 유용합니다.

왜 사용해야 할까요

기능 당신에게 의미하는 바
최초의 장치 내 벡터 DB 임베딩을 로컬에 저장하고 원격 서비스 없이 유사성 검색을 수행할 수 있습니다.
고성능 벤치마크에 따르면 CRUD 연산이 SQLite나 Realm보다 빠르며, CPU, 메모리, 배터리 사용량이 낮아 모바일 또는 엣지 디바이스에 적합합니다.
객체 지향 API @Entity 클래스를 정의하고 Box<T>를 얻어 put, get, remove를 호출하기만 하면 됩니다. SQL 문자열 없이 컴파일 시 타입 안정성 보장.
내장된 관계 1대다, 다대다 관계는 자동으로 처리되어 복잡한 데이터 모델을 단순화합니다.
크로스 플랫폼 안드로이드 및 모든 JVM(리눅스, 맥OS, 윈도우)에서 작동하며 ARM CPU도 지원합니다.
동기화 및 타임시리즈 확장 기능 (별도 제품) 장치 간 데이터 동기화 또는 타임시리즈 데이터 저장을 옵션으로 추가 가능.

사용 방법 (간략한 예시)

@Entity
public class Person {
    @Id long id;               // 자동 생성된 기본 키
    String firstName;
    String lastName;
}

BoxStore store = MyObjectBox.builder()
        .name("person-db")
        .build();
Box<Person> box = store.boxFor(Person.class);

Person p = new Person();
long id = box.put(p);          // 생성
Person loaded = box.get(id);   // 읽기
loaded.lastName = "Smith";
box.put(loaded);               // 수정
box.remove(loaded);            // 삭제

Kotlin 사용도 동일한 어노테이션을 사용해 유사하게 가능합니다.

프로젝트에 추가하는 방법

  • Gradle – io.objectbox 플러그인을 추가(또는 버전 카탈로그 사용)하고 Maven Central에서 ObjectBox 종속성 가져오기.
  • Maven – JVM 프로젝트에서 지원됨. 예제 리포지토리에서 pom 파일 참조.
  • Java 8+ (또는 Kotlin 1.7+) 필요. 안드로이드 5.0+ 및 최신 데스크톱 OS에서 작동.

더 알아보기

라이선스

Apache 2.0 (이 리포지토리 내 코드). 기타 ObjectBox 컴포넌트는 별도 라이선스 조건 적용.


ObjectBox Java는 로컬 데이터 저장 및 장치 내 벡터 검색에 특화된 진정한 소프트웨어 프로젝트로, 엣지 측에서 임베딩의 유사성 검색을 가능하게 하여 AI/ML의 최전선을 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트