WIPIVERSE

임베디드 데이터베이스

임베디드 데이터베이스(embedded database)는 데이터베이스 관리 시스템(DBMS)이 독립적인 서버 프로세스로 동작하는 대신, 응용 소프트웨어(애플리케이션) 내부에 라이브러리 형태로 통합되어 함께 동작하는 데이터베이스 시스템을 말한다. 최종 사용자에게 데이터베이스 시스템의 존재가 드러나지 않으며, 별도의 데이터베이스 서버 설치나 관리자 개입 없이 애플리케이션 자체에서 데이터 저장 및 관리를 수행할 수 있다.

주요 특징

임베디드 데이터베이스는 일반적인 클라이언트-서버 방식의 데이터베이스와 달리 다음과 같은 특징을 가진다.

  • 서버리스(serverless): 별도의 데이터베이스 서버 프로세스가 필요하지 않으며, 애플리케이션 프로세스 내에서 직접 데이터를 읽고 쓴다.
  • 경량성: 제한된 메모리와 저장 공간에서도 동작할 수 있도록 설계되어, 리소스가 제약된 환경에 적합하다.
  • 제로 구성(zero-configuration): 데이터베이스 설치, 사용자 계정 생성, 네트워크 설정 등의 과정이 필요하지 않다.
  • 내장형 통합: 애플리케이션 코드와 동일한 프로세스 주소 공간에서 실행되므로 통신 오버헤드가 낮다.

기술 분류

임베디드 데이터베이스는 다음 기준에 따라 다양하게 분류될 수 있다.

  • API 방식: SQL 기반 인터페이스 또는 키-값 저장소(key-value store) 방식의 네이티브 API를 제공한다.
  • 데이터베이스 아키텍처: 클라이언트-서버 방식과 인-프로세스(in-process) 방식이 있다.
  • 저장 모드: 디스크 기반(on-disk), 메모리 기반(in-memory), 또는 이 둘의 혼합 방식이 있다.
  • 데이터 모델: 관계형(relational), 객체 지향(object-oriented), 엔티티-속성-값(EAV) 모델, 네트워크(CODASYL) 모델 등이 있다.

대표적인 구현체

널리 알려진 임베디드 데이터베이스 제품으로는 SQLite, Berkeley DB(Oracle), RocksDB(Facebook), LevelDB(Google), LMDB(OpenLDAP), DuckDB, H2, HSQLDB, Apache Derby, Firebird Embedded, Microsoft SQL Server Compact, eXtremeDB 등이 있다. 이 중 SQLite는 가장 널리 배포된 SQL 데이터베이스 엔진으로, Android, iOS, macOS, Windows 10 등 여러 운영체제에 기본 포함되어 있으며, Chromium 웹 브라우저 등에서도 사용된다.

용어상의 혼란

"임베디드(embedded)"라는 용어는 때로 임베디드 시스템(내장형 시스템)에서 사용되는 데이터베이스를 지칭하는 의미로도 쓰이지만, 이는 위에서 정의한 개념과 반드시 일치하지는 않는다. 실제로 임베디드 데이터베이스 제품 중 실시간 임베디드 시스템(통신 스위치, 가전제품 등)에 사용되는 것은 일부에 불과하다. 임베디드 데이터베이스의 핵심은 "애플리케이션에 내장되어 동작하는 방식"에 있으며, 반드시 임베디드 하드웨어 전용이라는 의미는 아니다.

활용 분야

모바일 애플리케이션, 데스크톱 소프트웨어, 웹 브라우저, IoT 기기, 게임, 의료 기기, 네트워크 라우터, 금융 거래 처리 시스템, IP 전화 통신 시스템, POS(Point of Sale) 시스템 등 다양한 분야에서 사용된다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기