본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 05. 19. 20:56

GCP AI 학습 커리큘럼: 메인 메뉴 Phase 3: AI 앱 만들기

요약

GCP(Google Cloud Platform)의 Vertex AI와 Gemini API를 활용하여 AI 애플리케이션을 개발하는 학습 커리큘럼의 Phase 3 과정입니다. Python SDK와 VS Code를 사용하여 환경 구축부터 RAG, 스트리밍 응답, 대화형 CLI 구현까지 실전적인 AI 앱 개발 워크플로우를 다룹니다.

핵심 포인트

  • google-genai SDK를 활용한 전문적인 Gemini API 워크플로우 구축
  • Python 가상 환경 및 gcloud CLI를 이용한 GCP 개발 환경 설정 방법
  • Streaming 방식을 이용한 실시간 텍스트 출력 구현
  • Chat 세션 관리를 통한 상태 유지형 대화형 CLI 개발

이 프로젝트에서는 GCP (Google Cloud Platform)의 AI 분야, 특히 Vertex AI와 생성형 AI (Generative AI)를 하루 1시간 학습으로 습득하는 것을 목표로 합니다.

참고로 초보자용입니다. 저는 AWS를 메인으로 사용하고 있습니다.

GCP는 AWS처럼 커뮤니티가 활발하지 않다는 인상이 있어 접근하기 어려웠지만, AI 시대의 세상에서 GCP에 대해서도 조금씩 해나가자는 마음으로 작성했습니다.

페이즈타이틀기간내용
Phase 1GCP 기초1주일환경 구축, 예산 관리, 콘솔 조작
Phase 2AI 체험하기2주일Vertex AI Studio, 프롬프트 설계
Phase 3AI 앱 만들기 (이 기사)3주일Python SDK (VS Code), RAG, 실전 앱
Phase 4AI 전문가로 (다음 회차)계속에이전트 개발, 튜닝, 책임 있는 AI
  • Google 계정 (Gmail 등)
  • GCP 프로젝트 (Phase 1에서 생성 완료한 것)
  • PC (VS Code, Python이 동작하는 환경)

VS Code (로컬 환경)를 사용하여, Gemini API를 전문적인 워크플로우로 이용하기 위한 가이드입니다.

※ 본 가이드는 최신 google-genai SDK (2026년 이후의 표준 방식)를 기반으로 합니다.

목표: AI 개발을 할 수 있는 환경을 만든다.

  • Python 설치: 공식 사이트에서 최신 Python을 설치.

  • 프로젝트 생성: 적당한 폴더 (gemini-study)를 VS Code로 열기.

  • 가상 환경 생성: 터미널에서 python -m venv venv를 실행.

  • gcloud CLI 설치: Google Cloud SDK를 설치하고, gcloud init으로 초기 설정.

  • ADC 설정: 터미널에서 gcloud auth application-default login을 실행. 브라우저가 열리면 허용.

  • SDK 설치: pip install google-genai

  • Hello World: main.py를 작성.

day2.py

from google import genai
# 환경 변수 설정
PROJECT_ID = "my-ai-study-494913" # 당신의 실제 프로젝트 ID로 바꿔주세요
...
  • 응답 구조: response 객체의 내용 (candidates, usage_metadata)을 print하여 관찰.

Day 2의 코드에 아래 내용을 추가하여 응답의 상세 내용을 확인합니다.

day3_1.py

# 추가 정보도 표시
print(response.candidates)
print(response.usage_metadata)
  • Markdown 출력: AI의 답변을 Markdown 파일 (output.md)로 저장하는 코드를 작성.

day3_2.py

# 생성된 텍스트를 파일에 저장
with open("output.md", "w") as f:
    f.write(response.text)
  • Streaming: client.models.generate_content_stream을 사용.
  • 실시간 표시: for chunk in response:를 사용하여, print(chunk.text, end="", flush=True)로 글자가 흐르는 연출을 구현.

day4.py

from google import genai
# 환경 변수 설정
PROJECT_ID = "my-ai-study-494913"
...
  • 상태 유지: chat = client.chats.create(model=...)를 사용.
  • 대화형 CLI: while True: 루프를 생성하여, 터미널에서 AI와 계속 채팅할 수 있는 프로그램을 작성.

day5.py

from google import genai
# 환경 변수 설정
PROJECT_ID = "my-ai-study-494913"
...

미디어 전달 방식: from google.genai import typesPart를 사용.

구현: with open("image.jpg", "rb") as f:로 이미지를 열어 AI에게 전달하고 설명을 요청.

day6.py

from google import genai
from google.genai import types
# 환경 변수 설정
...

GenerateConfig: types.GenerateContentConfig를 사용하여 온도 (Temperature) 및 최대 토큰 수 (Max Tokens)를 조정.

SafetySettings: types.SafetySetting을 설정하여 특정 카테고리의 유해한 콘텐츠를 차단하는 예시를 구현.

day7.py

from google import genai
from google.genai import types
# 환경 변수 설정
...

목표: 로컬 환경의 기동성을 활용하여 외부 지식 및 도구를 통합.

실습: tools=[types.Tool(google_search_retrieval=types.GoogleSearchRetrieval())]를 설정에 추가.

day8.py

from google import genai
from google.genai import types
# 환경 변수 설정
...

정의: AI가 호출할 수 있는 Python 함수를 정의.

구현: 직접 만든 함수를 tools에 전달하여, AI가 상황에 따라 함수를 호출하고 그 결과를 바탕으로 답변하는 흐름을 구현.

day9_10.py

from google import genai
from google.genai import types
PROJECT_ID = "my-ai-study-494913"
...

롤플레잉 (Roleplay): system_instruction을 설정하여 AI의 역할과 행동 양식을 고정.

day11.py

from google import genai
# 환경 변수 설정
PROJECT_ID = "my-ai-study-494913"
...

견고화 (Robustness): google.genai.errors를 이용한 예외 처리 (Exception Handling)를 구현하여 API 제한 및 네트워크 에러에 대응.

day12.py

from google import genai
from google import errors
client = genai.Client(vertexai=True, project="my-ai-study-494913", location="us-central1")
...

과제: "로컬 로그 파일을 읽고, 이상이 있으면 검색하여 해결책을 제안하는" 통합 도구 제작.

day13_14.py

from google import genai
from google.genai import types
# 더미 로그 파일 생성
...

목표: 하나의 완결된 도구를 완성.

목표: 하나의 완결된 도구를 완성.

JSON 출력: response_mime_type="application/json"을 활용.

외부 알림: 최종 결과를 Slack 또는 Discord에 게시.

마무리: 로그 출력, 설정의 외부 파일화 (.env)를 수행하여 도구로서의 완성도를 높임.

.env

GCP_PROJECT_ID="your-project-id"
GCP_LOCATION="us-central1"
NOTIFICATION_WEBHOOK_URL="https://hooks.slack.com/services/..."

day15_21.py

import os
import json
import logging
...

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0