포켓베이스 PocketBase - 단 하나의 파일로 구성된 오픈소스 벡엔드

Pocketbase
Pocketbase

포켓베이스

포켓베이스는 이름처럼 아주 작고 귀여운(?) 벡엔드 서비스입니다. Go 언어로 작성된 단 하나의 파일로 구성된 벡엔드 어플리케이션인데요. 기본적으로 인증, 데이터베이스 (Sqlite), 스토리지 기능까지 모두 들어가 있어서 아주 간편하게 벡엔드 서비스를 구축할 수 있습니다.

PocketBase - Open Source backend in 1 file
Open Source backend in 1 file with realtime database, authentication, file storage and admin dashboard

다양한 프론트엔드 프레임워크 지원

플러터, 스벨트, VUE, React, Angular 등 다양한 프레임워크를 지원한다고 소개되고 있습니다만, 백엔드 API 를 빠르게 구축할 수 있도록 구성되어있는 어플리케이션이기때문에, REST API 방식으로 통신할 수 있는 모든 서비스들이 가능하다고 볼 수 있습니다.

자바스크립트 SDK와 Dart SDK를 지원하기 때문에 웹어플리케이션 뿐 아니라 모바일 어플리케이션에 대한 대응도 염두에 두고 개발된 모양입니다.

간단한 후기

저도 로컬상에서만 간단한 웹앱을 만들어보았는데, 무척 편리하다는 인상입니다. 아직 버전이 0.8에 머물고 있어서 부족한 부분도 좀 엿보이긴 합니다. 이를테면 데이터 베이스 API를 아직은 일대다 수준으로만 지원하고 있어서, 다대다 모델링이 조금 까다롭습니다.

그리고 일반적인 백엔드 어플리케이션과 조금 다르다보니 배포할때 어떻게해야할지 고민이 많았는데, 일반적으로 도커 이미지로 만들어서 fly.io에 배포하는 식으로 활용하는 사례들을 접했습니다.

fly.io

Deploy app servers close to your users · Fly

fly.io는 Heroku 무료 플랜이 사라지면서 인기를 얻게 된 서비스인데, 기본적으로 무료로 도커 컨테이너가 가능하다보니 pocketbase를 배포하는 사례들을 보고 따라해봤는데, 생각보다 괜찮은 서비스 같습니다.

끝맺음

간단한 앱을 만드는 수준이라면 지금 당장 쓰기에도 꽤 훌륭한 서비스지만, 아직 정식릴리즈가 되지 않은 서비스라 당분간은 좀 지켜봐야할 것 같습니다. 이렇게 흥미로운 어플리케이션이 나온 덕분에 Go lang에 대해서도 좀 호기심이 생기네요.