# GoatDB - Deno, React를 위한 경량 NoDB

> Clean Markdown view of GeekNews topic #19714. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19714](https://news.hada.io/topic?id=19714)
- GeekNews Markdown: [https://news.hada.io/topic/19714.md](https://news.hada.io/topic/19714.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-03-13T09:31:01+09:00
- Updated: 2025-03-13T09:31:01+09:00
- Original source: [github.com/goatplatform](https://github.com/goatplatform/goatdb)
- Points: 10
- Comments: 1

## Summary

GoatDB는 경량 배포 환경을 위한 실시간 버전 관리 데이터베이스로, 별도의 인프라 없이 클라이언트에서 전체 DB를 실행하며 오프라인 우선 구조를 통해 서버가 다운되더라도 클라이언트에서 계속 작동할 수 있습니다. 엣지 네이티브 설계를 통해 대부분의 처리를 클라이언트에서 수행하여 서버 부하를 최소화하며, 실시간 동기화 지원으로 클라이언트와 서버 상태를 자동으로 동기화합니다. 또한, React Hooks를 사용하여 완전한 상태 관리 솔루션을 제공하고, 보안 모델을 통해 데이터 접근 제어와 조작된 변경 사항을 자동으로 거부하는 기능을 갖추고 있습니다.

## Topic Body

- 경량 배포 환경을 위한 **실시간 버전 관리 데이터베이스**  
- 프로토타이핑, 셀프 호스팅, 싱글 테넌트(Single-Tenant) 앱 및 백엔드 및 DB가 없는 **초경량 멀티 테넌트(Multi-Tenant) 환경**에 최적화됨   
- **별도 인프라 불필요** → 전체 DB를 클라이언트에서 실행하며, 서버 인덱싱이 필요 없음  
- **오프라인 우선(Offline-First) 구조** → 서버가 다운되더라도 클라이언트에서 계속 작동하며 복구 가능  
- **엣지 네이티브(Edge-Native)** → 대부분의 처리를 클라이언트에서 수행하여 서버 부하 최소화  
- **실시간 동기화 지원** → 자동으로 클라이언트와 서버 상태를 동기화  
  - 초기화 할때 `peers`에 복제본 위치를 설정하여 서버 클러스터를 쉽게 설정 가능   
  - 동기화 프로토콜을 이용해 서버간 동기화를 지원하며, 여러 서버를 추가해도 코드 변경 없이 확장 가능함  
- **React Hooks 사용**  
  - GoatDB의 **React Hooks**는 **완전한 상태 관리 솔루션**을 제공하며, **동기적(mutable) 상태 수정**이 가능  
  - 예를 들어, `task.set('done', true)`와 같은 변경 사항은 즉시 메모리에 반영되며, GoatDB가 자동으로 **차이 계산(diffing), 로컬 저장소 커밋, 서버 동기화, 충돌 해결**을 백그라운드에서 처리함  
- 보안 모델  
  - 각 노드는 공개/개인 키 쌍을 유지하며, 개인 키는 절대 외부로 노출되지 않음  
  - 모든 커밋은 디지털 서명되어, 조작된 변경 사항을 자동으로 거부함  
  - 사용자 정의 권한 정책을 통해 데이터 접근 제어 가능  
- 충돌 해결 방식  
  - **세 방향 병합(Three-Way Merge)** : 변경 사항이 충돌할 경우 자동 병합하여 정리  
  - **Logoot 방식의 연속 ID 할당** : 데이터 내 삽입/삭제 충돌을 방지하는 고유 식별자 시스템 적용  
  
### **예제 프로젝트**  
  
- **[Todo](https://github.com/goatplatform/todo)** → 셀프 호스팅용 최소한의 모던 투두 리스트  
- **[EdgeChat](https://github.com/goatplatform/edge-chat)** → 완전한 브라우저 기반 ChatGPT 스타일 인터페이스  
- **[Ovvio](https://ovvio.io)** → 2024년부터 GoatDB를 사용 중인 생산성 도구

## Comments



### Comment 35823

- Author: zihado
- Created: 2025-03-13T13:58:22+09:00
- Points: 1

GOAT..ㅎㄷㄷ
