데브허브 | DEVHUB | What are reactive databasesWhat are reactive databases
- 리액티브 데이터베이스는 데이터베이스 업데이트 시 서버 또는 데이터베이스 주도 이벤트를 발생시켜, 해당 이벤트를 구독하는 모든 클라이언트에게 자동으로 변경 사항을 푸시하는 새로운 유형의 데이터베이스입니다. 🔄
- 클라이언트가 지속적으로 서버에 상태를 묻는 폴링 방식 대신, 서버가 작업 완료 시 클라이언트에게 직접 알림을 보내는 이벤트 중심 방식으로 작동하여 효율성을 높입니다. 🔔
- 데이터가 필요할 때 서버가 클라이언트에 데이터를 '푸시'하는 방식으로, WhatsApp, Slack, Discord와 같은 실시간 애플리케이션에서 널리 사용되는 통신 모델입니다. 📤
- Figma, Google Sheets, Excalidraw와 같은 협업 도구 및 실시간 대시보드 등 즉각적인 업데이트가 필요한 현대적인 애플리케이션 구축에 이상적입니다. 🚀
- 특정 사용 사례에서는 복잡한 웹소켓 구현보다 확장 및 관리가 용이하며, UI 개발 방식에 대한 사전 계획이 필요하지만 장기적으로 개발을 간소화할 수 있습니다. 📈
- Firebase Realtime DB, RethinkDB와 같은 순수 리액티브 데이터베이스가 있으며, PostgreSQL에 트리거와 웹소켓을 결합하여 유사한 기능을 구현할 수도 있습니다. 🛠️
- RethinkDB는 실시간 웹, 멀티플레이어 게임, 실시간 마켓플레이스, 스트리밍 분석 등에 특화된 오픈소스 데이터베이스이며, Convex와 같은 BaaS(Backend as a Service)도 리액티브 데이터베이스를 활용합니다. 💡
- 식당에서 테이블이 비었는지 계속 묻는 대신, 테이블이 준비되면 알림을 받는 것에 비유할 수 있으며, WhatsApp의 자동 업데이트나 실시간 대시보드 등이 대표적인 활용 사례입니다. 💬