로드 중...
검색 결과가 없습니다.

Google Cloud Skills Boost

Google Cloud 콘솔에서 기술 적용


700개 이상의 실습 및 과정 이용하기

Cloud Run에서 Gemini API를 사용하여 채팅 애플리케이션 빌드

실습 1시간 30분 universal_currency_alt 크레딧 5개 show_chart 중급
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
700개 이상의 실습 및 과정 이용하기

GSP1201

Google Cloud 사용자 주도형 실습 로고

개요

이 실습에서는 Google Cloud에서 Cloud Run을 사용하여 AI 기반 채팅 애플리케이션을 만들고 배포하는 방법을 보여줍니다. 이 채팅 애플리케이션은 Gemini 대규모 언어 모델(LLM) API를 기반으로 합니다.

웹 애플리케이션에서 API를 활용하고 Cloud Run에 배포하며 Cloud Build 및 아티팩트 저장소를 사용하여 애플리케이션 빌드의 컨테이너 이미지를 저장합니다. 이 애플리케이션은 Gemini API를 사용하는 웹 인터페이스의 시작점으로 사용할 수 있습니다.

이 실습에서는 Cloud Run에서 실행되는 웹 애플리케이션을 만듭니다. 이 애플리케이션은 Gemini 대규모 언어 모델(LLM)에서 제공하는 API를 활용하며 실습에 배포된 간단한 웹 인터페이스를 통해 이러한 API를 표시합니다.

애플리케이션을 만드는 과정을 통해 Gemini와 같은 대규모 언어 모델을 활용하는 웹 애플리케이션을 빌드하여 최종 사용자가 채팅 애플리케이션을 통해 질문하고 유용한 대답을 받을 수 있는 흥미로운 대화 기반 상호작용을 만드는 방법을 이해합니다.

학습할 내용

이 실습에서 학습할 내용은 다음과 같습니다.

  • Cloud Build를 사용하여 애플리케이션을 실행할 Docker 이미지를 빌드합니다.
  • 애플리케이션을 실행하는 Cloud Run 서비스를 배포합니다.
  • Python 코드를 검토하여 애플리케이션이 채팅 세션을 통해 gemini-2.0-flash 모델을 어떻게 활용하는지 이해합니다.

설정 및 요건

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드(권장) 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 이 실습에는 학습자 계정만 사용하세요. 다른 Google Cloud 계정을 사용하는 경우 해당 계정에 비용이 청구될 수 있습니다.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 대화상자가 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 창이 있습니다.

    • Google Cloud 콘솔 열기 버튼
    • 남은 시간
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보
    • 필요한 경우 실습 진행을 위한 기타 정보
  2. Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).

    실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.

    {{{user_0.username | "Username"}}}

    실습 세부정보 창에서도 사용자 이름을 확인할 수 있습니다.

  4. 다음을 클릭합니다.

  5. 아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.

    {{{user_0.password | "Password"}}}

    실습 세부정보 창에서도 비밀번호를 확인할 수 있습니다.

  6. 다음을 클릭합니다.

    중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  7. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
    • 무료 체험판을 신청하지 않습니다.

잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.

참고: Google Cloud 제품 및 서비스에 액세스하려면 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다. 탐색 메뉴 아이콘 및 검색창

Cloud Shell 활성화

Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다. Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.

  1. Google Cloud 콘솔 상단에서 Cloud Shell 활성화 Cloud Shell 활성화 아이콘를 클릭합니다.

  2. 다음 창을 클릭합니다.

    • Cloud Shell 정보 창을 통해 계속 진행합니다.
    • 사용자 인증 정보를 사용하여 Google Cloud API를 호출할 수 있도록 Cloud Shell을 승인합니다.

연결되면 사용자 인증이 이미 처리된 것이며 프로젝트가 학습자의 PROJECT_ID, (으)로 설정됩니다. 출력에 이 세션의 PROJECT_ID를 선언하는 줄이 포함됩니다.

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.

  1. (선택사항) 다음 명령어를 사용하여 활성 계정 이름 목록을 표시할 수 있습니다.
gcloud auth list
  1. 승인을 클릭합니다.

출력:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (선택사항) 다음 명령어를 사용하여 프로젝트 ID 목록을 표시할 수 있습니다.
gcloud config list project

출력:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 참고: gcloud 전체 문서는 Google Cloud에서 gcloud CLI 개요 가이드를 참고하세요.

작업 1. 환경 설정

Cloud Run 애플리케이션을 배포하려면 Cloud Storage 버킷에서 소스를 다운로드합니다.

  1. Cloud Shell에서 다음 명령어를 입력합니다.
gsutil cp -R gs://spls/gsp1201/chat-flask-cloudrun .
  1. 그런 다음 프로젝트 폴더로 이동합니다.
cd chat-flask-cloudrun
  1. 이후 명령어에서 사용할 리전 및 프로젝트 환경 변수를 설정합니다.
export PROJECT_ID={{{ project_0.project_id | "Filled in at lab startup." }}} export REGION={{{ project_0.startup_script.region | "Filled in at lab startup." }}}

작업 2. Docker 이미지 만들기

다음으로 애플리케이션의 Docker 이미지를 빌드하고 Artifact Registry에 푸시합니다. 컨테이너 이미지를 빌드하고 저장한 후 이를 참조하여 애플리케이션을 Cloud Run에 배포합니다.

  1. 이후 명령어에서 사용할 환경 변수를 설정합니다.
export AR_REPO='chat-app-repo' export SERVICE_NAME='chat-flask-app'
  1. 다음 명령어를 실행하여 아티팩트 저장소를 만듭니다.
gcloud artifacts repositories create "$AR_REPO" --location="$REGION" --repository-format=Docker
  1. Docker 인증을 구성하고 컨테이너 이미지 빌드 작업을 Cloud Build에 제출합니다.
gcloud builds submit --tag "$REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$SERVICE_NAME"
  1. 이미지가 Artifact Registry로 푸시되었는지 확인하려면 Artifact Registry 페이지로 이동합니다.
    • Google Cloud 콘솔 제목 표시줄의 검색 창에 Artifact Registry를 입력한 다음 검색 결과에서 Artifact Registry를 클릭합니다.
    • chat-app-repo가 제공되는지 확인합니다.
참고: 아래의 확인을 실행하여 Docker 인증이 필요한지 확인합니다. Cloud Shell에서 다음 명령어를 실행해 보세요.

gcloud auth configure-docker us-central1-docker.pkg.dev

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Docker 이미지 만들기

작업 3. Cloud Run에 애플리케이션 배포

애플리케이션이 다운로드되었고 Cloud Build를 통해 빌드되었습니다. 이제 Cloud Run에서 배포하고 테스트합니다.

  1. Cloud Shell에서 다음 명령어를 실행합니다.
gcloud run deploy "$SERVICE_NAME" --port=8080 --image="$REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$SERVICE_NAME:latest" --allow-unauthenticated --region=$REGION --platform=managed --project=$PROJECT_ID --set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION 참고: 이 단계는 완료하는 데 몇 분 정도 걸립니다.
  1. 애플리케이션을 실행하려면 마지막 명령어의 출력에서 제공되는 서비스 URL을 클릭합니다. 출력은 아래와 유사합니다.
Deploying container to Cloud Run service [chat-flask-app] in project [qwiklabs-gcp-03-fda25c1691e3] region [us-central1] OK Deploying new service... Done. OK Creating Revision... OK Routing traffic... OK Setting IAM Policy... Done. Service [chat-flask-app] revision [chat-flask-app-00001-x9r] has been deployed and is serving 100 percent of traffic. Service URL: https://chat-flask-app-308034796843.us-central1.run.app
  1. 입력 텍스트 상자에 다음 쿼리를 입력하고 전송을 클릭합니다.
What is Google Cloud Platform?

프롬프트 입력 아래의 출력 텍스트 상자에 gemini-2.0-flash API에서 생성한 대답이 표시됩니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Cloud Run에 애플리케이션 배포

작업 4. Python 코드 살펴보기

애플리케이션에서 Gemini Chat Bison API를 활용하는 방법을 이해하기 위해 앱에서 사용되는 코드를 간단히 살펴봅니다.

  1. Cloud Shell에서 편집기 열기를 클릭하여 코드를 살펴볼 수 있는 Cloud Shell 편집기를 엽니다.

  2. 탐색 창에서 chat-flask-cloudrun 폴더를 펼치고 app.py를 선택하여 코드를 살펴봅니다.

  3. 다음 Python 메서드에 유의하세요.

  • create_session: 이 메서드는 chat_model = GenerativeModel("gemini-2.0-flash") 모델을 사용하여 Vertex AI에서 새 세션을 만듭니다. /gemini 경로에서 사용되며, 이에 관해서는 새 채팅 세션을 설정할 때 자세히 살펴보겠습니다.
def create_session(): chat_model = GenerativeModel("gemini-2.0-flash") chat = chat_model.start_chat() return chat
  • response: 이 메서드는 대답을 가져옵니다.
def response(chat, message): result = chat.send_message(message) return result.text
  • indexgemini_chat: indexgemini_chat 메서드는 애플리케이션 API의 경로를 정의합니다. index 메서드는 사용자가 애플리케이션을 로드할 때 index.html 페이지를 로드하고, gemini_chat 메서드는 index.html 페이지에서 수집한 사용자 프롬프트를 API에 제출하고 JSON 형식으로 결과를 반환합니다.
@app.route('/') def index(): ### return render_template('index.html') @app.route('/gemini', methods=['GET', 'POST']) def gemini_chat(): user_input = "" if request.method == 'GET': user_input = request.args.get('user_input') else: user_input = request.form['user_input'] logger.log(f"Starting chat session...") chat_model = create_session() logger.log(f"Chat Session created") content = response(chat_model,user_input) return jsonify(content=content)

index.html 파일에는 사용자가 전송을 클릭하면 제출한 양식의 결과를 읽고 Gemini API 호출의 응답으로 UI를 업데이트하는 인라인 JavaScript가 포함되어 있습니다.

수고하셨습니다

실습을 완료하셨습니다. 이 실습에서는 Cloud Build 및 Artifact Registry를 사용하여 간단한 웹 애플리케이션을 빌드하고 배포하는 방법을 알아보았습니다. 이 애플리케이션은 Cloud Run에 배포되며 Gemini를 활용해 최종 사용자 쿼리에 대답하여 최종 사용자가 웹 UI에서 질문하고 대답을 받을 수 있는 채팅 기반 애플리케이션을 만듭니다.

다음 단계

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2025년 3월 31일

실습 최종 테스트: 2025년 3월 13일

Copyright 2025 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.