BigQuery에 앱 연결하기
Workload Identity Federation을 사용해 Google BigQuery를 Lovable 앱에 연결하세요. 프로젝트에 장기 유효 GCP 키를 저장하지 않고도 SQL 실행, 데이터셋 및 스키마 탐색, 분석 기능 구축이 가능합니다.
Google BigQuery는 대규모 분석을 위한 서버리스 데이터 웨어하우스입니다. BigQuery 앱 커넥터를 사용하면 Lovable 앱이 Lovable의 보안 게이트웨이를 통해 BigQuery API를 호출할 수 있으며, **Workload Identity Federation (WIF)**을 사용하므로 장기 유효 service account 키를 Lovable에 붙여넣지 않아도 됩니다.
BigQuery를 연결하면 앱은 다음 작업이 가능합니다:
- 표준 SQL을 사용해 데이터셋과 테이블 쿼리
- 스키마 메타데이터 탐색 (프로젝트, 데이터셋, 테이블, 컬럼)
- 비용 가드레일을 고려한 매개변수화 쿼리 실행
- 뷰 및 materialized view 읽기
데이터가 이미 GCP에 있거나, SQL 기반의 대규모 웨어하우스 분석, 리포팅, 대시보드를 원할 때 BigQuery가 잘 맞습니다.
주요 활용 사례 및 예시 앱
| 예시 앱 | 프롬프트 예시 | 설명 |
|---|---|---|
| 경영진 지표 대시보드 | BigQuery marts 테이블에서 주간 매출과 가입자 수를 보여주고 지역별 필터가 있는 대시보드를 만들어줘. | 웨어하우스 테이블을 앱 내 차트로 변환합니다. 앱이 BigQuery에 SQL을 실행해 이해관계자에게 KPI와 추세를 보여줍니다. |
| 내부 리포팅 도구 | 팀이 analytics 데이터셋에 대해 승인된 SQL 리포트를 실행하고 CSV로 내보낼 수 있는 내부 앱을 만들어줘. | 큐레이션된 데이터셋에 대한 셀프 서비스 리포팅. 앱이 매개변수화 쿼리를 제출하고, 사용자에게 GCP 콘솔 직접 접근 권한을 주지 않은 채 결과 집합을 반환합니다. |
| 데이터셋 탐색기 | 접근 가능한 데이터셋과 테이블을 나열하고 컬럼 타입과 행 수를 보여주는 도구를 만들어줘. | 웨어하우스 내용을 탐색합니다. 앱이 메타데이터 API와 가벼운 쿼리를 사용해 테이블과 스키마를 설명합니다. |
| 고객 헬스 뷰 | BigQuery의 CRM 내보내기 데이터와 제품 사용 데이터를 조인해 계정별 헬스 스코어를 보여줘. | 모델링된 데이터를 결합해 운영 워크플로우에 활용합니다. 앱이 데이터 팀이 BigQuery에서 유지 관리하는 사전 조인된 큐레이션 테이블을 쿼리합니다. |
| 스케줄 인사이트 페이지 | BigQuery materialized view에서 어제의 퍼널 지표를 보여주는 페이지를 만들어줘. | 일별 또는 시간별 집계를 표면화합니다. 앱이 파이프라인이 스케줄에 따라 갱신하는 뷰나 요약 테이블에서 데이터를 읽습니다. |
| 데이터 검증 UI | 파이프라인 실행 후 주요 컬럼의 행 수와 null 검사를 수행하는 작은 앱을 만들어줘. | SQL 위에 가벼운 품질 검사를 제공합니다. 앱이 적재 완료 후 기대값을 확인하기 위해 대상 쿼리를 실행합니다. |
정확한 동작은 보유 중인 데이터셋, service account의 IAM 권한, Lovable에 요청한 내용에 따라 달라집니다.
BigQuery 연결 방식
- 인증: 커넥터는 Google의 security token service와 함께 Workload Identity Federation을 사용합니다. 짧은 수명의 액세스 토큰을 Lovable의 커넥터 게이트웨이를 통해 획득하고 갱신하며, 저장소에 장기 유효 JSON 키를 저장하지 않습니다.
- 게이트웨이: BigQuery API 요청은 게이트웨이를 통해 프록시됩니다. 토큰 처리와 프로젝트별 요청 한도는 게이트웨이 기반 커넥터를 참고하세요.
- Scope: 연결은 BigQuery 접근 scope로 생성됩니다 (기본적으로
https://www.googleapis.com/auth/bigquery포함). 읽거나 실행할 수 있는 범위는 구성한 service account의 IAM 및 데이터셋 권한에 따라 달라집니다. - 워크스페이스 바인딩: Google Cloud에서 워크스페이스별 audience에 대한 identity token을 신뢰하도록 구성합니다 (아래 참고). 연결을 생성할 때 Lovable에 Workload Identity Provider 리소스 문자열과 service account 이메일을 입력하세요.
BigQuery의 쿼리 및 스토리지 비용은 처리된 바이트, slot, 관련 사용량을 기준으로 Google Cloud에서 GCP 결제 계정에 청구하며, Lovable에서 청구하지 않습니다.
BigQuery 연결하기
워크스페이스 admin 또는 owner가 BigQuery 연결을 생성할 수 있습니다.
연결이 생성되면 다른 앱 커넥터처럼 프로젝트에 연결할 수 있으며, 허용된 곳에서 배포된 앱이 이를 사용합니다.
사전 준비
Lovable에서 연결하기 전에 다음을 준비하세요:
- BigQuery API가 활성화되어 있고 쿼리하려는 데이터셋이 있는 Google Cloud 프로젝트
- 해당 프로젝트(또는 identity pool 전용 admin 프로젝트)에서 IAM과 Workload Identity Federation을 구성할 수 있는 권한
- 용도에 필요한 BigQuery 역할(예: 특정 데이터셋에서 쿼리 실행 및 테이블 읽기)을 가진 Google Cloud service account
- Lovable 워크스페이스 ID (Google Cloud의 OIDC audience에 필요합니다)
- Lovable 워크스페이스 admin 또는 owner 권한
1단계: Google Cloud에서 Workload Identity Federation 구성
Workload Identity Pool과 해당 워크스페이스의 Lovable 커넥터 게이트웨이를 audience로 하는 Google 발급 ID 토큰을 신뢰하는 OIDC provider가 필요합니다.
- Google Cloud 콘솔에서 IAM & Admin → Workload Identity Federation을 열고 Workload Identity Pool을 생성(또는 기존 풀 사용)합니다.
- 풀에 다음 설정으로 OIDC provider를 추가합니다:
- Issuer URL:
https://accounts.google.com - Allowed audiences:
https://connector-gateway.lovable.dev/workspaces/<WORKSPACE_ID>—<WORKSPACE_ID>를 Lovable 워크스페이스 ID (URL과 설정에서 사용하는 것과 동일한 값)로 바꿉니다.
- Issuer URL:
- 풀이 BigQuery service account를 impersonate 할 수 있도록 허용:
roles/iam.workloadIdentityUser(또는 조직 정책에 맞는 적절한 역할)를 부여해 이 풀의 principal이 BigQuery를 호출할 service account를 impersonate 할 수 있도록 합니다. workload identity pool principal을 service account에 바인딩하는 Google 문서를 따라 구성하세요. - Workload Identity Provider 리소스 이름을 복사합니다. 형식은 다음과 같습니다:
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
이 문자열이 Lovable이 요구하는 WIF audience 값입니다.
상세 단계와 IAM 조건은 Google Cloud의 Workload Identity Federation 문서와 OIDC provider 구성 가이드를 참고하세요.
2단계: Lovable에서 BigQuery 연결
- Connectors → App connectors에서 BigQuery를 선택합니다.
- Add connection을 클릭합니다.
- Display name에 명확한 이름을 입력합니다 (예:
BigQuery Production또는Analytics read-only). - WIF audience에 Google Cloud의 Workload Identity Provider 리소스 이름을 붙여넣습니다 (
//iam.googleapis.com/projects/.../providers/...형태의 전체 문자열). - Service account email에 BigQuery 접근을 위해 impersonate 할 service account를 입력합니다 (예:
bq-reader@your-project.iam.gserviceaccount.com). - 플로우를 완료해 연결을 생성 또는 검증합니다. Lovable이 게이트웨이를 통해 federation 설정을 검증합니다.
연결되면 이 연결을 사용할 수 있는 프로젝트들은 빌드 중과 퍼블리시 이후 커넥터를 통해 BigQuery 작업을 실행할 수 있습니다.
비용과 안전 관행
BigQuery는 쿼리로 스캔된 데이터(및 기타 사용량)에 대해 요금을 청구합니다. 채팅으로 기능을 구현할 때는 다음 패턴을 권장합니다:
- 쿼리 작업에
maximumBytesBilled(또는 동등한 설정)를 사용해 한도를 초과할 대규모 스캔이 실행 전에 실패하도록 합니다. - 파티션 테이블을 파티션 컬럼으로 필터링하고, 탐색 중에는
SELECT *를 피하며, 반복 작업 중에는 **LIMIT**을 사용합니다. - 무거운 스캔 전에 INFORMATION_SCHEMA와 메타데이터 API로 스키마와 파티션을 먼저 확인합니다.
Google 문서의 BigQuery pricing과 비용 관리 모범 사례를 참고하세요.
제한 사항
- 이 커넥터는 사용자별 Google 로그인을 제공하지 않습니다. 워크스페이스 단위로 하나의 federated identity와 service account를 연결별로 구성합니다 (최종 사용자 개인의 Google 계정이 아님).
- 게이트웨이 기반 커넥터에서 설명한 게이트웨이 한도가 적용됩니다.
- IAM 및 데이터셋 접근은 전적으로 GCP 내 제어 사항입니다. Lovable은 service account에 허용되지 않은 테이블에 대한 접근 권한을 부여할 수 없습니다.
BigQuery 연결에서 프로젝트 연결 해제
Editor 이상 권한을 가진 사용자는 연결 자체를 삭제하지 않고 특정 프로젝트만 연결 해제할 수 있습니다. 연결은 다른 프로젝트에서 계속 사용할 수 있습니다.
연결 해제 방법:
Connectors 열기
Connectors를 열고 App connectors로 이동한 뒤 **BigQuery**를 선택합니다.
연결 열기
관리할 연결을 엽니다.
프로젝트 선택
Linked projects에서 연결 해제할 프로젝트를 선택합니다.
확인
Unlink projects를 클릭하고 확인합니다.
연결 해제 후 해당 프로젝트는 이 연결을 통해 BigQuery에 접근할 수 없습니다. 필요하면 다른 연결로 다시 연결할 수 있습니다.
BigQuery 연결 삭제
워크스페이스 admin 또는 owner가 BigQuery 연결을 삭제할 수 있습니다.
연결 삭제는 영구적이며 되돌릴 수 없습니다. 연결된 모든 프로젝트에서 인증 정보가 제거되며, 새 연결을 만들기 전까지 이 연결을 사용하던 앱은 동작을 멈춥니다.
삭제 전에 Linked projects 섹션에서 현재 이 연결을 사용 중인 프로젝트를 먼저 확인하세요.
삭제 방법:
Connectors 열기
Connectors를 열고 App connectors로 이동한 뒤 **BigQuery**를 선택합니다.
연결 열기
삭제할 연결을 엽니다.
연결된 프로젝트 확인
Linked projects 섹션을 확인합니다.
삭제
Delete this connection에서 Delete를 클릭하고 확인합니다.