🔧 설치
CLI 도구를 통해 SpacetimeDB를 독립형 데이터베이스 서버로 실행할 수 있습니다.
👉 설치 가이드: https://docs.spacetimedb.com/getting-started/installation
👉 설치 바로 가기: https://docs.spacetimedb.com/getting-started/installation
👉 시작 가이드: https://docs.spacetimedb.com/getting-started/introduction
🚀 SpacetimeDB란?
- SpacetimeDB는 서버이자 데이터베이스입니다.
- 데이터베이스 내부에서 애플리케이션 로직을 실행할 수 있는 기능이 내장된 관계형 데이터베이스입니다.
- 웹/게임 서버 없이도 완전한 애플리케이션을 개발할 수 있습니다.
- C#, Rust 등 다양한 언어를 지원합니다.
- 마이크로서비스, Docker, VM, 쿠버네티스 없이 단일 바이너리로 배포할 수 있습니다.
🏗️ SpacetimeDB 아키텍처
- SpacetimeDB는 블록체인과 무관하며, 스마트 계약과 유사한 구조를 가지고 있습니다.
- 예시: BitCraft Online의 전체 백엔드를 하나의 SpacetimeDB로 운영
최적화 대상:
- 초저지연
- 초고속
- 실시간 애플리케이션 (게임, 채팅, 협업 도구 등)
기술 요소:
- 모든 상태는 메모리에 유지
- 커밋 로그로 복구 가능
- 자동 상태 미러링 기능 내장
🪞 상태 미러링
- 클라이언트는 SQL 쿼리로 관심 있는 정보를 지정하고, 실시간 업데이트를 수신
- 상태는 읽기 전용 미러이며, 변경은 리듀서를 통해서만 가능
🧩 언어 및 SDK 지원
📦 모듈 라이브러리
- 모듈 = 스키마 + 저장 프로시저 + 비즈니스 로직
- 지원 언어: Rust, C#
- Rust 빠른 시작: https://docs.spacetimedb.com/getting-started/rust
- C# 빠른 시작: https://docs.spacetimedb.com/getting-started/csharp
💻 클라이언트 SDK
- 클라이언트 언어로 자동 코드 생성
- Rust SDK: https://docs.spacetimedb.com/client-sdks/rust
- C# SDK: https://docs.spacetimedb.com/client-sdks/csharp
- TypeScript SDK: https://docs.spacetimedb.com/client-sdks/typescript
🎮 Unity 연동
- 멀티플레이어 Unity 게임의 백엔드로 설계됨
- Unity 튜토리얼: https://docs.spacetimedb.com/unity/overview
🔑 주요 개념 정리
✅ 호스트 (Host)
- SpacetimeDB 서버 실행 환경
- 자체 실행 또는 SpacetimeDB 클라우드 사용 가능
✅ 데이터베이스
- 호스트에서 실행되는 애플리케이션
- 모듈로 구성된 테이블과 리듀서를 포함함
✅ 테이블 예시 (C#)
[SpacetimeDB.Table(Name = "players", Public = true)]
public partial struct Player {
[SpacetimeDB.PrimaryKey]
uint playerId;
string name;
uint age;
Identity user;
}
✅ 리듀서 예시 (Rust)
#[spacetimedb::reducer]
pub fn set_player_name(ctx: &spacetimedb::ReducerContext, id: u64, name: String) -> Result<(), String> {
// 처리 로직
}
👥 클라이언트
- 클라이언트는 데이터베이스와 연결되고, 리듀서를 호출하고, 공개 테이블을 쿼리할 수 있음
- SDK 생성 도구 제공: https://docs.spacetimedb.com/client-sdks/overview
🆔 신원 (Identity)
- OpenID Connect 기반 글로벌 사용자 식별자
- JWT의 발급자(issuer)와 주체(subject)를 기반으로 생성됨
🔗 연결 ID (ConnectionId)
- 클라이언트의 각 연결을 고유하게 식별하는 ID
⚡ 에너지 (Energy)
- SpacetimeDB 호스트에서 데이터 저장 및 처리 비용을 지불하는 단위
❓ 자주 묻는 질문 (FAQ)
Q. SpacetimeDB란?
→ 실시간 게임도 실행할 만큼 빠른 데이터베이스 기반 클라우드 플랫폼입니다.
Q. 어떻게 사용하나요?
→ CLI 설치 → 언어 선택 → 모듈 작성 → WebAssembly로 컴파일 → 클라우드 업로드 → 리듀서 호출 및 상태 구독
Q. 설치 방법은?
→ CLI 설치 후, 클라우드에 애플리케이션 업로드
Q. 새 데이터베이스 만들기?
→ 빠른 시작 가이드 참고: https://docs.spacetimedb.com/getting-started/introduction
Q. Unity 게임 연동은?
→ Unity 튜토리얼 가이드 참고: https://docs.spacetimedb.com/unity/overview
TI Tech Lab 이주석연구원
Add comment