# Show GN: Snaplake - 백업 복원 없이 과거 DB 데이터를 조회하는 셀프호스팅 도구

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27021](https://news.hada.io/topic?id=27021)
- GeekNews Markdown: [https://news.hada.io/topic/27021.md](https://news.hada.io/topic/27021.md)
- Type: show
- Author: [abcdkh1209](https://news.hada.io/@abcdkh1209)
- Published: 2026-02-26T15:03:34+09:00
- Updated: 2026-02-26T15:03:34+09:00
- Original source: [snaplake.clroot.io](https://snaplake.clroot.io)
- Points: 6
- Comments: 1

## Summary

**Snaplake**은 데이터베이스의 과거 상태를 복원 없이 바로 조회할 수 있게 하는 **셀프호스팅 스냅샷 도구**입니다. PostgreSQL·MySQL 테이블을 주기적으로 Parquet 파일로 저장하고, DuckDB를 통해 원하는 시점의 데이터를 즉시 SQL로 탐색할 수 있습니다. 스냅샷 간 행 단위 비교와 S3 호환 스토리지 지원으로, 백업 복원 절차 없이 데이터 변화를 빠르게 추적할 수 있습니다.

## Topic Body

회사에서 1인 개발자로 여러 서버/서비스를 관리하고 있는데, 종종 "지난달 말에 이 데이터가 어떻게 되어 있었어?"라는 질문을 받곤 합니다.  
그때마다 pg_dump 백업을 찾아서 임시 DB를 띄우고, 복원하고, 쿼리 날리고, 정리하는 과정을 반복하는 게 너무 번거로워서 직접 만들게 되었습니다.  
Snaplake는 DB 테이블을 주기적으로 Parquet 파일로 스냅샷하고, 백업 복원 없이 DuckDB로 바로 SQL 조회할 수 있는 셀프호스팅 도구입니다.  
  
주요 기능  
- 스냅샷 캡처 — PostgreSQL, MySQL 테이블을 Apache Parquet 파일로 저장. Cron 기반 자동 스냅샷과 보관 정책(일별/월별) 지원  
- SQL 쿼리 — DuckDB 기반으로 어떤 시점의 스냅샷이든 바로 SQL 조회. 테이블 조인, 집계, CSV/JSON 내보내기 가능  
- 스냅샷 비교 — 두 시점의 스냅샷을 나란히 놓고 행 단위 diff. 추가/삭제/변경된 행을 색상으로 구분  
- 유연한 스토리지 — 로컬 파일시스템 또는 S3 호환 스토리지(AWS S3, MinIO 등)  
  
기술 스택  
- Backend: Kotlin, Spring Boot 3.4, Java 21  
- Query Engine: DuckDB (Parquet 파일 직접 쿼리)  
- Frontend: React 19, TypeScript, Vite  
- 메타데이터 저장: SQLite  
- 인증: JWT + Argon2  
  
Docker 한 줄로 바로 시작할 수 있습니다.  
```  
docker run -d --name snaplake -p 8080:8080 -v snaplake-data:/app/data abcdkh1209/snaplake:latest  
```  
  
비싼 데이터 관측 도구를 도입하기 어려운 소규모 팀이나 1인 개발자에게 유용할 것 같습니다. 피드백 환영합니다!  
  
- 랜딩: https://snaplake.clroot.io  
- GitHub: https://github.com/clroot/snaplake  
- Docker Hub: https://hub.docker.com/r/abcdkh1209/snaplake

## Comments



### Comment 51979

- Author: sonic0987
- Created: 2026-02-27T03:55:07+09:00
- Points: 1

심플하지만 확실하네요 재밌어요!
