PocketBase – 단일 파일로 제공되는 오픈소스 실시간 백엔드
(pocketbase.io)- PocketBase는 데이터베이스, 인증, 파일 저장소, 관리 대시보드를 포함한 단일 파일형 오픈소스 백엔드
- 스키마 빌더, 데이터 검증, 실시간 구독, REST API를 갖춘 내장형 고성능 데이터베이스 구조
- 이메일/비밀번호 및 OAuth2 로그인(Google, Facebook, GitHub, GitLab) 지원으로 사용자 관리 간소화
- 로컬 또는 S3 스토리지에 파일을 안전하게 저장하고, 데이터베이스 레코드에 미디어를 연결해 썸네일 자동 생성 가능
- 독립 실행형 앱 또는 Go·JavaScript 확장 가능한 프레임워크로 활용 가능해, 경량 맞춤형 백엔드 구축에 유용
PocketBase 개요
- PocketBase는 단일 실행 파일로 동작하는 오픈소스 백엔드 플랫폼
- 데이터베이스, 인증, 파일 저장, 관리 대시보드를 통합 제공
- 별도 서버 구성 없이 빠르게 실행 가능한 구조
데이터베이스 기능
-
스키마 빌더와 데이터 검증, 실시간 구독, REST API를 지원하는 내장형 데이터베이스 포함
- 실시간 데이터 변경 감지 및 구독 기능 제공
- REST API를 통해 손쉽게 데이터 조회, 생성, 수정, 삭제 가능
사용자 인증
- 앱 사용자 관리 및 이메일/비밀번호 기반 로그인 지원
- OAuth2 인증을 통해 Google, Facebook, GitHub, GitLab 계정으로 가입 및 로그인 가능
파일 저장소
- 파일을 로컬 또는 S3 스토리지에 안전하게 저장 가능
- 데이터베이스 레코드에 미디어 파일을 첨부할 수 있음
- 업로드 시 썸네일 자동 생성 기능 제공
확장성과 개발자 지원
- PocketBase는 독립 실행형 애플리케이션으로 사용하거나, Go 및 JavaScript 훅(hook) 을 통해 확장 가능한 프레임워크로 활용 가능
- 개발자는 자체 로직을 추가해 맞춤형 백엔드 구현 가능
JavaScript SDK 예시
- JavaScript SDK를 통해 PocketBase 서버와 상호작용 가능
- 예시 코드에서는
example컬렉션의 레코드 목록 조회, 단일 레코드 조회·삭제·생성, 실시간 구독 및 구독 해제 기능을 보여줌 -
pb.collection('example').getList(),getOne(),create(),delete(),subscribe()등의 메서드 제공
- 예시 코드에서는
Hacker News 의견
-
“SQLite는 확장성이 없다”는 말은 대부분 조기 최적화의 착각임
실제로 WAL 경합 한계에 부딪히는 경우는 드물고, 단일 바이너리의 단순함이 분산 시스템의 복잡함보다 훨씬 낫다고 생각함
요즘은 작은 프로젝트조차 DB 클러스터와 Redis 캐시를 당연히 붙이지만, Pocketbase는 CRUD 앱의 99%에서 병목이 DB가 아니라 네트워크 지연과 개발자의 관리 시간임을 보여줌- 대부분의 앱은 기술적 병목보다 사용자 확보가 더 어려운 병목임
- 나는 개인 블로그를 가장 저렴한 DigitalOcean droplet에 올리고 SQLite를 사용 중임
Rust CLI 벤치마크로 테스트해봤는데, 같은 머신에서 MySQL이나 Postgres보다 성능이 더 좋았음
이런 규모의 프로젝트엔 SQLite가 최적임 - 하지만 decimal 타입 부재 때문에 금융 연산에는 SQLite를 쓰기 어려움
애플리케이션 쪽에서 모든 계산을 처리해야 해서 번거로움
-
Pocketbase를 보면 바로 업보트를 누름
여러 프로덕션 앱에서 사용 중인데 매우 안정적임
가끔 깨지는 변경이 있지만, 전반적으로 훌륭하고 확장성도 좋음
필요한 기능이 없을 때는 약간 까다롭지만 숙련된 개발자라면 충분히 해결 가능함- “문서를 읽을 시간도 없고 AI 도구에만 의존하려면 Pocketbase를 쓰지 말라”는 FAQ 문구가 정말 마음에 듦
- 나도 같은 생각임. JS로 확장해봤는데 아주 잘 작동함
다만 개발자가 혼자라서 향후 유지보수가 걱정됨
그래도 프론트와 백을 분리해야 할 때 정말 좋은 선택임 - 어떤 종류의 프로덕션 앱을 Pocketbase로 운영 중인지 궁금함
-
개인 프로젝트와 내부 툴에 Pocketbase를 애용함
PocketPages와 함께 쓰면 파일 기반 라우팅과 템플릿을 쉽게 쓸 수 있음
자동 DB 마이그레이션 기능 덕분에 스키마 변경을 버전 관리에 포함시킬 수 있음
심지어 Gemini 프로토콜 서버를 붙여서 Lagrange로 개인 지식 그래프를 탐색함- Raspberry Pi 5에 호스팅하려는데 성능 요구가 어떤지, Supabase와 비교해 특이한 제약이 있는지 궁금함
- Lagrange가 무엇인지 모르겠음. LLM이나 지식 그래프 관련 프로젝트로는 안 보임
-
Pocketbase는 GUI로 설정 가능한 백엔드 서버임
거의 코드 없이도 작동하는 백엔드를 만들 수 있어서 프로토타입, MVP, 간단한 앱에 적합함
이런 개념은 Firebase가 대중화시켰음- 구체적으로 어떤 일을 하는지 궁금함
내가 짜는 백엔드는 수백~수천 줄의 코드가 필요한데, 그걸 어떻게 대체하는지 알고 싶음
이런 툴로 만들 수 있는 앱의 범위가 궁금함 - 홈페이지 예시를 보니 Parse를 떠올리게 함
- 구체적으로 어떤 일을 하는지 궁금함
-
사이드 프로젝트에서 Pocketbase를 써봤는데 정말 인상 깊었음
Django로 오래 일해왔는데, 중소형 프로젝트에서는 전통적인 백엔드를 직접 만드는 것보다 Pocketbase가 훨씬 잘 맞음
질문 있으면 기꺼이 답변 가능함- Django의 GIS 통합이 훌륭한데, Pocketbase는 어떤지 궁금함
그리고 PostgreSQL도 지원하는지, 아니면 SQLite 전용인지 알고 싶음 - 기존 SQLite 기반 백엔드에서 마이그레이션이 얼마나 쉬운지도 궁금함
- 나도 개인 프로젝트에서 써봤는데, LLM들이 Pocketbase와의 상호작용을 자꾸 혼동함
그래서 Claude Skill을 만들어봤는데, 혹시 비슷한 경험이 있는지 궁금함
- Django의 GIS 통합이 훌륭한데, Pocketbase는 어떤지 궁금함
-
Trailbase는 같은 개념을 Rust로 구현한 버전임
-
Pocketbase를 사이드 프로젝트의 인증 레이어로 사용 중임
kavla.dev에서 운영 중이며, 훅 시스템이 훌륭함
Go 이벤트 훅 문서 덕분에 인프라 자동화도 쉽게 구현 가능함 -
SQLite와 DuckDB로 MVP를 빠르게 만들었지만, 나중에 백업과 프로덕션화 단계에서 후회했음
처음부터 Supabase로 시작했으면 더 수월했을 것 같음 -
나는 Pocketbase로 OpenSOHO를 만들었고, 덕분에 개발 시간을 크게 절약했음
백엔드를 재활용하도록 약간 수정했지만 어렵지 않았음
스크린샷만 봐도 Pocketbase의 흔적이 바로 보임
GitHub 링크 -
Pocketbase의 SQLite 백업이 걱정돼서, 실행 중에도 sqlite3_rsync로 백업할 수 있는 도구 sqlrsync.com을 직접 만들었음
MVP는 작동 중이며, Cloudflare Durable Objects 기반이라 빠르고 안정적임
피드백 환영함- 나도 SQLite를 좋아함. litestream으로 지속 복제를 쓰고 있는데, 혹시 SQLite rsync를 사용하는지 궁금함
- SQLite의 온라인 백업 API를 써봤는지 궁금함. 원시 파일 접근은 피하는 게 좋을 듯함
- sqlrsync와 litestream의 차이점이 무엇인지 알고 싶음