# BigQuery 샌드박스에서 결제 계정으로

BigQuery 샌드박스는 처음 손에 익히기엔 충분하지만 GA4 운영을 시작하면 네 가지 한계 — 60일 자동 삭제·DML 불가·스트리밍 적재 불가·예약 쿼리 불가 — 가 모두 걸림돌이 됩니다. 결제 계정을 연결해도 청구액이 사실상 0원에 가까운 이유와 업그레이드 절차를 정리합니다.

- 카테고리: BigQuery
- 소요 시간: 약 6분
- 난이도: 입문
- 업데이트: 2026.05.28
- 원문: /wiki/playbook/bigquery-checklist/why-upgrade-from-bigquery-sandbox

## 목차

- [샌드박스의 네 가지 한계](#sandbox-limits)
- [GA4 운영에서 즉시 부딪히는 곳](#ga4-impact)
- [결제 계정을 연결해도 청구액은 거의 0원](#cost-reality)
- [결제 계정 연결하는 방법](#how-to-upgrade)
- [자주 묻는 질문](#faq)

BigQuery는 신용카드 등록 없이도 데이터를 쌓고 쿼리를 돌려 볼 수 있는 **샌드박스(Sandbox)** 상태로 시작됩니다. 손에 익히기엔 충분하지만, GA4를 실제로 운영하기 시작하면 네 가지 한계가 모두 한꺼번에 걸림돌이 됩니다 — **60일 자동 삭제**, **DML 불가**, **스트리밍 적재 불가**, **예약 쿼리(Scheduled Queries) 불가**. 그런데 결제 계정을 연결해 ‘제대로 된 BigQuery’로 바꿔도 GA4 운영 규모에서는 청구액이 사실상 0원에 가깝습니다. 이 글은 그 네 가지 한계와, 업그레이드 절차·실제 비용 감을 한 번에 정리합니다.

## 샌드박스의 네 가지 한계

샌드박스는 “BigQuery를 한 번 써 보세요” 용도로 제공되는 무료 체험 모드입니다. 결제 계정이 연결돼 있지 않은 모든 새 프로젝트는 기본적으로 이 상태에서 시작합니다. 한계는 표에 정리한 네 가지가 핵심입니다.

| 한계 | 샌드박스 | 결제 계정 연결 후 |
| --- | --- | --- |
| **테이블 만료** | 모든 테이블·뷰·쿼리 결과가 적재 후 60일에 자동 삭제 | 만료 없음(원하면 직접 설정) |
| **DML** | `INSERT`·`UPDATE`·`DELETE`·`MERGE` 모두 차단 | 모두 사용 가능 |
| **스트리밍 적재** | 실시간 insert API 호출 불가 → GA4 intraday export 수신 불가 | 스트리밍 인서트·intraday export 모두 가능 |
| **예약 쿼리** | Scheduled Queries 등록 불가 | 매일·매시 자동 실행 등록 가능 |

이 외에도 BigQuery Data Transfer Service, BI Engine, BigQuery Omni, 외부 결합(외부 데이터 소스의 쓰기) 같은 기능이 모두 막혀 있지만 — GA4 운영자가 가장 빠르게 부딪히는 건 표의 네 가지입니다.

## GA4 운영에서 즉시 부딪히는 곳

이 네 가지 한계가 어떻게 실제 작업을 막는지, 가장 자주 마주치는 세 장면으로 풀어 봅니다.

### ① 60일이 지나면 ‘작년 이맘때’가 없습니다

GA4 BigQuery export는 매일 자정에 `events_YYYYMMDD` 테이블을 하나씩 새로 만듭니다. 샌드박스에선 이 테이블에 자동으로 **60일 만료**가 걸려 있어, 적재된 지 60일이 지난 일별 테이블은 BigQuery가 알아서 삭제합니다. 즉 ‘지난 분기 vs 이번 분기’, ‘작년 같은 달과의 비교’ 같은 분석은 두 달이 지난 시점부터 원천적으로 불가능합니다.

### ② 평탄화 마트를 만들 수가 없습니다

GA4 raw 이벤트는 `event_params`·`user_properties`가 RECORD(중첩 구조)로 들어가는 형태라, 운영에서는 보통 이걸 컬럼별로 풀어 둔 **평탄화 마트**(Event_Flat 등)를 따로 만듭니다. 이 마트를 매일 새로 만드는 작업은 `INSERT INTO...` 또는 `MERGE` 같은 DML로 이뤄지는데, 샌드박스에선 DML이 통째로 막혀 있어 마트를 ‘만들고 갱신하는’ 일이 시작부터 불가능합니다.

### ③ 매일 손으로 쿼리를 다시 돌려야 합니다

마트를 만들 수 있다 해도, **예약 쿼리(Scheduled Queries)**를 등록할 수 없으면 매일 BigQuery Studio를 열고 직접 ‘실행’을 눌러야 합니다. GA4 export는 자정이 지나면 들어오는데, 사람이 그 시간에 매번 쿼리를 돌릴 수는 없습니다.

> **주의**
>
> **핵심** — 네 한계는 따로 떨어진 제약이 아니라, “GA4 데이터를 **장기 보관하고, 마트로 가공하고, 자동으로 갱신한다**”는 운영 흐름 자체를 한꺼번에 막습니다. 그래서 GA4 BigQuery 연동을 켠 직후가 결제 계정을 붙이는 가장 자연스러운 시점입니다.

## 결제 계정을 연결해도 청구액은 거의 0원

“결제 계정을 붙이면 바로 돈이 나가지 않나요?” — 아니요. 결제 계정 연결은 **사용량 정산 수단을 등록**하는 절차일 뿐, 한 푼도 쓰지 않은 달에는 청구되지 않습니다. 그리고 BigQuery 자체의 매월 무료 한도가 GA4 운영 규모에서는 사실상 모든 비용을 덮습니다.

### 매월 자동 적용되는 무료 한도

활성 저장(Active storage)**첫 10 GB**

쿼리 처리량(On-demand query)**첫 1 TB**

이 한도는 결제 계정이 연결돼 있어도 매월 자동 적용됩니다. 한도 안에서 운영하는 한 결제 카드에 과금되지 않습니다.

GA4 이벤트가 월 100만 건 정도일 때, 한 달치 데이터가 압축 후 약 30 GB. 일자별로 나뉘어 쌓이는 GA4 export 특성상 90일이 지난 테이블은 자동으로 단가가 절반인 장기 저장으로 떨어집니다. 쿼리도 ‘날짜 범위와 컬럼을 좁히는’ 평소 작성 패턴이면 월 1 TB 한도 안에 충분히 들어옵니다. 사이즈가 더 큰 사업장이라도 청구액 단위는 ‘월 몇 달러’ 수준입니다 — [**BigQuery 예상 비용**](/wiki/playbook/bigquery-checklist/how-to-estimate-bigquery-costs) 에서 구간별로 풀어 두었습니다.

## 결제 계정 연결하는 방법

업그레이드는 Google Cloud Console에서 두 단계로 끝납니다 — **결제 계정 만들기**(처음 한 번) → **프로젝트와 결제 계정 연결**. 이미 회사에 결제 계정이 만들어져 있다면 두 번째 단계만 진행하면 됩니다.

### ① 결제 페이지 들어가기

Cloud Console 상단 햄버거 메뉴 → **결제** → **계정 관리(Account management)**로 이동합니다. 이미 회사에 만들어진 결제 계정이 있으면 이 목록에 보이고, 없으면 좌측 상단의 *+ 계정 만들기*로 처음 한 번만 만들면 됩니다.

![Google Cloud Console > 결제 > 계정 관리 화면. 상단에 '결제 계정 관리' 헤더가 있고, 그 아래 '조직 선택: 선택한 항목 없음' 드롭다운과 '결제 계정 / 프로젝트' 탭이 정렬되어 있다. 좌측 상단에 파란색 '+ 계정 만들기' 버튼이 있고 그 아래 필터 행(상태: 활성)과 계정 이름·계정 유형·최근 30일간 지출 비용·계정 ID·상태·조직·상태 확인 컬럼 헤더가 있다. 표 본문은 '표시할 행이 없습니다.'로 비어 있다.](/wiki-assets/playbook/why-upgrade-from-bigquery-sandbox/01-billing-account-list.png)

> **화면 1.** Cloud Console > 결제 > 계정 관리. 좌측 상단 *+ 계정 만들기*로 새 결제 계정을 만듭니다. 회사에 이미 결제 계정이 있다면 이 목록에서 **활성** 상태로 보입니다.

### ② 새 결제 계정 만들기 — 기본 정보 입력

*+ 계정 만들기*를 누르면 다음 화면이 열립니다. 입력은 네 칸이 전부입니다.

![Google Cloud Console > 새 결제 계정 만들기 화면. 좌측 상단 브레드크럼에 '결제 > 결제 계정 만들기'가 보이고, 본문에는 '새 결제 계정 만들기' 헤더와 함께 네 개의 입력 필드가 세로로 배치되어 있다. 첫 번째는 '이름 *' 항목으로 기본값 '내 결제 계정 1'이 입력돼 있다. 두 번째는 '조직' 드롭다운으로 'hurdlers.kr'이 선택되어 있고, '새 결제 계정이 이 조직의 권한을 상속합니다.' 안내문이 함께 있다. 세 번째는 '국가 *' 드롭다운으로 '대한민국'이 선택되어 있다. 네 번째는 '통화' 항목으로 'KRW'가 표시된다. 아래에는 파란색 '계속' 버튼과 회색 '취소' 버튼이 있다.](/wiki-assets/playbook/why-upgrade-from-bigquery-sandbox/02-create-billing-account-form.png)

> **화면 2.** 폼의 네 칸 — 결제 계정 이름·조직·국가·통화. 국가를 **대한민국** 으로 두면 통화가 자동으로 **KRW**로 잡힙니다.

- **이름** — 사내에서 구분이 가는 이름이면 됩니다. 예: “Hurdlers GA4 운영”, “회사 카드 계정”. 나중에 바꿀 수 있습니다.
- **조직** — 사내 Google Workspace 조직 자동 선택(예: `hurdlers.kr`). 개인 계정 이라면 비워 두면 됩니다.
- **국가** — 카드 발급국 기준. 한국 사업자는 **대한민국**.
- **통화** — 국가에 따라 자동. 대한민국이면 KRW(원), US이면 USD.

> **주의**
>
> **통화는 만든 뒤 바꿀 수 없습니다.** 한국에서 결제할 거라면 그대로 KRW, 미국 본사 카드로 결제할 거라면 USD를 미리 결정해 만듭니다. 잘못 만들었다면 결제 계정을 새로 만들고 기존 계정의 프로젝트 연결을 옮겨 주는 식으로 정리합니다.

### ③ 결제 방법(카드 또는 자동이체) 등록

*계속*을 누르면 결제 방법 등록 단계로 넘어갑니다. 한국 결제 계정 기준으로 다음 두 가지 중 하나를 선택합니다.

- **신용카드 · 체크카드** — 카드번호·만료일·CVC·소유자 이름·청구지 주소를 입력. 등록 직후 카드 인증을 위해 **$1 미만의 ‘임시 승인(authorization hold)’**이 발생하지만, 며칠 안에 자동 환불됩니다. 실제 청구는 그달의 사용량이 정산된 뒤 카드에 청구됩니다.
- **은행 계좌 자동이체** — 법인 통장 계좌번호로 등록. 카드와 달리 사전 인증 청구가 없고, 매월 정산일에 자동이체로 빠져나갑니다. 회사 카드 발급이 어려운 경우 가장 자주 쓰는 선택입니다.

청구지 주소(사업자 정보)까지 입력하고 **제출 및 결제 활성화**를 누르면 결제 계정이 만들어집니다. 이 시점부터 본인이 만든 결제 계정이 ① 화면의 목록에 ‘활성’ 상태로 등장하고, 같은 페이지의 **결제 프로필 설정**에서 세금 정보·청구지 주소·등록된 결제 수단을 한꺼번에 확인할 수 있습니다.

![Cloud Console 결제 프로필 설정 화면. 좌측 상단 브레드크럼이 '결제 > 결제 프로필 설정'이고, 본문은 '내 결제 계정 1' 드롭다운 아래에 고객 정보 섹션(계좌 유형: 개인, 세금 정보: 사업자 유형 개인, 이름 및 주소)·결제 절차 안내(무료 체험 중에는 자동 결제가 진행되지 않습니다)·결제 수단(신용카드 또는 체크카드 추가 드롭다운과 빈 카드 번호 입력 필드) 순서로 정렬되어 있다. 좌측 하단에 파란색 '결제 제출 및 사용 설정' 버튼이 보인다.](/wiki-assets/playbook/why-upgrade-from-bigquery-sandbox/03-payment-profile-setup.png)

> **화면 3.** 결제 프로필 설정 — 고객 정보·결제 절차·결제 수단이 한 화면에 모입니다. ‘**무료 체험 중에는 자동 결제가 진행되지 않습니다**’ 안내가 결제 절차 섹션에 명확히 표시돼 있고, 결제 수단 섹션에서 카드 번호를 직접 입력합니다.

### ④ 프로젝트와 결제 계정 연결

결제 계정만 만들어 둔다고 BigQuery 샌드박스가 자동으로 풀리지는 않습니다 — 그 결제 계정을 **GA4 export 프로젝트와 연결**해야 합니다. 결제 페이지 안의 **프로젝트** 탭으로 옮겨, 대상 프로젝트 행 우측 끝의 *작업(⋮)* 메뉴를 눌러 **결제 변경**을 선택하면 다음 다이얼로그가 열립니다.

![Cloud Console 결제 > 프로젝트 탭 화면 위에 떠 있는 결제 계정 설정 다이얼로그. 상단에 '결제 계정' / '프로젝트' 탭이 있고 '프로젝트'가 선택된 상태로 표시된다. 표 본문은 이름·ID·결제 계정·결제 계정 ID·작업 컬럼으로 구성돼 있는데, 두 개의 프로젝트 행에서 데이터 셀(이름·ID·결제 계정·결제 계정 ID)이 모두 블러 처리되어 있고 행 우측 끝의 작업(⋮) 아이콘만 선명하게 노출된다. 화면 가운데 다이얼로그는 ''n8n test' 프로젝트의 결제 계정 설정' 제목과 'Google Cloud Platform 및 Maps Platform의 요금을 결제합니다. ... 자세히 알아보기' 안내, 검색 입력 박스, 'hurdlers.kr' 그룹 헤더 밑에 '내 결제 계정 1' 단일 옵션, 그리고 우측 하단의 '결제 설정' 확인 버튼으로 구성되어 있다.](/wiki-assets/playbook/why-upgrade-from-bigquery-sandbox/04-project-billing-link-dialog.png)

> **화면 4.** 결제 페이지 안의 **프로젝트** 탭에서 프로젝트 행 우측 끝 *작업(⋮)* 아이콘 > **결제 변경**을 누르면 뜨는 다이얼로그. 드롭다운에서 방금 만든 결제 계정(예: *내 결제 계정 1*)을 선택하고 우측 하단 **결제 설정**을 눌러 마무리합니다.

연결이 끝나면 BigQuery Studio 상단의 ‘샌드박스’ 배지가 사라지고, 표에 정리한 네 가지 한계가 한 번에 풀립니다. 별도의 마이그레이션 작업은 필요 없습니다 — 같은 프로젝트의 데이터·쿼리·즐겨찾기가 그대로 유지됩니다. 한 결제 계정에 여러 프로젝트를 연결할 수 있으니, 회사 안에서 결제 계정은 하나로 모아 두고 GA4 export용 프로젝트만 연결해 두는 방식이 가장 깔끔합니다.

### ⑤ (선택) 예산 알림으로 안심 장치 두기

결제 계정에 연결됐으니 ‘만약을 대비한 안전장치’ 하나를 더 둡니다. 같은 결제 메뉴의 **예산 및 알림**에서 월 예산(예: ₩20,000)과 50%·90%·100% 도달 시 알림을 켜 두면, 평소엔 알림이 안 올 정도로 비용이 적게 나오지만 이상 패턴이 생겼을 때 즉시 알려 줍니다.

## 자주 묻는 질문

### 결제 카드를 등록하면 바로 자동 청구되나요?

아니요. 결제 계정은 ‘사용량이 발생했을 때 정산할 수단’을 등록해 두는 것일 뿐, 한 푼도 쓰지 않은 달에는 청구되지 않습니다. 또 매월 자동 적용되는 무료 한도(저장 10 GB·쿼리 1 TB) 안에서 운영하는 한 청구액이 발생하지 않습니다.

### 이미 샌드박스에 쌓아 둔 60일 미만 데이터는 어떻게 되나요?

업그레이드 시점에 그 시점까지 적재된 모든 테이블의 **만료 일정이 자동으로 해제**됩니다. 별도로 만료 정책을 손대지 않아도 데이터가 사라지지 않습니다. 단, 결제 계정을 다시 해제하면 모든 테이블에 60일 만료가 다시 걸립니다 — ‘업그레이드 → 다시 샌드박스’는 권장하지 않습니다.

### 회사 정책상 결제 카드를 등록할 수 없는 경우엔요?

Google Cloud의 **무료 크레딧($300, 90일)**을 신청해 한시적으로 운영을 시작할 수 있습니다. 다만 크레딧을 받으려면 신용카드 등록 자체는 필요하며(과금은 발생하지 않음), 크레딧 소진 또는 만료 후엔 일반 결제로 자동 전환됩니다. 회사 카드 발급이 어려운 경우 법인 통장 자동이체 옵션도 있으니 결제 방법 추가 시 ‘은행 계좌’ 항목을 확인해 보세요.

### 무료 한도를 초과하지 않는지 어떻게 모니터링하나요?

‘예산 및 알림’으로 월 예산(예: $5·$20)을 잡고 임계치 알림을 켜는 게 가장 빠른 안전장치입니다. 추가로 BigQuery Studio의 쿼리 편집기에는 ‘실행 시 N MB/GB 처리’ 미리보기가 상태바에 항상 표시되므로, 큰 쿼리를 돌리기 직전에 한 번 더 확인할 수 있습니다.

### 한 결제 계정에 여러 GA4 프로젝트를 묶어도 되나요?

네, 권장 패턴입니다. 광고주별·서비스별로 BigQuery 프로젝트를 따로 두더라도 결제 계정은 회사 단위로 하나만 유지하면, 청구·예산·태그 관리가 한 곳에 모입니다. 결제 계정과 프로젝트는 1:N 관계로 자유롭게 연결할 수 있습니다.

### 샌드박스 상태에서 SELECT 쿼리만 돌리는 건 계속 무료 아닌가요?

맞습니다 — SELECT 자체는 무료 한도 안에서 그대로 돕니다. 그러나 GA4 운영은 ‘**장기 보관 → 마트 가공 → 자동 갱신**’이 한 묶음이라, 한도 안에서 SELECT만 가능한 상태로는 운영을 지탱하기 어렵습니다. 결제 계정 연결은 ‘추가 청구’의 문이 아니라 ‘운영 흐름의 문’을 여는 단계로 보는 게 정확합니다.

## Navigation

- [전체 플레이북 Markdown sitemap](/wiki/playbook/sitemap.md)

### BigQuery

- [BigQuery](/wiki/playbook/bigquery-checklist)
- [BigQuery 온보딩](/wiki/playbook/bigquery-checklist/bigquery-onboarding-guide)
- [BigQuery 인증 설정](/wiki/playbook/bigquery-checklist/how-to-set-up-bigquery-authentication)
- [BigQuery 데이터셋·테이블 설계](/wiki/playbook/bigquery-checklist/bigquery-dataset-and-table-design-guide)
- [BigQuery 쿼리·비용 제어](/wiki/playbook/bigquery-checklist/bigquery-query-and-cost-control-guide)
- [BigQuery 쓰기·MERGE·CDC](/wiki/playbook/bigquery-checklist/bigquery-data-write-and-cdc-guide)
- [BigQuery 코드 예제 모음](/wiki/playbook/bigquery-checklist/bigquery-code-examples)
- [BigQuery로 들어오는 GA4 데이터](/wiki/playbook/bigquery-checklist/what-is-ga4-data-in-bigquery)
- [BigQuery Studio 인터페이스 이해하기](/wiki/playbook/bigquery-checklist/what-is-bigquery-studio-interface)
- [BigQuery 예상 비용](/wiki/playbook/bigquery-checklist/how-to-estimate-bigquery-costs)
- [무료 버전(샌드박스) 해제해야 하는 이유](/wiki/playbook/bigquery-checklist/why-upgrade-from-bigquery-sandbox) (현재 문서)
- [GA4 BigQuery 데이터를 왜 평탄화해야 하나](/wiki/playbook/bigquery-checklist/why-flatten-ga4-bigquery-data)
- [Log Router란?](/wiki/playbook/bigquery-checklist/what-is-log-router)
- [Pub/Sub이란?](/wiki/playbook/bigquery-checklist/what-is-pubsub)
- [Cloud Functions이란?](/wiki/playbook/bigquery-checklist/what-is-cloud-function-and-run)
- [GA4 export 시점에 예약 쿼리 자동 실행하기](/wiki/playbook/bigquery-checklist/how-to-trigger-scheduled-query-on-ga4-export)
- [테이블 정의서는 왜 필요한가](/wiki/playbook/bigquery-checklist/why-table-definition-doc)
- [Event_Flat 테이블 이해하기](/wiki/playbook/bigquery-checklist/what-is-event-flat-table)
- [Item_Performance 테이블 이해하기](/wiki/playbook/bigquery-checklist/what-is-item-performance-table)
