2023년 9월 2일
베타 데이터 기반을 PocketBase로 전환
오락실 데이터와 관리자 편집을 PocketBase로 이전.
도입
개발 기반
#오락실문서
eric

한국에서 Alpha를 공개한 뒤 오락실 수정 요청이 하루 약 20건 이상 들어오기 시작했다. 내용을 읽고 저장된 값을 직접 고치는 방식에서는 요청이 늘어나는 만큼 관리자의 입력 작업도 늘어난다. 여기에 오락실이 150곳을 넘으면서 게임과 지역으로 목록을 좁힐 필요도 커졌다.

9월 2일의 Beta는 이런 상황에서 Firebase를 PocketBase로 옮긴 업데이트다. 새 저장소를 선택하기에 앞서, 데이터를 어떻게 나누고 관리 화면에서 어떻게 갱신할지부터 함께 검토했다.

수정 요청과 데이터 구조의 확대

입력 폼이 있더라도 제보가 자유 문장으로 들어오면 관리자가 내용을 해석하고 반영할 항목을 찾아야 한다. 요청 수가 많아질수록 처리 속도를 높이려면 입력뿐 아니라 자료의 구조도 정리해야 한다.

예를 들어 게임 시리즈와 그 안의 버전을 한 개념처럼 다루면, 시리즈를 기준으로 찾을 때도 버전별 정보를 반복해서 맞춰 봐야 한다. 기존 모델은 이런 구분이 충분하지 않았다. 게임과 지역 조건을 제공하려면 화면에서 비교하는 정보가 저장 단계에서도 구별돼 있어야 했다.

Mermaid
flowchart TD
    accTitle: 전환을 요구한 두 문제
    accDescr: 늘어난 요청과 검색 조건은 수동 반영과 기존 데이터 구조의 한계를 드러냈다.
    A["수정 요청과 오락실 증가"] --> B
    B["수동 반영과 모델 관리 부담"] --> C
    C["관계와 API 재구성"]

초기 입력 폼의 원본 캡처. 데이터 모델을 정리하던 당시의 입력 단위를 보여준다.

PocketBase의 기능과 선택 이유

7월부터 REST API와 SQL 데이터베이스를 조사했다. REST API는 주소와 요청 방식으로 데이터를 읽고 쓰는 통로이고, SQL 데이터베이스는 구조화된 자료를 조회하는 기반이다. 여기에 인증과 관리 도구까지 직접 만들면 전환할 범위가 커진다.

PocketBase는 SQLite를 바탕으로 인증과 REST API, SDK를 제공한다. SDK는 프로그램에서 이 API를 사용하기 위한 도구다. 관계를 정리하는 작업과 관리자 편집을 연결하기에 이 구성이 적합하다고 봤다. 시리즈와 버전처럼 쓰임이 다른 정보를 나눠 저장하도록 모델도 정리했다.

Mermaid
flowchart TD
    accTitle: PocketBase 선택 기준
    accDescr: 정규화된 저장 구조와 인증 REST API SDK를 함께 사용한다.
    A["SQLite 기반 관계 정리"] --> B
    B["인증과 REST 및 SDK"] --> C
    C["관리자 편집 연결"]

관리자 편집과 Beta의 탐색 기능

8월에는 Firebase용 관리자 폼을 PocketBase SDK 요청으로 옮겼다. Alpha에도 Firebase로 전송하는 기능이 있었지만, 이번에는 정리한 관계에 맞춰 필드를 갱신한다. 로그인은 관리자 편집을 위한 것이며 일반 이용자 계정 기능까지 도입한 것은 아니다.

이 데이터로 검색과 고급 게임 필터, 시도와 도시별 필터를 제공한다. 선택 조건은 다음 접속에도 기억하고 홈 목록의 표현도 조절할 수 있다. 제보는 다른 페이지로 이동하기보다 보고 있는 정보 옆에서 인라인으로 제출하도록 바꿨다.

Mermaid
flowchart TD
    accTitle: 베타의 읽기와 쓰기
    accDescr: 이용자는 조건을 좁히고 관리자는 SDK로 갱신하지만 검토는 계속 필요하다.
    A["검색과 게임 및 지역 필터"] --> B
    B["구조화된 수정 제보"] --> C
    C["관리자 SDK 반영"] --> D
    D["변경 검토"]

직접 갱신 이후의 검토와 복원

관리자는 편집 화면을 통해 값을 갱신하고 이용자는 조건으로 후보를 좁힐 수 있게 됐다. 예를 들어 지역이나 게임을 찾는 작업이 각 점포의 설명을 하나씩 읽는 일에만 의존하지 않게 된 것이다.

그러나 잘못된 변경을 되돌리는 기능은 아직 없다. 관리자가 변경 내용을 계속 살펴야 하고, 약 이틀 동안 접속하지 않으면 인증 세션이 사라지는 문제도 남았다. 편집이 쉬워진 만큼 누가 무엇을 바꿨는지 확인하고 복원할 방법을 준비할 필요가 있다.

참고: 뮤즈캣 엔지니어링 기록.

뮤즈캣
리듬게이머의 최고의 파트너