[ 一日30分 인생승리의 학습법] pocketbase 시작하기
2024.05.14 00:44
[ 一日30分 인생승리의 학습법] pocketbase 시작하기
pocketbase 시작하기
간단하게 백앤드 서버를 구축할 수 있고, 비용도 저렴한 서비스를 찾는 도 중 pocketbase를 알게 되었다.

pocktbase란?
Go 언어로 작성된 단 하나의 파일로 구성된 벡엔드 어플리케이션인데요. 기본적으로 인증, 데이터베이스 (Sqlite), 스토리지 기능까지 모두 들어가 있어서 아주 간편하게 벡엔드 서비스를 구축할 수 있습니다.
다양한 프론트엔드 프레임워크 지원
플러터, 스벨트, VUE, React, Angular 등 다양한 프레임워크를 지원한다고 소개되고 있습니다만, 백엔드 API 를 빠르게 구축할 수 있도록 구성되어있는 어플리케이션이기때문에, REST API 방식으로 통신할 수 있는 모든 서비스들이 가능하다고 볼 수 있습니다.

자바스크립트 SDK와 Dart SDK를 지원하기 때문에 웹어플리케이션 뿐 아니라 모바일 어플리케이션에 대한 대응도 염두에 두고 개발된 모양입니다.
Docker file로 구성하여 실행하기
1단계: Dockerfile 작성
먼저, PocketBase를 실행하기 위한 Dockerfile을 작성해야 합니다. Dockerfile은 Docker 이미지를 빌드하는 데 필요한 지침을 포함합니다. 다음은 PocketBase용 간단한 Dockerfile 예제입니다:
# 기본 이미지로 alpine 사용
FROM alpine:latest
# 작업 디렉토리 설정
WORKDIR /app
# PocketBase 바이너리 다운로드 (Linux AMD64 버전)
ADD https://github.com/pocketbase/pocketbase/releases/download/v0.21.3/pocketbase_0.21.3_linux_amd64.zip /app/pocketbase.zip
# unzip 설치 및 바이너리 압축 해제
RUN apk add - no-cache unzip && \
unzip /app/pocketbase.zip -d /app && \
chmod +x /app/pocketbase && \
rm /app/pocketbase.zip
# 포트 8090 열기
EXPOSE 8090
# PocketBase 실행
CMD ["/app/pocketbase", "serve", " - http=0.0.0.0:8090"]
이 Dockerfile은 PocketBase의 최신 Linux AMD64 바이너리를 다운로드하고, 실행 권한을 부여한 후, 8090 포트에서 PocketBase를 실행합니다.
2단계: Docker 이미지 빌드
Dockerfile을 작성한 후, 해당 파일이 있는 디렉토리에서 다음 명령어를 사용하여 Docker 이미지를 빌드할 수 있습니다:
docker build -t pocketbase .
이 명령어는 현재 디렉토리(.)의 Dockerfile을 사용하여 pocketbase라는 이름의 Docker 이미지를 빌드합니다.
3단계: Docker 컨테이너 실행
이미지가 성공적으로 빌드되면, 다음 명령어를 사용하여 PocketBase Docker 컨테이너를 실행할 수 있습니다
docker run -d -p 8090:8090 --name pocketbase pocketbase
이 명령어는 pocketbase 이미지를 사용하여 pocketbase라는 이름의 컨테이너를 백그라운드(-d)에서 실행하고, 호스트의 8090 포트를 컨테이너의 8090 포트에 바인딩합니다.
이제 PocketBase가 Docker 컨테이너 내에서 실행되며, 브라우저를 통해 http://localhost:8090/_/에 접속하면 PocketBase의 웹 admin 데시보드 UI에 접근할 수 있습니다.

먼저 admin 계정을 만든 후 접속을 하면

user 테이블이 기본적으로 생성이 되어있고 오른쪽 상단 API Preview 를 통해 api관련 해서 볼수가 있습니다.
New collection 을 통해 컬렉션이 생성이 되면 자동적으로 crud는 되는 것 같다. 이렇게 쉽게 백서비스를 구성할수가 있고 유저 인증 및 auth2 까지 기본적으로 사용할수가 있어서 스타트업에서나 개인 포트폴리오 할때 유용하게 사용할수있을 것 같다
주요 다른 서비스와 비교
PocketBase vs Supabase vs firebase 단순 표로 비교 해보았다


장단점이 있기 떄문에 각자의 개발환경에 맞게 사용하는 것을 추천한다
[출처] https://eheh34w.medium.com/pocketbase-%EC%B2%B4%ED%97%98%EA%B8%B0-7940df567476
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

