데이터베이스란
여러 사람이나 프로그램이 데이터를 쉽게 공유하기 위해 체계적으로 관리되는 데이터의 집합을 말합니다.
In-Memory DB란
데이터를 주 메모리(RAM)에 저장하는 데이터베이스의 한 종류입니다.
따라서 인메모리DB는 데이터베이스의 일종이지만, 일반적으로 말하는 데이터베이스는 디스크와 같은 비휘발성 저장소에 데이터를 저장하고, 필요할 때 메모리로 로딩하여 처리하는 방식을 사용합니다.
따라서, 인메모리DB와 일반적인 DB의 가장 큰 차이점은 데이터를 저장하는 위치에 있습니다.
인메모리DB는 데이터를 주 메모리에 저장하여 빠른 속도로 데이터를 처리할 수 있지만, 시스템의 장애나 전원 문제 등이 발생하면 데이터가 손실될 가능성이 있습니다.
반면에 일반적인 DB는 비휘발성 저장소에 제이터를 저장하기 때문에 안정적이지만, 디스크 I/O 작업으로 인해 느린 처리 속도를 보일 수 있습니다.
인메모리DB의 종류로는
Redis, Memcached, Apache Ignite, VoltDB, H2 Database가 있습니다.
Rdis: 메모리 기반의 key-value 구조 데이터 저장소로, 영속성을 지원하며 메모리 내 데이터 구조를 다양하게 지원합니다. 또한, 복제, 샤딩 등 분산 환경에서의 기능도 제공합니다.
Memcached: 분산 캐시 시스템으로, 메모리 기반의 key-value 저장소입니다. 많은 언어와 플랫폼에서 지원하며, 높은 읽기/쓰기 처리량과 낮은 지연 시간을 제공합니다.
Apache Ignite: 분상형 인메모리 데이터 그리드로, 메모리 기반의 데이터 저장과 분산 처리 기능을 제공합니다. 다양한 데이터 모뎅과 쿼리 기능을 제공하며, 대용량 데이터 처리와 분산 환경에서의 확장성이 뛰어납니다.
VoltDB: ACID를 보장하는 인메모리 데이터베이스로, 실시간 처리와 분산 환경에서의 확장성을 제공합니다. 다양한 언어와 플랫폼에서 지원되며, 높은 처리 속도와 빠른 응답 시간을 제공합니다.
H2 Database: 오픈 소스 인메모리 데이터베이스로, 경량화된 JDBC 드라이버와 브라우저 기반의 콘솔 등 다양한 기능을 제공합니다. SQL과 JDBC를 지원하며, 영속성을 위한 디스크 저장소도 제공합니다.
'🥸 CS 면접 스터디' 카테고리의 다른 글
ChatGPT로 공부하는 CS면접 준비 [Ch 1. 종류] (0) | 2023.04.25 |
---|---|
에자일(Agile)이란? (0) | 2023.04.25 |
JSON(Java Script Object Notation)이란 (1) | 2023.04.25 |
파이썬(Python)이란? (0) | 2023.04.25 |
PWA, Progressive Web App이란 무엇일까 (0) | 2023.04.24 |