AI 클라우드 핸즈온 랩 | P4. Vertex AI 기반 Gemini 이미지 인식 앱 빌드 실습

넥스트플랫폼 동준상 대표 (naebon@naver.com)

2026.04.12 / 동준상.넥스트플랫폼
(AWS SAA, AWS AIF, GCP GenAI Leader)

AI Cloud Hands-on Lab: Building an Image Recognition App with Gemini on Vertex AI

핵심 요약 (Executive Summary)

이번 포스트는 Google Cloud의 AI 플랫폼인 Vertex AI를 활용하여 Gemini 기반 이미지 인식 애플리케이션을 구축하는 과정을 살펴보고, 이 과정에 포함된 핵심 기술 요소를 분석하는 실습 가이드입니다.

  • 이번 실습 프로젝트의 핵심: 사전 학습된(pre-trained) Gemini 모델을 사용하여 이미지와 텍스트 입력을 결합한 멀티모달(multimodal) 추론을 수행
  • 학습자는 Vertex AI SDK를 통해 모델에 연결하고, 자원 고갈(Quota exhaustion) 상황에 대비한 재시도 로직을 구현하며, 최종적으로 이미지 콘텐츠에 대한 텍스트 기반 답변을 추출하는 프로세스를 체험

1. 프로젝트 개요 및 목적

Vertex AI(generative AI)는 구글의 대규모 생성형 AI 모델에 대한 접근을 제공하여 사용자가 모델을 테스트, 튜닝 및 배포할 수 있도록 지원합니다. 본 프로젝트의 주요 목적은 다음과 같습니다.

  • Vertex AI SDK 연결: Google Cloud AI 서비스와의 통신 채널 구축.
  • Gemini 모델 로드: 처음부터 모델을 구축하지 않고 사전 학습된 강력한 Gemini 모델 활용.
  • 멀티모달 입력 처리: 이미지와 텍스트 질문을 동시에 모델에 전달하여 복합적인 맥락 이해.
  • 결과 추출 및 해석: 모델이 생성한 텍스트 응답을 처리하고 소프트웨어 프로젝트에 통합하는 핵심 개념 파악.

2. 기술적 구현 상세

2.1 클라이언트 구성 및 모델 호출

애플리케이션은 google.genai 라이브러리를 사용하여 Vertex AI 클라이언트를 생성합니다. 주요 메소드인 generate_content는 다음과 같은 파라미터를 입력받아 실행됩니다.

  • 모델 ID (Model ID): 사용할 특정 Gemini 모델 지정.
  • 콘텐츠 (Contents):
    • 텍스트 프롬프트: 이미지에 대해 묻고 싶은 질문 (예: “이 이미지에는 무엇이 표시되어 있습니까?”).
    • 이미지 파트 (Part.from_uri): 분석할 이미지의 Cloud Storage URI 및 MIME 유형(image/jpeg).

2.2 오류 처리 및 재시도 로직 (Retry Logic)

높은 수요로 인한 자원 고갈(HTTP 429 오류)에 대비하여 안정적인 서비스 운영을 위한 지수 백오프(Exponential Backoff) 기반의 재시도 메커니즘이 포함되어 있습니다.

구성 요소설정값설명
MAX_RETRIES3최대 재시도 횟수
INITIAL_DELAY2초첫 번째 재시도 전 대기 시간
대상 오류429 / RESOURCE_EXHAUSTED할당량 초과 시 발생하는 구체적인 클라이언트 오류
최종 상태 확인finally 블록모든 시도 실패 시 프로세스 종료 상태 확인

분석 대상 이미지

Blueberry Scones / https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
Blueberry Scones / https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg

3. 환경 설정 및 실행 단계

애플리케이션을 실행하기 위해 필요한 환경 변수 설정과 실행 프로세스는 다음과 같습니다.

3.1 필수 환경 변수

터미널에서 다음 변수를 설정하여 SDK가 올바른 프로젝트와 지역을 참조하도록 합니다.

환경 변수명목적
GOOGLE_CLOUD_PROJECT연결할 Google Cloud 프로젝트 ID 지정
GOOGLE_CLOUD_LOCATION서비스가 배포될 리전(Region) 설정
GOOGLE_GENAI_USE_VERTEXAIVertex AI 엔드포인트 사용 여부 활성화 (True)

3.2 실행 프로세스

  1. 코드 작성: genai.py 파일에 Python SDK 기반 로직 구현.
  2. 환경 변수 내보내기(Export): 상기 표의 변수들을 시스템에 등록.
  3. 스크립트 실행: python3 /genai.py 명령어를 통해 모델 호출 및 결과 확인.

결론

  • 이미지 및 텍스트의 통합 이해: Gemini 모델은 텍스트 프롬프트의 맥락을 사용하여 이미지의 콘텐츠를 설명할 수 있고, 단순한 사물 인식을 넘어 이미지 내의 상황 추론 가능
  • 확장성: 제공된 코드 구조 내에서 이미지 URI와 프롬프트 질문을 변경하여 다양한 이미지 인식 시나리오를 실험하고 확장 가능
  • 안정성 확보: 클라우드 기반 AI API를 사용할 때 발생할 수 있는 할당량 제한 문제를 재시도 로직을 통해 기술적으로 보완함으로써 애플리케이션의 견고함 제고 가능

답글 남기기