구글 빌드 - GitHub & Vercel 배포와 API 키 주의사항

Google AI Studio - Build 앱 : GitHub와 Vercel에 배포하는 방법 (비개발자용)

안녕하세요. 민트베어🍀🧸 입니다.
오늘 포스팅에서는 구글 빌드로 만든 앱을 Vercel로 온라인 배포하는 방법을 다룹니다.

구글 빌드에서 기본 제공되는 앱배포(Deploy)로 공개해도 되지만 버전업 관리나 개별 도메인으로 브랜딩된 UR로 이용하기 위해 Vercel 을 이용하곤 합니다.

아래 포스팅에 대한 자세한 내용은 오늘 4주차 시간에 다루겠습니다.


잠깐만요, 시작 전에 : API 키를 “누가 쓰고, 누가 결제”할지 먼저 정하세요

여러분 구글 빌드로 만든 앱을 Vercel 공개를 하기로 결정했다면
여러분 외에 또 다른 많은 사람들이 사용하기를 바라는 것이고

그러면 AI를 사용하는 과정에서 작든 크든 API 비용이 분명히 발생하게 됩니다.

여러분의 선택이 배포 방식과 비용 책임을 완전히 가르니, 아래 A와 B 중에서 하나를 선택하세요.

A) 운영자 키(내 API키)로 모두 사용 : Vercel에 내 API 키를 등록하면, 사용자들이 이미지 생성할 때도 전부 내 키로 호출됩니다. 즉 사용량/과금이 내 쪽으로 쌓입니다. (월말 신용카드 일괄 청구)

B) 사용자 각자 자기 키로 사용 (BYOK: Bring Your Own Key) : Vercel에 개발자의 키를 등록하지 않고, 앱에서 사용자가 각각 자기 키를 입력하게 해서 그 키로만 사용하게 할 수 있습니다. / 대신 “웹페이지에 키를 입력”하는 구조가 되므로 안내/설계가 꼭 필요합니다.

주의. Google은 운영 환경에서 클라이언트(브라우저)에 키를 노출하지 말라고 경고합니다. → Google AI for Developers

참고. Google AI Studio - 프로젝트 생성과 API키 등록 방법은 AI스튜디오빌드 2주차 영상 참고.


처음 사용자라면 꼭 체크할 5가지 (비개발자를 위한 사고 예방 가이드)

  1. GitHub 저장소를 Private(비공개)로 만들기(필수)

  2. “진짜 API 키 문자열”이 코드/파일에 들어가 있지 않은지 GitHub 검색으로 확인하기

  3. Vercel에 내 API 키를 넣는다면 “Environment Variables”로만 넣고, 빌드 코드에 직접 적지 않기

  4. Vercel에서 환경변수(키) 바꿨으면 반드시 Redeploy(재배포)하기

  5. 공개 앱(A안: 내 키)이라면 : 최소한의 남용 방지(로그인/횟수 제한/간단한 잠금) 기능 넣을 것을 권장

  6. 앱 개발 내용에 개인정보나 기업기밀 등 중요사항이 포함되지 않도록 설계. 노하우와 같은 중요한 데이터는 구글시트나 파이어베이스 DB 등으로 연결


지금부터 순서대로 따라하시면 됩니다.

1단계: Build에서 GitHub로 내보내기(코드를 온라인 폴더에 넣기)

실행 순서

  • AI Studio - Build에서 앱 열기 - 앱 개발

  • “GitHub에 동기화(Push to GitHub)” 버튼 클릭

  • GitHub 로그인/권한 승인(처음 1회)

  • “New repository(새 저장소)” 선택 → 이름 입력 → Private 선택(필수) → 완료

    • 주의. 위 GitHub Sync - Visibiliy 에서 만약 [Public] 선택하면 모든 코드와 파일이 공개됩니다.

  • GitHub에서 파일 목록이 보이면 하단에서 “Stage and commit all changes" 버튼 클릭

  • 여기까지 진행되었다면 GitHub에 파일이 업로드 된 것입니다.


2단계: Vercel에서 배포(“GitHub 폴더를 연결해서” 사이트 주소 만들기)

이후 Vercel 에서 나오는 “Import Git Repository”는 “별도의 업로드나 다운로드”가 아니라, “연결”입니다. 연결하면 GitHub에 업데이트가 올라갈 때마다 자동 배포가 됩니다.

실행 순서

  • Vercel 로그인 → New Project

  • Import Git Repository 구역에서 GitHub 선택

  • 권한 승인 : Authorize Vercel + All repositories + Install

    • Authorize Vercel : GitHub에 업로드한 내 앱 파일에 Vercel이 접근하도록 허용합니다.

    • All repositories (권장): 앞으로 만들 모든 프로젝트를 Vercel로 편하게 배포하고 싶을 때 선택 (편리)

    • Only select repositories (선택) : 보안을 위해 딱 이 프로젝트만 Vercel에 연결하고 싶을 때 선택.

  • 저장소 목록에서 내 앱 저장소 선택 → Import

  • Deploy 클릭

    • 잠깐, Deploy 페이지에서 마지막에 설정하는 [Project Name]이 도메인 URL의 앞 주소(########-rho.vercel.app)가 됩니다.

    • 잠깐, 만약 여기에서 내 API 키를 등록하고 싶다면(비용 발생해도 된다면), Deploy 버튼 누르지 말고 아래 3단계로 이동.

    • 잠깐, 위에 [Vite]는 Google AI Studio에서 코드를 짜줄 때 가장 효율적이고 빠른 Vite 방식에 맞춰서 모든 설계도를 작성해 주었고, Vercel 에서도 그 방식을 활용하겠다는 의미입니다.

  • Deploy 완료되면 …vercel.app 주소가 생김


간단한 앱들은 여기까지만 진행하셔도 충분히 안정적으로 배포 및 활용가능합니다.

이후 단계는 배포 중 에러가 발생했거나, 비용이 발생되도록 설계되어 API키를 등록하셔야 하는 경우 입니다.

.

3단계 : 기본 에러 해결

2단계 배포시, 배포가 완료되지 못하고 가끔 이렇게 에러가 발생하곤 합니다.

그러면 문제 메시지를 복사해서 Google AI Studio - Build 에 붙여넣어 물어보고 해결해달라고 요청해요.

GitHub와 Vercel 에서 배포하려니 아래와 같은 에러 메시지가 발생했습니다.해결하고 다음 진행해야 하는 방법을 비개발자 대상으로 쉽게 알려주세요.

이후 구글 빌드에서 개선된 것으로 보이면
다시 GitHub 내보내기 - Vercel 배포 단계를 다시 수행합니다.


4단계: API 키 설정 (가장 중요한 비용 이슈)

A안: “내 키로 모두 사용” (Vercel에 API 키 등록)

모든 사용자가 이미지 생성할 때 내 API 키를 사용하게 하는 경우 ( 경고! → 비용 발생 )

실행 순서

  • Vercel 프로젝트 → Settings → Environment Variables

    빨간색 버튼이 강조 표시된 Google 문서 페이지의 스크린샷
  • Name(이름): 코드가 요구하는 이름 그대로(예: GEMINI_API_KEY)

  • Value(값): 내 API 키 붙여넣기 ( API키 등록 방법은 AI스튜디오빌드 2주차 영상 참고)

  • 저장 후 Redeploy(재배포) 꼭 1번

주의 : 공개 앱에서 내 키를 쓰면 남용/과금 위험이 커서, 최소한 “사용 제한 장치”를 권장합니다.

B안: “사용자 각자 자기 키로 사용”(Vercel에 내 키 없이 운영 가능)

두 가지의 방법이 가능합니다. “앱에 API 키 입력창을 미리 만들어 두면” 누구나 자기 키로 사용할 수 있어요.

B-1) 가장 쉬운 방식(데모/소규모용): 사용자가 입력한 키로 브라우저에서 바로 호출

  • 장점: 서버 설정이 단순, 내 키/내 과금 없음

  • 단점: Google은 운영 환경에서 클라이언트에 키를 두는 걸 금지 수준으로 경고합니다(키가 추출될 수 있음). 사용자가 본인 키를 입력하는 구조라도, 사용자는 “웹페이지에 키를 넣는 리스크”를 감수해야 합니다.

B-2) 조금 더 안전한 방식(추천): 사용자 키를 “요청할 때만” Vercel 서버 기능에 전달해서 중계 호출

  • 장점: 앱 화면 코드에 키가 섞여 남을 가능성을 줄이고, 서버에서만 호출하도록 만들기 쉬움

  • 단점: 그래도 사용자가 서비스에 키를 입력하는 건 맞으니, “서버에 저장하지 않음/로그에 남기지 않음” 안내와 구현이 필요

BYOK를 할 때 권장 UX(비개발자 관점)

  • 설정(톱니) 버튼 → “내 API 키 입력”

  • 기본은 “저장 안 함(새로고침하면 사라짐)”

  • 선택으로 “이 기기에서만 기억하기(로컬 저장)” 토글

  • 화면 어딘가에 “현재: 내 키로 사용 중 / 운영자 키로 사용 중” 표시되게 설정


5단계: package.json이 없는 경우(“왜 하얀 화면이지?” 대처)

GitHub에서 package.json이 없으면 보통 둘 중 하나입니다.

  • 정적 사이트(HTML 파일 중심)라서 빌드 없이 올려야 함

  • 내보내기 결과가 완전한 웹앱 형태가 아니어서 Vercel이 뭘 실행할지 모름

가장 쉬운 확인

  • GitHub에서 index.html이 보이면: 정적 사이트로 배포 가능성이 큼

  • index.html도 없고 구성도 애매하면: Build에서 다시 GitHub 내보내기를 시도하는 게 빠른 경우가 많습니다

정적 사이트일 때 Vercel에서 할 일

  • “어느 폴더를 사이트로 내보낼지”만 맞추는 게 핵심입니다(필요 시 Output Directory 설정). Vercel은 빌드 설정을 조정할 수 있습니다.


배포 후 문제 해결 3줄 체크

  • “키가 없다고” 나오면: Vercel 환경변수 이름이 코드와 정확히 같은지 + 재배포 했는지

  • “이미지 생성만 실패”하면: 키가 클라이언트로 노출되는 구조인지(운영 환경 경고)

  • “공개 앱인데 내 키 사용”이면: 최소한 사용 제한/모니터링을 넣기(키 보안 권장사항)


용어 정리

  • GitHub 저장소(repo): 내 앱 파일을 넣어두는 온라인 폴더

  • Vercel 배포(Deploy): 그 폴더를 웹사이트 주소로 공개하는 것

  • Import: 다운로드가 아니라 “연결”한다는 의미

  • Environment Variables(환경변수): 코드에 비밀값(API 키)을 쓰지 않고 Vercel 설정 화면에 넣는 방식(바꾸면 재배포 필요)

  • Redeploy(재배포): 환경변수 변경 사항을 새 배포에 반영하는 동작

  • BYOK: 사용자가 자기 API 키를 가져와서 쓰는 방식


4주간 수고하셨습니다. 부디 즐거운 바이브코딩 되셨기를 바랍니다.
또 자주 만나요 😄


2026 민트베어 스튜디오 / Visual Director 민트베어
https://litt.ly/mintbear


2

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요