콘텐츠로 이동

앱 데이터베이스

핵심 요약MonstarX가 만드는 모든 앱에는 첫 빌드 때 만들어지는 전용 비공개 데이터베이스가 있습니다. 백엔드 → 데이터베이스에서 모든 테이블과 행, 마이그레이션을 보고 읽기 전용 SQL을 실행할 수 있습니다. 레코드를 추가하거나 바꾸려면 관리자 탭을 쓰거나 대화창에서 요청하세요. 미리보기와 게시된 앱은 같은 데이터를 쓰며, 버전을 복원해도 데이터는 바뀌지 않습니다.

데이터베이스는 앱이 정보를 보관하는 곳입니다. 카페의 메뉴, 사람들이 넣은 주문, 사용자가 올린 레시피, 로그인할 때 쓰는 계정이 모두 여기에 저장됩니다. MonstarX로 만드는 모든 앱에는 첫 빌드 때 만들어지는 전용 비공개 데이터베이스가 있습니다. 다른 사람의 앱은 이 데이터베이스를 읽을 수 없습니다.

데이터베이스를 직접 설계할 필요는 없습니다. 무언가를 기억해야 하는 기능을 요청하면 MonstarX가 필요한 테이블을 추가하고, 그 테이블을 읽고 쓰는 코드까지 작성합니다.

  1. 프로젝트를 열고 상단 바에서 백엔드를 클릭하세요.

  2. 데이터베이스를 클릭하세요. 왼쪽에 테이블 목록이 행 수와 함께 표시됩니다.

  3. 테이블을 클릭하면 행이 보입니다. MonstarX는 처음 50개를 보여 줍니다.

목록 맨 위의 상자에는 데이터베이스가 있는 곳과 이름이 표시됩니다. 테이블 아래의 마이그레이션에는 지금까지 데이터베이스를 만들어 온 모든 변경이 나열됩니다(아래에서 자세히 설명합니다). 앱이 쓰인 뒤 행 수를 다시 세려면 테이블 옆의 새로고침 화살표를 클릭하세요.

처음부터 있는 테이블은 무엇인가요?

섹션 제목: “처음부터 있는 테이블은 무엇인가요?”

아무것도 요청하지 않아도 모든 앱에는 user, session, account, verification 테이블 네 개가 있습니다. 앱에 가입한 사람과 로그인 정보를 담는 테이블입니다. 사용자 계정을 참고하세요. 나머지 테이블은 menu_items나 recipes처럼 MonstarX가 앱을 위해 만든 것입니다.

네, 데이터를 조회하는 용도로는 가능합니다. SQL은 데이터베이스가 쓰는 언어입니다. 위쪽 입력란에 쿼리를 입력하고 실행을 클릭하세요. 결과가 아래에 표로 나옵니다.

예를 들면 이렇습니다.

SELECT title, country_code, tags FROM recipes ORDER BY created_at DESC LIMIT 5

알아 두면 좋은 점:

  • 입력란은 읽기 전용입니다. 한 번에 문 하나만, 그리고 데이터를 읽는 SELECT, WITH, PRAGMA, EXPLAIN 문만 실행합니다. INSERT, UPDATE, DELETE, DROP처럼 데이터를 바꾸는 문은 거부되므로, 실수로 앱을 망가뜨릴 일이 없습니다.
  • 쿼리 결과는 최대 200행까지 표시됩니다.
  • PRAGMA table_info(recipes)를 실행하면 테이블의 열 목록이 나옵니다.
  • 데이터가 Supabase나 Railway Postgres에 있는 앱에서는 SELECT, WITH, TABLE, EXPLAIN을 쓸 수 있습니다.

레코드는 어떻게 추가하고, 바꾸고, 삭제하나요?

섹션 제목: “레코드는 어떻게 추가하고, 바꾸고, 삭제하나요?”

SQL 없이 할 수 있는 쉬운 방법이 두 가지 있습니다.

  • 관리자 탭. 모든 앱에는 미리보기 옆에 관리자 패널이 있습니다. 테이블을 업무 용어로 된 쉬운 양식으로 보여 주며, 여기에서 레코드를 추가, 편집, 삭제할 수 있고 실행 취소도 됩니다. 변경 사항은 즉시 앱에 반영되고 크레딧이 들지 않습니다. 앱 관리자 패널을 참고하세요.
  • 대화창. “커피 메뉴에 플랫 화이트를 $4.50로 추가해 주세요”, “테스트 주문을 지워 주세요”처럼 원하는 것을 말하세요. 대화 모드에서는 MonstarX가 아무것도 바꾸지 않고 데이터를 살펴보며 질문에 답할 수도 있습니다. 만들기, 계획, 대화 모드를 참고하세요.

빌드할 때 MonstarX는 데이터베이스에 무엇을 하나요?

섹션 제목: “빌드할 때 MonstarX는 데이터베이스에 무엇을 하나요?”

기능에 정보를 보관할 곳이 필요하면 MonstarX가 마이그레이션을 작성합니다. 마이그레이션은 0001_create_menu_and_orders처럼 번호가 붙은 지시 묶음으로, 테이블을 만들거나 바꿉니다. MonstarX는 마이그레이션을 데이터베이스에 적용하고 코드와 함께 저장하므로, 테이블과 코드가 항상 일치합니다. 샘플 메뉴처럼 초기 데이터를 넣는 마이그레이션도 있습니다(위 예시의 0002_seed_recipes).

백엔드의 마이그레이션 목록에는 실행된 모든 마이그레이션이 순서대로 표시됩니다. 0000_monstarx_auth는 MonstarX가 직접 만든 것으로, 계정 테이블을 만듭니다.

앱을 바꾸거나 복원해도 데이터는 남나요?

섹션 제목: “앱을 바꾸거나 복원해도 데이터는 남나요?”

네. 데이터는 코드와 따로 보관됩니다.

  • 새 빌드를 해도 모든 행이 남습니다. 빌드가 열을 추가하는 등 테이블을 바꿀 때는 기존 데이터를 유지하는 마이그레이션을 씁니다.
  • 버전을 복원하면 코드만 이전 상태로 돌아갑니다. 앱 데이터는 그대로입니다. 버전을 참고하세요.
  • 미리보기와 게시된 앱은 같은 데이터베이스를 씁니다. 미리보기에서 테스트로 넣은 주문은 게시된 앱에도 있고, 그 반대도 마찬가지입니다. 그래서 테스트하며 추가한 샘플 행이 고객에게도 보입니다.

데이터를 내 데이터베이스에 보관할 수 있나요?

섹션 제목: “데이터를 내 데이터베이스에 보관할 수 있나요?”

네. 백엔드클라우드의 이 앱이 데이터를 보관하는 위치에서 고를 수 있습니다.

  • MonstarX 데이터베이스: 기본값이며 설정할 것이 없습니다.
  • Supabase (Postgres): 내 Supabase 프로젝트입니다. Postgres는 많은 팀이 이미 쓰는 인기 있는 데이터베이스입니다. Supabase를 참고하세요.
  • Railway (Postgres): 내 Railway 데이터베이스입니다. Railway를 참고하세요.
  • Firestore(내 Firebase 프로젝트): 앱의 레코드를 Firebase에 보관합니다. Firebase를 참고하세요.

MonstarX가 테이블, 행, 계정을 새 위치로 복사하고, 앱이 그곳을 쓰도록 수정합니다. 나중에 되돌리기로 다시 옮겨 올 수 있습니다. 데이터가 Firestore에 있을 때는 데이터베이스에 테이블 대신 Firestore 컬렉션이 표시됩니다(읽기 전용이며, 쓰기는 앱이 합니다).

데이터베이스 섹션에서 행을 바로 편집할 수 있나요?

아니요. 데이터베이스 섹션은 읽기만 합니다. 레코드 편집은 실행 취소가 되는 쉬운 스프레드시트 같은 관리자 탭에서 하거나, 대화창에서 MonstarX에 요청하세요. 앱 관리자 패널을 참고하세요.

테스트 주문이 게시된 앱에 나타난 이유는 무엇인가요?

미리보기와 게시된 앱은 데이터베이스 하나를 같이 씁니다. 그래서 테스트하며 넣은 것도 모두 실제 데이터입니다. 테스트가 끝나면 관리자 탭에서 테스트 행을 지우세요.

이전 버전으로 복원하면 데이터가 지워지나요?

아니요. 버전을 복원하면 코드만 바뀝니다. 데이터베이스의 행은 모두 그대로 남습니다.

데이터를 다운로드할 수 있나요?

SELECT 쿼리로 어떤 테이블이든 읽고 결과를 복사할 수 있습니다. 또는 데이터를 내 Supabase나 Railway Postgres 데이터베이스로 옮기면 전체 접근 권한을 가질 수 있습니다.

어떤 종류의 데이터베이스인가요?

앱마다 따로 있는 비공개 SQL 데이터베이스입니다. SQL은 데이터베이스의 표준 언어이므로 어떤 개발자든 다룰 수 있습니다. Postgres를 원한다면 데이터를 Supabase나 Railway로 옮기세요.

앱을 가져왔다는 메시지가 보이는 이유는 무엇인가요?

MonstarX는 가져온 앱에는 데이터베이스를 만들지 않았습니다. 그 앱의 데이터는 앱 자체 코드가 보관하는 곳에 있습니다. 앱이 읽는 키는 시크릿에 있습니다.