아이디어에서 출시까지: 2025년 Google Cloud에서 첫 번째 애플리케이션 만들기

1. 청사진, 기반 설정

집을 짓기 전에 땅을 확보하고, 자재 비용을 지불할 방법을 설정하고, 도구 상자를 열어야 합니다. 클라우드에서 이러한 개념은 프로젝트결제로 변환됩니다.

Google Cloud 프로젝트란 무엇인가요?

Google Cloud는 강력한 도구와 서비스로 가득한 대규모 디지털 창고라고 생각하면 됩니다. 프로젝트는 창고의 비공개 보안 코너입니다. 서버, 데이터베이스, 코드와 같은 모든 리소스를 보유하고, 모든 비용을 추적하며, 해당 리소스 내에서 도구를 입력하고 사용할 수 있는 사용자를 관리하는 컨테이너입니다. 오늘 수행하는 모든 작업은 이 프로젝트 경계 내에서 이루어집니다.

오늘은 프로젝트에 중점을 두지만, 기업에서 사용하는 더 큰 구조에서 프로젝트가 어디에 속하는지 이해하는 것이 좋습니다. Google Cloud는 모든 항목을 명확한 하향식 계층 구조로 구성합니다.

Organization (The entire Corporation, e.g., "MegaCorp Inc.")
└── Folders (The Corporate Divisions, e.g., "Research & Development")
    ├── Project (A specific team's lab, e.g., "Project Phoenix - R&D")
    │   └── Resources (The tools in the lab, e.g., a specific server)
    └── Project (Another team's workshop, e.g., "Q4 Marketing Campaign")
        └── Resources (The tools for that campaign, e.g., a storage bucket)

이 계층 구조의 수준을 위에서 아래로 나열하면 다음과 같습니다.

  1. 조직 노드:
    • 전체 회사의 본사입니다 (예: yourcompany.com)에 있습니다. 최상위에 있으며 회사 전체의 보안 및 결제 정책이 설정되는 곳입니다. Google Cloud 무료 체험판의 경우 일반적으로 조직 노드 없이 운영하며, 이는 학습에 적합합니다.
  2. 폴더:
    • 법인 내 부서입니다 (예: 엔지니어링, 재무) 폴더는 프로젝트를 그룹화하고 전체 팀에 한 번에 정책을 적용하는 데 사용되는 선택적 레이어입니다. 이 워크숍에서는 폴더를 사용하지 않습니다.
  3. 프로젝트 (중점 사항):
    • 특정 팀의 워크숍 또는 실습입니다. 실제 작업이 이루어지는 곳이며 워크숍에서 가장 중요한 수준입니다. 만드는 모든 리소스는 프로젝트 내에 있어야 합니다. 프로젝트는 API (서비스)를 사용 설정하고 결제 계정을 연결하는 수준이기도 합니다.
  4. 리소스:
    • 작업장 내의 개별 도구 및 기계입니다. 배포할 Cloud Run 애플리케이션은 리소스입니다. 가상 머신, 데이터베이스, 스토리지 버킷은 모두 리소스의 예입니다.

실습: 프로젝트 생성 및 구성

  • goo.gle/devfest-boston-ai/을 받으세요. Google Cloud Platform 서비스 약관에 동의합니다. 적용되면 크레딧이 적용되었다는 메시지가 표시됩니다. 적용된 크레딧
  • 로 이동합니다.
  • 상단 탐색 메뉴에서 프로젝트 선택을 클릭한 다음 새 프로젝트를 클릭합니다. 프로젝트 찾기
  • 프로젝트에 고유한 이름을 지정합니다 (예: idea-to-launch-yourname)를 선택하고 만들기를 클릭합니다. '조직 없음'을 선택합니다. 새 프로젝트
  • 페이지 상단의 드롭다운 메뉴에서 새 프로젝트를 선택해야 합니다.

청구가 중요한 이유

결제 계정은 프로젝트의 재정적 기반입니다. 사용한 리소스 비용을 지불하는 '등록된 신용카드'입니다. 이 워크숍에서는 무료 크레딧이 제공되는 Google Cloud 무료 체험판을 사용합니다. 안전한 샌드박스 환경입니다. 크레딧이 사용되거나 무료 체험 기간이 종료된 후 계정을 수동으로 업그레이드하지 않는 한 요금이 자동으로 청구되지 않습니다. 비용을 관리하려면 먼저 청구를 이해해야 합니다. 예산 및 알림 설정과 같은 권장사항을 사용하면 지출이 특정 한도에 근접할 경우 이메일 알림을 받아 예상치 못한 상황을 방지할 수 있습니다.

실습: 결제 계정 연결

  • 로 이동합니다.
  • 결제 계정 연결을 클릭합니다. 결제 연결
  • 드롭다운에서 Google Cloud Platform 평가판 결제 계정을 선택하고 '계정 설정'을 클릭합니다. (드롭다운 메뉴가 표시되지 않으면 크레딧이 적용될 때까지 1분간 기다린 후 페이지를 새로고침하세요.)

실습: 예산 알림 설정 (권장사항)

이제 결제가 활성화되었으므로 비용 관리를 위한 중요한 권장사항인 예산 설정을 진행해 보겠습니다. 이 기능은 금액이 도달해도 서비스를 중지하지 않습니다. 대신 지출을 항상 알 수 있도록 이메일 알림을 보냅니다.

  1. 결제 페이지의 왼쪽 메뉴에서 예산 및 알림을 클릭합니다.
  2. 페이지 상단에서 + 예산 만들기를 클릭합니다. 예산 만들기
  3. 예산 이름 지정: Workshop-Alert와 같은 간단한 이름을 지정합니다.
  4. 범위: 현재 프로젝트가 선택된 기본 설정을 그대로 둡니다. 다음을 클릭합니다. 예산 만들기
  5. 금액: '예산 금액' 섹션의 '금액 유형'에서 지정한 금액을 선택합니다. 10와 같이 적은 금액을 입력합니다. 즉, 예산은 10달러입니다. 다음을 클릭합니다. 예산 만들기
  6. 작업: 여기에서 알림을 설정합니다. 기본적으로 지출이 예산 금액의 50%, 90%, 100%($5, $9, $10)를 초과하면 알림이 설정됩니다.
    • '이메일 알림'에서 결제 관리자 및 사용자에게 이메일 알림이 선택되어 있는지 확인합니다. 이렇게 하면 계정과 연결된 이메일 주소로 알림이 전송됩니다.
  7. 마침을 클릭합니다. 예산 만들기

이제 사전 대응형 비용 관리 도구를 설정했습니다. 실제 프로젝트에서 이는 재정적 문제가 발생하지 않도록 하는 가장 중요한 첫 단계 중 하나입니다.

서비스란 무엇이며 왜 사용 설정해야 하나요?

이제 비공개 실습에서 명령 센터를 설정했으므로 사용할 수 있는 중장비에 대해 알아보겠습니다. Google Cloud는 데이터베이스부터 AI 모델까지 200개가 넘는 다양한 제품을 제공합니다. 각각을 서비스라고 합니다. Cloud Run을 '자동화된 배송 및 물류 서비스'로, Gemini를 'AI 발명 및 프로토타입 제작 서비스'로 생각하면 됩니다. 이러한 강력한 서비스를 사용하려면 먼저 프로젝트에 해당하는 API (애플리케이션 프로그래밍 인터페이스)를 사용 설정해야 합니다.

서비스 개요

창고 및 실험실 비유를 계속 사용해 보겠습니다. Google Cloud 프로젝트는 대규모 창고 내에 있는 전용 작업장이라고 생각하면 됩니다. 워크숍에는 AI 분석 스테이션, 글로벌 배포 스테이션, 데이터 저장 스테이션 등 다양한 고급 워크스테이션이 갖춰져 있습니다. 안전과 효율성을 위해 이러한 전문 워크스테이션 각각의 주 전원 도관은 기본적으로 꺼져 있습니다.

API를 사용 설정하는 것은 실험실의 특정 워크스테이션('AI 프로토타이핑 스테이션' 등)으로 이동하여 주 전원 스위치를 'ON' 위치로 전환하는 행위입니다.

하지만 기본적으로 모든 것이 사용 중지되어 있는 이유는 무엇인가요? 이는 다음과 같은 여러 중요한 이유로 인해 의도적으로 선택한 설계입니다.

  • 보안: 프로젝트 수준에서 최소 권한의 원칙을 적용합니다. 서비스를 사용하지 않으면 프로젝트와의 연결이 비활성 상태가 되어 잠재적인 '공격 표면'이 줄어듭니다.
  • 거버넌스 및 비용 관리: 비용이 많이 들 수 있는 서비스를 사용하려면 감사 가능한 신중한 조치가 필요합니다. 이렇게 하면 실수로 사용되는 것을 방지하고 조직에서 팀이 사용하는 도구를 관리할 수 있습니다.
  • 단순성: 프로젝트 환경을 깔끔하게 유지합니다. 사용할 의도가 없는 서비스의 옵션으로 권한과 대시보드가 어수선해지지 않습니다.

실습: 환경 초기화

  1. Vertex AI, Cloud Run, Cloud Build, Compute API를 사용 설정합니다.
    • API 세부정보 페이지에서 파란색 사용 설정 버튼을 클릭합니다. 프로세스가 완료될 때까지 기다립니다. 서비스 사용 설정

2. 애플리케이션 보안: 누가 (또는 무엇이) 앱을 제어할 수 있나요?

개념 소개

애플리케이션이 인터넷에 게시되어 매우 기쁩니다. 하지만 여기서 중요한 질문이 생깁니다. 어떻게 이런 일이 실제로 일어날 수 있었을까요? 코드를 배포하면 권한 기반의 일련의 보안 '핸드셰이크'가 백그라운드에서 발생합니다. 이러한 개념을 이해하는 것이 클라우드 보안의 핵심입니다.

이 모든 것은 Identity and Access Management (IAM)에서 관리합니다.

  • IAM의 핵심 공식 IAM은 누가 어떤 리소스에서 무엇을 할 수 있는지라는 간단하지만 강력한 원칙에 따라 작동합니다.
  • 두 가지 유형의 '주체' 지금까지 워크숍에서 두 가지 기본 유형의 ID를 살펴봤습니다.
    1. 사용자: 바로 여러분입니다. 개인 Gmail 계정과 같이 사람에게 연결된 ID입니다.
    2. 서비스 계정: 애플리케이션 및 서비스의 특수한 비인간 ID입니다. 코드의 ID 배지라고 생각하면 됩니다. 한 Google Cloud 서비스 (예: Cloud Build)가 다른 서비스 (예: 컨테이너를 저장하는 Artifact Registry)와 상호작용해야 하는 경우 서비스 계정을 사용하여 권한이 있음을 증명합니다.

애플리케이션을 배포할 때 두 가지 유형의 ID가 모두 사용되었습니다.

  • 사용자 계정에 배포를 시작할 권한이 있습니다.
  • Cloud Build 서비스의 서비스 계정에 코드를 빌드하고 결과 컨테이너를 저장할 수 있는 권한이 있었습니다.

액세스 관리

IAM 콘솔을 사용하여 배포를 가능하게 한 권한을 조사한 다음 다른 사용자에게 특정 액세스 권한을 부여해 보겠습니다.

  1. 조사: IAM 콘솔로 이동
    • 으로 이동합니다.
    • 이 페이지는 프로젝트의 보안 대시보드입니다. 프로젝트에 대한 액세스 권한이 있는 모든 '주 구성원'('누구')이 나열됩니다.
  2. 내 신원 찾기 (사용자)
    • 주 구성원 목록에서 내 이메일 주소를 찾습니다. 역할이 '소유자'입니다. 소유자 역할은 프로젝트에서 모든 작업을 할 수 있는 전체 권한을 부여합니다. 따라서 API를 사용 설정하고 gcloud run deploy 명령어를 실행할 권한이 부여되었습니다.
  3. 서비스 ID (서비스 계정) 찾기
    • 이제 [PROJECT_NUMBER]-compute@developer.gserviceaccount.com와 같은 이름의 주 구성원을 찾습니다. Cloud Build 서비스에서 사용하는 기본 서비스 계정입니다.
    • 역할을 확인합니다. 'Cloud Build 서비스 에이전트'와 같은 역할이 있습니다. 이 역할에는 소스 코드를 가져오고 컨테이너 이미지를 레지스트리에 쓰는 등 작업을 실행하는 데 필요한 특정 권한이 포함되어 있습니다. 배포를 위해 어려운 작업을 수행한 ID입니다.
  4. 액세스 관리 (실제 작업)
    • 이제 관련 보안 작업을 실행해 보겠습니다. 새 동료가 방금 배포한 두 애플리케이션 (fact-app-manualfact-app-cli)의 성능을 모니터링하고 로그를 확인할 수 있어야 하지만 보안상의 이유로 새 버전을 배포하거나 삭제할 수는 없어야 한다고 가정해 보겠습니다.
    • IAM 페이지 상단에서 + 액세스 권한 부여를 클릭합니다.
    • 새 주 구성원 필드에 dev-intern@example.com와 같은 가상의 이메일 주소를 입력합니다.
    • 역할 선택 드롭다운에서 필터를 사용하여 Cloud Run 뷰어 역할을 찾아 선택합니다. 이 역할은 최소 권한 원칙의 완벽한 예입니다. Cloud Run 서비스에만 읽기 전용 액세스 권한을 부여하며 그 이상은 부여하지 않습니다. (또는 역할 선택 지원을 사용해 보세요.)
    • 저장을 클릭합니다.
  5. 결과 검토
    • 이제 새 사용자를 추가하고 이 워크숍에서 만든 리소스와 직접 관련된 세부적인 최소 권한 역할을 부여했습니다. 두 개의 사실 앱을 볼 수는 있지만 변경할 수는 없습니다. 사용자 계정과 서비스 계정이 함께 작동하여 안전하고 감사 가능한 클라우드 환경을 만드는 방법을 살펴보았습니다.

이제 사용자에게가 아닌 다른 애플리케이션이나 서비스에 권한을 부여하는 방법을 연습해 보겠습니다. 서비스 계정 vertex-express@...로 표시되는 외부 자동화 도구가 프로젝트 내에서 AI 서비스를 사용할 수 있어야 한다고 가정해 보겠습니다. 올바른 역할을 부여해야 합니다.

  1. 서비스 계정 페이지로 이동:
    • IAM 페이지에서 서비스 계정으로 이동합니다.
  2. 대상 서비스 계정 찾기:
    • 서비스 계정 목록에서 vertex-express@ecstatic-acumen-{PROJECT_NUMBER}-c9.iam.gserviceaccount.com이라는 계정을 찾습니다. ({PROJECT_NUMBER}를 실제 프로젝트 번호로 바꿔야 합니다.) 권한을 부여할 ID입니다.
  3. 서비스 계정 권한 관리:
    • 오른쪽의 작업 열에서 점 3개를 클릭하면 드롭다운 메뉴가 표시됩니다.
    • 이 서비스 계정으로 할 수 있는 작업을 관리하려면 권한 관리를 클릭합니다.
  4. 'Vertex AI 사용자' 역할 부여:
    • 역할 할당 드롭다운에서 필터를 사용하여 'Vertex AI 사용자' 역할을 찾아 선택합니다.
    • 저장을 클릭합니다.

이제 서비스 계정의 특정 페이지에서 올바른 프로젝트 수준 권한 페이지로 이동하여 프로젝트 내에서 AI 기능을 사용할 수 있도록 승인했습니다.

3. AI 어시스턴트로 코드 빌드

개념 소개

모든 애플리케이션은 코드로 시작됩니다. 일반적으로 이 부분이 가장 시간이 오래 걸립니다. 오늘은 AI 파트너인 Gemini와 협력하여 이 프로세스를 가속화할 것입니다. 하지만 첫 번째 명령어를 작성하기 전에 Google Cloud에서 제공하는 AI 도구의 환경을 이해하는 것이 중요합니다.

Google의 AI 제품은 가장 간단한 것부터 가장 강력한 것까지 세 가지 주요 카테고리로 생각할 수 있습니다.

서로 다른 용도로 설계된 두 가지 기본 인터페이스를 통해 '크리에이티브 엔진' (Gemini)과 상호작용할 수 있습니다.

  • Google AI Studio (aistudio.google.com)
    • 설명: Gemini를 사용하여 빠르게 프로토타입을 제작하고 실험할 수 있는 무료 웹 기반 도구입니다. 프롬프트를 작성하고 모델이 할 수 있는 작업을 확인하는 가장 빠른 방법입니다.
    • 작동 방식: Google 계정만으로 시작할 수 있습니다. 애플리케이션에서 사용하려면 API 키를 생성합니다. 이 워크숍에서 사용하려면 프로젝트에서 'Generative Language API' 서비스를 사용 설정해야 합니다.
    • 비유: AI Studio는 공공 도서관 또는 공개 워크숍입니다. 쉽게 방문하여 무료로 도구를 실험해 볼 수 있습니다.
  • Vertex AI
    • 개요: 전체 머신러닝 수명 주기를 관리하는 Google Cloud의 엔드 투 엔드 플랫폼입니다. Gemini와 같은 기본 모델을 사용할 수 있을 뿐만 아니라 자체 맞춤 머신러닝 모델을 처음부터 빌드, 학습, 배포할 수 있는 완전한 전문 워크벤치입니다. 엔터프라이즈급 보안, 확장성, 거버넌스를 위해 빌드되었습니다. 또한 Google Cloud 프로젝트 내에 완전히 통합된 동일한 도구의 엔터프라이즈급 버전을 제공합니다.
    • 작동 방식: 동일한 강력한 모델을 사용하지만 프로젝트의 모든 보안, 액세스 제어 (IAM), 데이터 거버넌스 기능을 상속합니다. aiplatform.googleapis.com API를 사용 설정하여 1부에서 사용 설정한 서비스입니다.
    • 유추: Vertex AI는 안전한 비공개 기업 R&D 연구소입니다. 모든 작업이 로깅되고, 보안이 유지되며, 다른 프로젝트 리소스에 연결됩니다.

실습: Vertex AI Studio에서 애플리케이션 코드 생성

Vertex AI 내의 시각적 도구를 사용하여 앱을 빌드하면 어떻게 되는지 살펴보겠습니다.

  1. Vertex AI Studio로 이동:
  2. 웹사이트 생성:
    • 프롬프트 상자에 나중에 사용할 것과 동일한 요청을 입력합니다.
    Create the code for a simple web application that shows Halloween fun facts. The application should be built using the Python functions_framework for Cloud Run. The entry point function must be named 'hello_http'. When a user visits the main page, the server should randomly display one fact from a list. The page should have a separate 'index.html' file for the structure and a 'style.css' file to give it a spooky theme 
    
    • Enter를 누릅니다. 모델이 코드를 생성하며, Python (main.py), HTML (index.html), CSS (style.css)의 세 가지 개별 블록으로 구성됩니다.

이 브라우저 탭을 열어 두세요. 다음 섹션에서 이 세 블록의 코드를 복사해야 합니다. AI가 파일을 올바르게 분리한 것을 확인할 수 있습니다. 이는 좋은 방법이지만, 배포하려면 여러 수동 단계가 필요합니다.

4. Cloud Run으로 전 세계에 배포

개념 소개

코드가 생성되었지만 브라우저의 텍스트일 뿐입니다. 고객에게 서비스를 제공하려면 서버에서 실행해야 합니다. Cloud Run은 '서버리스' 플랫폼으로, 코드를 제공하면 Google에서 서버, 확장, 보안 등 모든 것을 처리합니다. 가장 강력한 기능은 0으로 확장하는 것입니다. 아무도 앱을 방문하지 않으면 유휴 시간에 대해 비용을 지불하지 않습니다.

  • '서버리스'란 무엇인가요? 기존에는 앱을 배포하려면 서버 (가상 머신)를 임대하고, 운영체제를 설치하고, 네트워킹 및 보안을 구성하고, 이를 지속적으로 유지관리해야 했습니다. 서버리스는 개발자가 코드에만 집중하는 최신 클라우드 접근 방식입니다. Cloud Run과 같은 서비스에 코드를 제공하면 서버, 확장, 보안, 네트워킹 등 나머지 모든 것을 처리합니다.
  • Cloud Run 작동 방식: 확장 기능의 마법 Cloud Run에 배포하면 코드가 컨테이너 (애플리케이션과 모든 종속 항목의 표준화된 휴대용 패키지)로 패키징됩니다. 사용자가 앱의 URL을 방문하면 Cloud Run은 요청을 처리하기 위해 컨테이너를 즉시 시작합니다. 1,000명의 사용자가 동시에 방문하면 1,000개의 복사본이 자동으로 시작됩니다. 가장 강력한 기능은 0으로 조정입니다. 앱을 방문하는 사용자가 없으면 Cloud Run은 실행 중인 컨테이너 수를 0까지 줄입니다. 즉, 유휴 시간에 대한 비용은 전혀 지불하지 않으므로 매우 비용 효율적입니다.

첫 번째 배포에서는 Cloud Run 콘솔의 인라인 편집기를 사용하여 코드를 수동으로 복사합니다.

실습: 애플리케이션 배포

  1. Cloud Run 생성 마법사를 시작합니다.
    • 으로 이동
    • 페이지 상단에서 + 함수 작성을 클릭합니다.
  2. 서비스 구성:
    • 인라인 편집기를 사용하여 함수 만들기를 선택합니다.
    • 서비스 이름을 지정합니다(예: fact-app-manual).
    • 런타임 Python 3.13을 선택합니다.
    • 리전 을 선택합니다(us-central1).
    • 공개 액세스 허용을 선택합니다.
    • 나머지 설정은 모두 기본값으로 둡니다.
    • 하단의 만들기 버튼을 클릭합니다.
  3. 코드 입력:
    • 기본 main.pyrequirements.txt 파일이 있는 편집기가 표시됩니다.
    • main.py: Vertex AI Studio 탭으로 이동합니다. 전체 Python 코드 블록을 복사합니다. Cloud Run 편집기로 돌아와 기본 main.py 콘텐츠를 방금 복사한 코드로 바꿉니다.
    • requirements.txt:* 편집기에서 requirements.txt 파일을 클릭합니다. Python 코드에는 functions-framework이 필요합니다. 파일 콘텐츠를 다음으로 바꿉니다.
      functions-framework
      
    • index.html: 편집기의 파일 탐색기에서'+'를 클릭하여 새 파일을 추가합니다. 파일 이름을 index.html로 지정합니다. Vertex AI Studio 탭으로 이동하여 HTML 코드 블록을 복사하고 이 새 index.html 파일에 붙여넣습니다.
    • style.css: '+'를 클릭하여 새 파일을 추가합니다. 이름을 style.css로 지정합니다. Vertex AI Studio 탭으로 이동하여 CSS 코드 블록을 복사하고 이 새 style.css 파일에 붙여넣습니다.
  4. 서비스 배포:
    • 세 개의 파일이 올바르게 배치되면 저장 및 배포 버튼을 클릭합니다 .
  5. 라이브 애플리케이션 액세스:
    • 배포하는 데 몇 분 정도 걸립니다. 완료되면 서비스 세부정보 페이지가 표시되고 상단에 공개 URL이 표시됩니다.
    • 이 URL을 클릭합니다. 이제 애플리케이션이 작동합니다. 작동은 하지만 수동으로 복사하여 붙여넣는 작업이 많았습니다.

5. 개발자 워크플로 최적화

콘솔은 학습에 유용하지만 반복적인 개발에는 느립니다. 이제 Cloud ShellGemini CLI를 사용하여 이 다단계 프로세스 전체를 간소화된 대화로 전환하는 개발자의 선호 워크플로를 살펴보겠습니다.

Cloud Shell 및 Gemini CLI란 무엇인가요?

Cloud Shell은 브라우저에서 실행되는 완전한 Linux 컴퓨터로, gcloud CLI (Google Cloud의 리모컨)와 같은 개발자 도구가 사전 로드되어 있습니다.

Gemini CLI는 터미널에서 실행되는 대화형 AI 기반 코딩 어시스턴트입니다.

Gemini 확장 프로그램이란 무엇인가요?

Gemini CLI를 강력한 스마트폰이라고 생각하면 됩니다. 그 자체로도 매우 유능합니다. 확장 프로그램은 앱 스토어에서 설치하는 앱과 같습니다. 확장 프로그램은 Gemini CLI에 기본적으로 없는 새로운 전문 기능을 제공합니다. 예를 들어 nanobanana 확장 프로그램은 Gemini CLI를 Google의 강력한 이미지 생성 모델에 연결하는 '앱'으로, 명령줄에서 직접 이미지를 생성할 수 있습니다.

실습: 간소화된 워크플로

  1. API 키 생성
    • 로 이동합니다.
    • '+API 키 만들기' 버튼을 클릭합니다.
    • 이 키 유지
  2. Cloud Shell 활성화 및 구성:
    • Google Cloud 콘솔 상단에서 Cloud Shell 활성화 아이콘 (>_)을 클릭합니다.
    • 터미널에서 다음 명령어를 실행하여 환경을 설정합니다. 이때 프로젝트 ID를 자신의 ID로 바꿔야 합니다.
      # Set your Project ID
      export PROJECT_ID="[your-project-id-goes-here]"
      
      NANOBANANA_GOOGLE_API_KEY를 설정합니다. API 키로 바꿉니다. (계속 설치하려면 Y라고 말하세요.)
      gcloud config set project $PROJECT_ID
      
      # REPLACE with your API Key.
      export NANOBANANA_GOOGLE_API_KEY="[your-api-key-goes-here]"
      
      터미널에서 다음을 실행하여 확장 프로그램을 설치합니다.
      # Configure the CLI to use your project with Vertex AI
      export GOOGLE_CLOUD_PROJECT=$PROJECT_ID
      export GOOGLE_CLOUD_LOCATION=us-central1
      export GOOGLE_GENAI_USE_VERTEXAI=true
      
      # Install the image generation extension
      gemini extensions install https://github.com/gemini-cli-extensions/nanobanana
      
  • AI 코딩 어시스턴트 역할을 하는 강력한 명령줄 인터페이스인 Gemini CLI를 사용합니다. 원하는 코드를 일반 영어로 설명하면 구조를 생성해 주므로 개발 속도가 크게 빨라집니다.
  1. 대화형 AI 세션 시작하기:
    • 프로젝트의 새 디렉터리를 만들고 대화형 모드에서 Gemini CLI를 시작해 보겠습니다. 터미널에서 다음 명령어를 실행합니다.
      mkdir ~/2025-website
      cd ~/2025-website
      cat <<EOF > .env
        GOOGLE_CLOUD_PROJECT=$PROJECT_ID
        GOOGLE_CLOUD_LOCATION=$GOOGLE_CLOUD_LOCATION
        GOOGLE_GENAI_USE_VERTEXAI=true
        NANOBANANA_GOOGLE_API_KEY=$NANOBANANA_GOOGLE_API_KEY
      EOF
      clear
      gemini --yolo
      
  2. 앱 생성 및 반복:
    • 이제 AI 어시스턴트와 채팅 세션을 진행합니다. 다음 프롬프트를 붙여넣어 하나의 명령어로 전체 웹사이트를 생성합니다.
      Write a simple web app that shows Halloween fun facts using the Python Flask. When a user visits the main page, it should show one random fact. Include a button that fetches and displays a new fact when clicked. Create a simple, clean index.html, a separate style.css with a spooky theme, and a requirements.txt file. After creating the files, attempt to start the web app locally on port 8080.
      
    • 로컬 테스트: AI가 파일을 만들고 웹 서버를 시작합니다. (서버 시작을 시도하는 것으로 보이면 로딩이 멈추지 않더라도 다음 단계로 이동해도 됩니다. )
    • Cloud Shell 툴바에서 웹 미리보기 아이콘을 클릭하고 포트 8080에서 미리보기를 선택하면 새 탭에 사이트가 표시됩니다.
    • Gemini CLI에서 Esc를 눌러 요청을 취소하거나 Gemini CLI에 Stop the web server를 요청합니다.
  3. AI 생성 이미지로 웹사이트 업데이트:
    • 이제 확장 프로그램을 사용해 보겠습니다. /로 시작하는 명령어는 AI를 위한 프롬프트가 아니라 도구를 대상으로 하는 '슬래시 명령어'입니다.
      /generate 3 images of spooky halloween fun
      
    • 확장 프로그램에서 이미지 3개를 만듭니다. 이제 AI에 웹사이트를 수정하여 이를 사용하도록 요청해 보겠습니다.
      Update the website so it will display and rotate between the 3 newly generated images each time the button is clicked. And do NOT start the server.
      
  4. 배포 준비:
    • Cloud Run은 컨테이너를 사용하여 코드를 배포합니다. Dockerfile은 컨테이너를 빌드하는 레시피입니다. AI에 요청하여 만들어 보겠습니다.
      Create a Dockerfile suitable for deploying this Python Flask app to Cloud Run.
      
  5. 단일 명령어로 배포:
    • CtrlC를 두 번 눌러 Gemini CLI를 종료합니다. 또는 프롬프트에 /quit를 입력합니다.
    • 이제 gcloud CLI를 사용하여 현재 디렉터리에서 전체 애플리케이션을 배포합니다.
      gcloud run deploy fact-app-cli \
        --source . \
        --region us-central1 \
        --allow-unauthenticated
      
  6. 차이점 확인:
    • 몇 분 후 모든 기능을 갖춘 AI 생성 웹사이트의 새 URL이 제공됩니다. Cloud Run 콘솔을 방문하면 fact-app-manualfact-app-cli 서비스가 모두 표시됩니다. 명령줄 개발자 워크플로의 속도와 성능을 경험하셨습니다.

축하합니다

Google Cloud에서 전체 개발 수명 주기를 완료했습니다. 빈 프로젝트로 시작하여 이제 다음을 수행했습니다.

  • 결제가 사용 설정된 보안 프로젝트를 구성했습니다.
  • AI 어시스턴트를 사용하여 전체 애플리케이션을 작성했습니다.
  • 확장 가능한 서버리스 플랫폼에 애플리케이션을 배포했습니다.
  • IAM으로 보안을 관리하는 방법을 배웠습니다.

이제 Google Cloud에서 훨씬 더 복잡하고 강력한 애플리케이션을 빌드할 수 있는 기본 기술을 갖추었습니다.