AI 네이티브 클라우드 아키텍처 1일차 실습

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

‘AI 네이티브 클라우드 구현 전략 (KPC)’의 핵심 아키텍처 원칙(추론/학습/에이전트 워크로드 분리, Stateless 구조, 비용 최적화/캐싱, 가드레일 보안 거버넌스 등)을 반영한 구글 클라우드 플랫폼(GCP) 기반의 직접 구현하고 검증할 수 있는 실습 프로젝트입니다.

이번 실습 프로젝트를 통해 학습자는 아키텍처의 이론적 개념을 GCP의 관리형 서비스(Vertex AI, Cloud Run, GKE 등)를 통해 실무적으로 연결할 수 있습니다.


1일차 오전 1~3교시 진행 내용

  • AI Native Cloud의 개념 이해
  • GPT 기반 프로젝트 생성
  • Project Instructions 적용
  • Google Cloud Console 계정 생성

4교시: AI Native 프로젝트 설계

목표

AI에게 코드를 맡기기 전에

AI와 함께 프로젝트를 설계하는 경험


실습

팀별 또는 개인별

AI Native 서비스를 하나 선정

예)

  • 반도체 연구 어시스턴트
  • 사내 문서 검색 Agent
  • 회의록 자동화
  • 뉴스 분석 Agent
  • GitHub 코드 리뷰 Agent
  • 고객지원 AI

그리고 GPT와 함께

Markdown으로

Requirements.md

Architecture.md

README.md

작성


학습 포인트

Software 3.0

Prompt

Context

Architecture

순으로 계획


5교시: AI Agent Architecture 설계

이번 과정에서 가장 중요한 개론

User

↓

Planner

↓

Research

↓

Coding

↓

Review

↓

Storage

그리고

Google Cloud에서는

어떤 서비스가 대응되는지 설명

예)

Planner

Cloud Run

Gemini

Firestore

Cloud Storage

Vertex AI


이어서

Mermaid Diagram 작성

예)

graph TD

A[User]

B[Planner Agent]

C[Research Agent]

D[Gemini]

E[Firestore]

A --> B

B --> C

C --> D

D --> E

Cursor에서 Preview


결과

“AI와 함께 설계”

경험 획득


6교시: Gemini CLI + GPT + Cursor 협업

같은 요구사항을

GPT

Gemini

Claude

에게 각각 맡겨보기

예)

반도체 산업 동향 분석 Agent를 설계하시오.

비교

  • 누가 설계를 잘하는가
  • 누가 문서를 잘 쓰는가
  • 누가 코드를 잘 만드는가
  • 누가 Diagram을 잘 그리는가

토론

Model Router

왜 필요한가?

GPT만 쓰면 안되는 이유

Claude가 필요한 이유

Gemini의 장점


학습자가

AI Native 사고 방식을 이해


7교시: Mini Project Kick-off

내일 프로젝트

사전 준비

프로젝트 정의

예)

Problem

Target User

Architecture

Data

LLM

Cloud

Agent

Deployment

AI와 함께 작성


그리고

GitHub Repository 생성

README

LICENSE

.gitignore

Architecture

docs/

생성

내일부터 바로 개발 시작 가능


마무리: Lightning Demo

각 팀

3분 발표

내용

  • 어떤 서비스를 만들 것인가
  • 어떤 AI를 사용할 것인가
  • 왜 그렇게 설계했는가

다른 팀은 질문


1일차 주요 산출물

강의 종료 시 모든 팀이 아래 자산을 보유하게 됩니다.

산출물목적
Project InstructionsAI와 협업하는 기준 문서
Requirements.md요구사항 정의
Architecture.md시스템 설계
Mermaid Diagram아키텍처 시각화
GitHub Repository프로젝트 저장소
README.md프로젝트 소개
AI Agent 설계안구현 방향 명확화

추가 추천 ‘실습 콘텐츠’

“AI가 AI를 개발하는 모습을 실시간으로 보여주는 라이브 빌드 세션”

“반도체 계측 산업 트렌드 리서치 에이전트”를 주제로 다음 과정을 실시간으로 시연

  1. ChatGPT로 프로젝트 요구사항과 Project Instructions 작성
  2. Cursor 또는 Gemini CLI에서 이를 바탕으로 프로젝트 구조 자동 생성
  3. Mermaid 다이어그램과 README 자동 생성
  4. GitHub에 커밋 및 저장

단순히 특정 클라우드 기능을 배우는 것보다 AI Native 개발 방식 자체를 보여주며, 이후 Cloud Run, Vertex AI, Agent Development Kit(ADK), RAG, 멀티 에이전트 등 이후 과정으로도 자연스럽게 연계


Lab01. 클라우드 에이전트 플랫폼에서 현대적이며 모범적인 프롬프트 설계

Design Prompts in Agent Platform

https://www.skills.google/focuses/63251?catalog_rank=%7B%22rank%22%3A10%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=92031677

개요

이 실습에서는 LLM으로 생성된 응답의 품질을 향상시키기 위한 효과적인 프롬프트 설계 방법 및 모범 사례를 살펴봅니다. 간결하고 구체적이며 명확하게 정의된 프롬프트를 작성하고, 한 번에 하나의 작업에 집중하는 방법을 배우게 됩니다. 또한 생성형 작업을 분류형 작업으로 전환하거나 예시를 활용하여 응답 품질을 향상시키는 등의 고급 기법도 다룹니다.

에이전트 플랫폼의 Gemini API

Agent Platform의 Gemini API는 Gemini 모델과의 상호 작용을 위한 통합 인터페이스를 제공합니다. 이를 통해 개발자는 강력한 AI 기능을 애플리케이션에 쉽게 통합할 수 있습니다. 최신 버전의 세부 정보 및 특정 기능에 대한 자세한 내용은 Gemini 공식 문서를 참조하십시오.

필수 조건

이 실험을 시작하기 전에 다음 사항들을 숙지해야 합니다:

  • 기초 파이썬 프로그래밍.
  • 일반적인 API 개념.
  • Agent Platform Workbench 의 Jupyter 노트북에서 Python 코드를 실행합니다 .

목표

이 실습에서는 다음을 배우게 됩니다.

  • Google Gen AI SDK를 사용하여 프롬프트 엔지니어링 시작
  • 간결성, 구체성, 작업 정의를 포함한 프롬프트 설계의 모범 사례 적용
  • Google Gen AI SDK를 사용하여 다양한 텍스트 생성 활용 연습
    • 아이디어 구상
    • 질문 답변
    • 텍스트 분류
    • 텍스트 추출
    • 텍스트 요약

미션 1. Agent Platform Workbench에서 노트북을 엽니다.

  1. Google Cloud 콘솔의 탐색 메뉴에서 (탐색 메뉴 아이콘에이전트 플랫폼 > 노트북 > 워크벤치를 클릭합니다 .
  2. 찾으세요워크벤치 인스턴스 이름인스턴스를 실행하고 “JupyterLab 열기” 버튼을 클릭하세요 .

워크벤치 인스턴스의 JupyterLab 인터페이스가 새 브라우저 탭에서 열립니다.

미션 2. 노트북을 준비하세요

  1. 열기노트북 이름파일.
  2. 커널 선택 대화 상자 에서 사용 가능한 커널 목록에서 Python 3(로컬)을 선택합니다 .
  3. 노트북의 시작하기 섹션을 따라 진행하세요 . 프로젝트 ID와 위치는 미리 설정되어 있습니다.

참고: 노트북 셀 실행 시 429 오류가 발생하는 경우, 1분 정도 기다린 후 셀을 다시 실행하십시오.

목표 달성 여부를 확인하려면 ‘ 진행 상황 확인’을 클릭하세요 .

패키지를 설치하고 라이브러리를 가져옵니다.

미션 3. 엔지니어링 모범 사례를 제시하십시오.

프롬프트 엔지니어링은 응답이 실제로 원하는 대로 나오도록 프롬프트를 설계하는 방법에 관한 것입니다. “간결한” 프롬프트를 사용하는 이유는 프롬프트의 불필요한 정보를 최소화하여 학습 관리자(LLM)가 프롬프트의 의도를 잘못 해석할 가능성을 줄이기 위함입니다. 아래는 “간결한” 프롬프트를 설계하는 몇 가지 지침입니다.

이 섹션에서는 엔지니어링 프롬프트를 작성할 때 다음과 같은 모범 사례를 다룹니다.

  • 간결하게 작성하세요
  • 구체적이고 명확하게 설명하세요.
  • 한 번에 한 가지씩만 요청하세요.
  • 예시를 포함하여 답변 품질을 향상시키세요.
  • 생성형 작업을 분류형 작업으로 전환하여 안전성을 향상시키세요.
  1. 노트의 ‘ 간결하게 작성하기’ 부분을 훑어보세요 .
  2. 노트의 ‘구체적이고 명확하게 작성하기’ 부분을 꼼꼼히 살펴보세요 .
  3. 노트의 ” 한 번에 한 가지 작업만 요청하기” 부분을 훑어보세요 .
  4. 노트의 ‘환각에 주의하세요’ 부분을 훑어보세요 .

미션 4. 출력 변동성 감소

관련 없는 답변이나 환각 현상을 줄이려면 어떻게 해야 할까요? 한 가지 방법은 LLM(학습 관리 시스템)에 시스템 지침을 제공하는 것입니다 . 이 섹션에서는 시스템 지침의 작동 방식과 이를 활용하여 여행 챗봇의 환각 현상이나 관련 없는 질문을 줄이는 방법을 설명합니다.

  1. 노트북의 “시스템 지침 사용을 통해 모델이 관련 없는 응답으로부터 보호되도록 하기” 섹션을 따라 진행하십시오 .

목표 달성 여부를 확인하려면 ‘ 진행 상황 확인’을 클릭하세요 .

시스템 인스트럭션으로 가드레일을 적용하여 모델이 관련성이 떨어지는 답변을 생성하는 일을 통제할 수 있습니다.

  1. 노트북의 “생성형 작업을 분류형 작업으로 변환하여 출력 변동성을 줄이는 방법” 섹션을 따라 진행하세요 .

목표 달성 여부를 확인하려면 ‘ 진행 상황 확인’을 클릭하세요 .

생성형 작업은 출력 변동성을 높입니다.

  1. 노트북의 “분류 작업 실행 시 출력 변동성 감소” 섹션을 따라 진행하십시오 .

목표 달성 여부를 확인하려면 ‘ 진행 상황 확인’을 클릭하세요 .

분류 작업은 출력 변동성을 줄입니다.

미션 5. 예시를 포함하여 답변의 질을 향상시키세요

응답 품질을 향상시키는 또 다른 방법은 프롬프트에 예시를 추가하는 것입니다. LLM은 예시를 통해 맥락 속에서 어떻게 응답해야 하는지 학습합니다. 일반적으로 1~5개의 예시(샷)면 응답 품질을 향상시키는 데 충분합니다. 너무 많은 예시를 포함하면 모델이 데이터에 과적합되어 응답 품질이 저하될 수 있습니다.

기존 모델 학습과 마찬가지로 예제의 품질과 분포는 매우 중요합니다. 모델이 학습해야 하는 시나리오를 대표하는 예제를 선택하고, 예제의 분포(예: 분류의 경우 클래스별 예제 수)를 실제 분포와 일치시키세요.

노트북의 “예시를 포함하여 응답 품질 향상” 섹션 을 살펴보고 예시를 포함하여 답변 품질을 향상시키세요.


Lab02. 구글 클라우드 Agent Studio 시작하기

Get Started with Agent Studio

https://www.skills.google/focuses/63564?catalog_rank=%7B%22rank%22%3A12%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=92035791

미션 1. 프롬프트로 AI 애플리케이션 빌드

이 과제에서는 Agent Studio를 사용하여 생성형 AI 비서 아이디어를 빠르게 실제 작동하는 프로토타입으로 구현하는 방법을 배우게 됩니다. 특히 보험 분야의 활용 사례에 집중하여, 보험 전문가가 위험 분석 보고서를 위해 고객 정보를 요약하는 데 도움이 되는 프롬프트를 만들고, 이를 간단한 애플리케이션으로 구현해 볼 것입니다.

  1. Google Cloud 콘솔에서 탐색 메뉴를 통해 (탐색 메뉴), 에이전트 플랫폼 > 스튜디오를 선택합니다 .
  2. 왼쪽 상단에서 + 새로 만들기 > 채팅을 선택합니다 . 프롬프트 편집기 페이지가 열립니다.

사용자 인터페이스는 크게 세 부분으로 구성됩니다.

  • 시스템 명령어 : 모델이 프롬프트를 처리하기 전에 처리하는 일련의 명령어입니다. 시스템 명령어가 설정되면 전체 요청에 적용됩니다. 프롬프트에 포함된 경우 여러 사용자 및 모델 턴에 걸쳐 작동합니다.
  • 모델 설정 : 이 섹션에서는 모델(타사 모델 포함)을 선택하고, 매개변수를 구성하고, 도구(접지 등)를 사용하고, 고급 옵션을 설정할 수 있습니다.
  • 프롬프트 : 이 섹션에서는 멀티모달 기능을 활용할 수 있는 프롬프트를 작성합니다.
  1. 오른쪽 상단에서 ‘제목 없는 프롬프트’를 클릭 하고 프롬프트 이름을 ‘보험 위험 요약 – 프로토타입’ 으로 변경합니다 .
  2. 시스템 지침 상자 에 다음 내용을 입력하여 AI 비서에게 당사의 보험 시나리오와 관련된 역할을 부여하십시오.당신은 보험 인수 부서의 전문 AI 비서입니다. 귀하의 주요 목표는 고객 정보를 정확하고 간결하게 요약하고 잠재적 위험 요소를 강조하여 보험 인수 담당자를 지원하는 것입니다. 전문적이고 객관적인 어조를 유지하십시오. 제시된 정보에만 집중하세요. 세부 사항을 지어내지 마세요.
  3. 메인 프롬프트 영역에 다음 내용을 붙여넣으세요.’SafeHarbor Warohusing’에 대한 고객 의견: 신청인은 5만 평방피트 규모의 창고에 대한 보험 가입을 신청하고 있습니다. 사업은 5년 전에 시작되었으며 …
  4. 모델 설정을 클릭하세요 .
    • 다음 사항을 확인하십시오모델 이름모델이 선택되었습니다. 모델 > 제미니를 클릭하세요 .모델 이름그것을 바꾸기 위해.
    • 아직 설정하지 않았다면 지역 에서 ‘전역’을 선택하세요 .
  5. 제출(Enter) 화살표 버튼을 클릭 하거나 Enter 키를 누르세요. 모델의 응답을 검토하세요.
  1. 오른쪽 상단, 프롬프트 이름 옆에 있는 저장 버튼을 클릭합니다.
  2. 저장 프롬프트 대화 상자 에서 지역 이 올바른지 확인하십시오 (지역)를 클릭하고 저장을 클릭하세요 .

참고: 첫 번째 메시지가 저장되는 데 몇 분 정도 걸릴 수 있습니다.

  1. 프롬프트를 저장하면, 작성된 프롬프트를 프로토타입 애플리케이션으로 변환하는 방법을 살펴보게 됩니다.
  2. 오른쪽 상단에 나타나는 메뉴에서 배포 아이콘 > 클라우드 실행 > 앱으로 배포를 클릭합니다 .
  3. “현재 프롬프트에서 웹 앱 만들기” 대화 상자가 나타나면 다음과 같습니다.
    • 앱을 공개적으로 배포하려면 승인 사항을 확인하세요 .
    • ‘앱 만들기’를 클릭하세요 .
  4. 배포 프로세스가 시작되며 몇 분 정도 소요될 수 있습니다. 사용자 인터페이스에 다음과 같은 상태 업데이트가 표시될 수 있습니다.
웹 앱 관리 팝업 대화 상자

참고: 배포 프로세스가 처음 시도에서 실패하는 경우가 있습니다. 이는 일반적으로 배포 시작 시 빌드 서비스에 대한 기본 권한이 완전히 전파되지 않은 경우에 발생합니다. 웹 앱 관리 대화 상자에 “실패” 상태가 표시되면 다음 단계를 따라 다시 시도하십시오.

  1. 모든 서비스와 권한이 초기화될 때까지 약 1분 정도 기다려 주세요.
  2. “웹 앱 관리” 대화 상자에서 ” 앱 업데이트” 버튼을 클릭합니다.
  3. 확인 상자가 나타납니다. 업데이트를 시작하려면 [확인]을 클릭하세요.
  1. 완료되면 웹 앱 관리 상자 에서 닫기 버튼을 클릭합니다 .
  2. 새로 배포한 애플리케이션을 열려면 배포 > 클라우드 실행 > 앱 열기를 선택하세요 .
  3. 이제 “Vertex AI Gen AI 앱에 오신 것을 환영합니다!” 라는 제목의 페이지 와 함께 “보험 위험 요약 – 프로토타입”이라는 프롬프트 제목이 표시될 것입니다.
에이전트 플랫폼 Gen AI 애플리케이션 홈페이지
  1. 챗봇 섹션 하단 의 “메시지를 입력하세요…” 입력란에 새 테스트 메시지를 입력하세요. 예를 들면 다음과 같습니다.신규 고객 문의: “신청인 ‘Coastal Goods Delivery’는 GPS와 텔레매틱스가 장착된 배송 차량 10대를 보유하고 있습니다. 이들은 차고지에서 반경 100마일 이내에서 운행합니다. 운전자들은 매년 안전 교육을 받습니다. 작년에 경미한 접촉 사고가 한 건 발생했으나 인명 피해는 없었고, 손해액은 1,500달러였습니다. 주요 위험 요소는 무엇입니까?” 핵심 사항을 요약하고 잠재적 위험 요소를 파악해 주십시오.복사했어요!
  2. 제출 화살표 버튼을 클릭하여 메시지를 애플리케이션에 보내세요.
  3. 배포된 앱의 응답 결과 살펴보기

참고: 앱 페이지의 경고에서 알 수 있듯이, 이 애플리케이션은 기본적으로 인증되지 않은 접근을 허용합니다. 실제 운영 환경에서는 적절한 보안 설정을 구성해야 합니다. 이 실습에서는 기본 설정으로 탐색해 볼 수 있습니다.

  1. 이제 전체 과정을 완료하셨습니다.
    • Agent Studio에서 프롬프트를 디자인했습니다.
    • 몇 번의 클릭만으로 Cloud Run을 사용하여 서버리스 애플리케이션으로 배포했습니다.
    • 웹 인터페이스를 통해 생성형 AI 모델을 직접 열고 상호 작용할 수 있습니다. 이는 Agent Studio가 생성형 AI 기능의 신속한 프로토타이핑 및 배포에 얼마나 강력한지 보여줍니다.

미션 2. 효과적인 안내 문구 설계

과제 1에서는 초기 프롬프트 프로토타입을 제작했습니다. 이제 생성 모델에서 더욱 정확하고, 제어 가능하며, 유용한 출력을 얻기 위해 프롬프트를 더욱 정교하게 다듬는 작업을 진행할 것입니다. 이는 프롬프트 엔지니어링의 핵심 역량입니다. 보험 관련 주제를 이어가면서 청구 문서에서 특정 정보를 추출하거나 요약 품질을 개선하는 작업을 수행하게 됩니다.

프롬프트 유형에 대한 자세한 내용은 이 가이드를 참조하세요 .

제로샷 프롬프팅

자세한 프롬프트 디자인 방법을 알아보려면 먼저 새 프롬프트를 만들어 보세요.

  1. 에이전트 스튜디오 메인 영역에 있는지 확인하세요 . 1단계에서 배포된 앱을 보고 있었다면 해당 브라우저 탭을 닫고 Google Cloud 콘솔로 돌아가세요.

참고: 메시지가 표시되면 저장하지 않고 종료한 다음 계속을 클릭하십시오 .

  1. 왼쪽 상단에서 ‘새 채팅’을 선택하세요 . 그러면 새 프롬프트 편집기 페이지로 이동합니다.
  2. 오른쪽 상단에서 ‘제목 없는 프롬프트’를 클릭하고 이름을 ‘보험 청구 데이터 추출’ 로 변경합니다 .
  3. 이 섹션의 시나리오를 숙지하세요. 보험 조사관은 새로운 청구에 대한 정형화되지 않은 메모나 이메일을 자주 받으며, 청구 관리 시스템에 입력할 핵심 정보를 신속하게 추출해야 합니다.
  4. 시스템 지침 상자 에 다음을 입력하십시오.당신은 비정형 보험 청구 알림에서 특정 데이터 포인트를 분석하고 추출하는 데 특화된 AI 비서입니다. 여러분의 목표는 핵심 정보를 정확하게 파악하고 목록화하는 것입니다. 정보를 찾을 수 없는 경우 “찾을 수 없음”이라고 명확하게 표시하십시오. 추출된 정보를 키:값 형식으로 출력하되, 각 키는 새 줄에 표시되도록 합니다.
  5. 주요 입력란에 다음의 비정형 청구서 예시를 붙여넣으세요.청구 통지 접수됨: “안녕하세요, 팀 여러분. 방금 엘리너 밴스 씨(보험 번호: POL458892)로부터 전화를 받았습니다. 2025년 5월 12일 오후 3시경에 발생한 주방 화재를 신고하셨습니다. 주요 피해는 오븐과 주변 수납장인 것 같습니다. 주방과 식사 공간에도 연기 피해가 있었다고 말씀하셨습니다. 총 피해액은 약 7,500달러 정도일 것으로 예상됩니다. 연락처는 555-0123입니다. 다행히 인명 피해는 없었습니다.” 다음 내용을 추출하세요: – 보험증권 번호 – 청구인 이름 – 손실 발생일 – 상실의 시간 – 손실 유형 – 피해 상황에 대한 간략한 설명 – 예상 손실액 – 부상자 발생 보고
  6. 모델 설정을 클릭하세요 .
    • 다음 사항을 확인하십시오모델 이름모델이 선택되었습니다.
    • (보다 사실적이고 창의적인 추출을 위해) 온도를 설정 하세요 .0.1
    • 출력 토큰 제한을 적절한 숫자로 설정하세요 . 예를 들어 1024.
    • 해당 지역 이 글로벌한지 확인하십시오 .
  7. 제출(Enter) 화살표 버튼을 클릭하세요 . 출력을 검토하세요. 명시적인 예시 없이 처음 시도하는 방식을 제로샷 프롬프트 라고 합니다 .

Few-Shot 프롬프트

종종 몇 가지 예시를 제공하는 것(소규모 예시 제공)만으로도 모델의 성능을 크게 향상시킬 수 있으며, 특히 특정 형식이나 미묘한 차이 추출에 효과적입니다.

  1. 왼쪽 상단에서 ‘새 채팅’을 선택하세요 .
  2. 프롬프트 섹션 하단에서 + 버튼을 클릭합니다.
  3. 팝업 메뉴에서 ‘ 예제’를 선택하세요 .

이렇게 하면 프롬프트에 대한 예시를 추가할 수 있는 새 창이 열립니다.

예시를 추가하세요
  1. 나타나는 “예제” 인터페이스에서:
    • 첫 번째 예시의 입력란 에는 다음의 비정형 메모를 붙여넣으세요.
    청구 통지 접수됨: “존 스털링(보험사 POL77521)으로부터 그의 가게에 발생한 누수 피해에 대한 이메일입니다. 어젯밤(2025년 5월 10일)에 발생한 것으로 추정됩니다. 천장의 파이프가 터져 창고가 침수되었고, 재고품에도 일부 피해가 발생했습니다. 피해액은 아직 정확히 알 수 없지만, 5천 달러에서 1만 달러 정도일 것으로 예상됩니다. 다행히 당시 현장에는 아무도 없었으므로 인명 피해는 없었습니다.” 다음 내용을 추출하세요: – 보험증권 번호 – 청구인 이름 – 손실 발생일 – 상실의 시간 – 손실 유형 – 피해 상황에 대한 간략한 설명 – 예상 손실액 – 부상자 발생 보고복사했어요!
    • 첫 번째 예제의 출력 결과 로 , 다음과 같이 완벽하게 형식화된 발췌 내용을 붙여넣으세요.
    정책 번호: POL77521 청구인 이름: 존 스털링 손실 발생일: 2025년 5월 10일 상실의 시간: 밤 손실 유형: 수해 피해 상황 요약: 천장의 파이프가 터져 창고가 침수되었고, 재고품 일부가 손상되었습니다. 예상 손실액: 5,000달러 ~ 10,000달러 부상자 발생 건수: 없음복사했어요!
    • 이 예제를 저장하고 메인 프롬프트로 돌아가려면 ‘ 예제 추가’ 버튼을 클릭하십시오 .
  2. 시스템 지침 다시 추가 : 프롬프트를 지우면 시스템 지침도 함께 지워지므로, 시스템 지침 상자를 다시 입력하여 붙여넣으세요.당신은 비정형 보험 청구 알림에서 특정 데이터 포인트를 분석하고 추출하는 데 특화된 AI 비서입니다. 여러분의 목표는 핵심 정보를 정확하게 파악하고 목록화하는 것입니다. 정보를 찾을 수 없는 경우 “찾을 수 없음”이라고 명확하게 표시하십시오. 추출된 정보를 키:값 형식으로 출력하되, 각 키는 새 줄에 표시되도록 합니다.복사했어요!
  3. 새로운 입력값과 프롬프트를 제공하세요:
    • {Input}“여기에 값을 입력하세요” 라고 표시된 영역에 모델이 지금 처리하도록 하려는 Eleanor Vance의 원래 보험 청구 통지서를 붙여넣으세요.
    청구 통지 접수됨: “안녕하세요, 팀 여러분. 방금 엘리너 밴스 씨(보험 번호: POL458892)로부터 전화를 받았습니다. 2025년 5월 12일 오후 3시경에 발생한 주방 화재를 신고하셨습니다. 주요 피해는 오븐과 주변 수납장인 것 같습니다. 주방과 식사 공간에도 연기 피해가 있었다고 말씀하셨습니다. 총 피해액은 약 7,500달러 정도일 것으로 예상됩니다. 연락처는 555-0123입니다. 다행히 인명 피해는 없었습니다.”복사했어요!
  4. 프롬프트 입력란 에 다음 지침을 입력하십시오 .제공된 청구 통지서에서 다음 데이터 포인트를 추출하십시오. – 보험증권 번호 – 청구인 이름 – 손실 발생일 – 상실의 시간 – 손실 유형 – 피해 상황에 대한 간략한 설명 – 예상 손실액 – 부상자 발생 보고복사했어요!
  5. 모델 설정을 클릭하세요 .
    • 다음 사항을 확인하십시오모델 이름모델이 선택되었습니다.
    • (보다 사실적이고 창의적인 추출을 위해) 온도를 설정 하세요 .0.1
    • 출력 토큰 제한을 적절한 숫자로 설정하세요 . 예를 들어 1024.
    • 해당 지역 이 글로벌한지 확인하십시오 .
  6. 제출(Enter) 화살표 버튼을 다시 클릭합니다 . 이 새로운 출력을 이전의 제로샷 시도 결과와 비교합니다. 몇 번의 시도만으로 얻은 결과와 구조화된 입력 방식을 통해 정확도나 형식이 크게 개선되었는지 확인합니다.

프롬프트 구성 실험 중

이제 모델 설정 의 다양한 매개변수가 모델 응답에 어떤 영향을 미치는지 살펴보겠습니다 . 몇 번의 시도만으로 결과를 보여주는 예제가 포함된 “보험 청구 데이터 추출” 프롬프트가 활성화되어 있는지 확인하십시오.참고: “보험 청구 데이터 추출” 프롬프트는 정확성과 구조를 고려하여 설계되었습니다. 온도 및 Top-P 와 같은 매개변수가 제대로 작동하는지 확인하려면 창의적인 프롬프트를 사용하는 것이 좋습니다.

먼저, 이러한 실험에 사용할 새 프롬프트를 만드세요.

  1. 왼쪽 상단에서 ‘새 채팅’을 선택하세요 .
  2. 프롬프트 제목을 ‘보험 이야기’ 로 지정하세요 .
  3. 프롬프트 텍스트 상자에 다음 내용을 붙여넣으세요.
미래형 AI 보험 앱을 이용해 보험금을 청구한 집주인에 대한 단편 소설의 *첫 번째 단락*을 작성하세요. 청구 사유는 기이하고 예상치 못한 사고였습니다.

이제 모델 설정을 바꿔가며 실험해 보겠습니다.

모델 설정을 바꿔가며 실험해 보세요.

  1. 온도 변화를 실험해 보세요 :
    • 설명: 온도는 무작위성을 조절합니다. 낮은 값(예: 0.0~0.2)은 출력을 더욱 집중적이고 결정론적으로 만듭니다. 높은 값(예: 1.5~2)은 더욱 다양하고 창의적인 반응을 유도합니다.
    • 다음과 같이 해보세요. 온도를 로 변경하세요 1.5제출(Enter) 버튼을 클릭하고 변경 사항을 확인하세요. 그런 다음 온도를 다시 로 변경하고 0.1, 동일한 안내 메시지를 사용하여 제출(Enter) 버튼을 다시 클릭하세요.
  2. 출력 토큰 제한을 시험해 보세요 :
    • 설명: 이 설정은 모델이 응답을 위해 생성할 수 있는 토큰(단어의 일부)의 최대 개수를 지정합니다.
    • 직접 시도해 보세요. 출력 토큰 제한을 아주 작은 숫자(예: )로 설정해 보세요 500. 동일한 프롬프트를 사용하고 제출(Enter) 버튼을 클릭하여 출력 내용이 잘린 것을 확인해 보세요. 그런 다음 출력 토큰 제한을 최대(기본값) 길이로 다시 설정해 보세요 65535.
  3. Top-P를 사용해 보세요 :
    • 설명: Top-P(핵 샘플링)는 무작위성을 제어하는 ​​요소입니다. Top-P 값은 확률 질량의 합이 Top-P 값을 초과하는 가장 확률이 높은 토큰만 고려합니다. Top-P 값이 0이면 1.0모든 토큰을 고려합니다. Top-P 값을 낮추면(예: 0으로 0.8) 온도가 낮아지는 것처럼 출력 결과가 더 집중됩니다.
    • 다음과 같이 해보세요. 온도를 (또는 Top-P 효과를 더 잘 관찰할 수 있도록 0.1약간 더 높게 ) 설정한 후 Top-P 를 로 설정하세요 . 동일한 프롬프트를 사용하여 제출(Enter) 버튼을 클릭하세요. 그런 다음 Top-P를 로 설정하고 동일한 프롬프트를 사용하여 제출(Enter) 버튼을 클릭한 후 미묘한 차이가 있는지 관찰해 보세요.0.50.81.0
  4. 고급 모델 설정 패널 의 다른 설정들을 간략하게 살펴보십시오 .
    • 안전 필터 설정: 유해 콘텐츠 차단을 위해 기본적으로 활성화되어 있습니다. 이번 실습에서는 기본 설정을 사용합니다.
    • 사고 예산 : 이 매개변수는 모델이 응답을 생성할 때 사용할 사고 토큰 수를 지정합니다. 토큰 수가 많을수록 일반적으로 더 자세한 추론이 가능해지므로 복잡한 작업을 처리하는 데 도움이 될 수 있습니다. 기본값은 자동(Auto) 이지만 끄기( Off) 또는 수동(Manual) 으로 설정할 수 있습니다 . 수동으로 설정하면 모델은 지정된 토큰 제한에 도달하면 분석을 중지합니다. 간단한 작업에는 낮은 제한을, 복잡한 작업에는 높은 제한을 설정할 수 있습니다.
    • 구조화된 출력 : 모델이 미리 정의된 스키마(예: JSON)를 엄격하게 준수하는 응답을 생성하도록 강제합니다.
    • 기반 구축: Google 검색 : 모델을 Google 검색 또는 지도에 연결하여 실시간으로 공개된 정보를 바탕으로 답변할 수 있도록 합니다.
    • 기반 구축: 사용자 데이터 : 모델이 특정 상황에 맞는 질문에 답하기 위해 사용자 데이터 소스(예: Agent Platform Search 또는 RAG Engine)에서 정보를 검색할 수 있도록 합니다.

목표 달성 여부를 확인하려면 ‘ 진행 상황 확인’을 클릭하세요 .

Agent Studio에서 신속한 엔지니어링 작업을 수행합니다.

미션 3. 프롬프트 설계 및 관리

작동하는 프롬프트를 만들었다면, 응답을 개선할 수 있는지 확인하기 위해 지침이나 모델 구성을 변경해 보는 것이 좋습니다. 에이전트 스튜디오의 “비교” 기능은 바로 이러한 목적으로 설계되었습니다. 이 섹션에서는 방금 생성한 프롬프트를 사용합니다.

  1. 왼쪽 상단에서 ‘새 채팅’을 선택하세요 . 그러면 새 프롬프트 편집기 페이지로 이동합니다.
  2. 이 새로운 프롬프트의 이름을 “보험 위험 요소 식별” 로 지정하십시오 .
  3. 다음과 같은 간단한 기본 프롬프트를 설정하세요:
    • 시스템 지침 상자 에 다음을 입력하십시오.
    당신은 보험 위험 분석 보조원입니다. 주어진 시나리오에서 잠재적 위험 요소를 파악하는 것이 당신의 임무입니다. 간결하게 작성하십시오.복사했어요!
    • 메인 프롬프트 영역에 다음 내용을 붙여넣으세요.
    대본: “신청 업체인 ‘더 파이어리 그릴’은 화덕 피자와 직화구이를 전문으로 하는 고급 신규 레스토랑입니다. 조리 공간에는 새롭게 맞춤 제작된 화재 진압 시스템을 설치했지만, 아직 제3자 기관의 인증을 받지 못했습니다. 이 레스토랑은 주말 저녁에 라이브 어쿠스틱 음악 공연을 선보일 예정이며, 작은 무대 공간도 마련되어 있습니다. 또한 발렛 파킹 서비스도 제공하고자 합니다.” 이 시나리오를 바탕으로 보험 인수 담당자가 고려해야 할 주요 위험 요소 세 가지를 나열하십시오.복사했어요!
    • 모델 설정을 클릭하세요 .
    • 다음 사항을 확인하십시오모델 이름모델이 선택되었습니다.
      • 온도를 다음과 같이 설정하세요 0.2.
      • 해당 지역 이 글로벌한지 확인하십시오 .
  4. 제출(Enter) 화살표 버튼을 클릭하세요 . 모델의 초기 응답을 검토하세요.
  5. 프롬프트가 자동 저장되지 않은 경우 저장 버튼을 클릭하십시오.
  6. 이제 보험 위험 요소 식별 메시지와 그에 대한 응답이 표시된 상태에서 메시지 이름 옆 오른쪽 상단에 있는 점 세 개를 클릭하고 [비교]를 선택하세요 .
프롬프트 페이지 개요 비교
  1. 비교 인터페이스  열립니다. 보험 위험 요소 식별 메시지, 구성 정보 및 최신 응답이 페이지 양쪽에 표시되므로 모델 설정 및 시스템 지침이 다른 여러 버전을 쉽게 비교할 수 있습니다.
프롬프트 페이지 개요 비교

Comparing by modifying system instructions

이제 명령어를 변경하면 프롬프트 출력에 어떤 영향을 미치는지 확인할 수 있습니다.

  1. 시스템 지침 상자(오른쪽 프롬프트용) 안에서 오른쪽 프롬프트에 대한 기존 시스템 지침을 편집합니다. 다음 내용으로 업데이트하십시오.
당신은 보험 위험 분석 전문가 보조입니다. 주어진 시나리오에서 잠재적 위험 요소를 파악하는 것이 당신의 임무입니다. 각 위험 요소에 대해 잠재적 위험 완화 전략을 간략하게 제시하거나 보험 인수 담당자에게 질문할 내용을 작성하십시오. 명확하고 체계적인 방식으로 작성해야 합니다.
  1. 나머지 모델 설정은 그대로 두고, 페이지 하단의 상자에 다음 프롬프트를 입력하세요.
대본:
"신청 업체인 '더 파이어리 그릴'은 화덕 피자와 직화구이를 전문으로 하는 고급 신규 레스토랑입니다. 조리 공간에는 새롭게 맞춤 제작된 화재 진압 시스템을 설치했지만, 아직 제3자 기관의 인증을 받지 못했습니다. 이 레스토랑은 주말 저녁에 라이브 어쿠스틱 음악 공연을 선보일 예정이며, 작은 무대 공간도 마련되어 있습니다. 또한 발렛 파킹 서비스도 제공하고자 합니다."

이 시나리오를 바탕으로 보험 인수 담당자가 고려해야 할 주요 위험 요소 세 가지를 나열하십시오.
  1. 두 프롬프트가 응답을 생성하는 동안 잠시 기다렸다가 두 개의 응답을 비교합니다.

다른 온도 설정과 비교

이제 비교 창을 사용하여 다른 온도를 테스트해 보겠습니다.

  1. 오른쪽 프롬프트에 대한 시스템 지침 상자 안의 내용을 왼쪽과 동일하게 되돌리십시오.
당신은 보험 위험 분석 보조원입니다. 주어진 시나리오에서 잠재적 위험 요소를 파악하는 것이 당신의 임무입니다. 간결하게 작성하십시오.
  1. 오른쪽 프롬프트에 대해 모델 설정 창을 열고 온도 를 로 변경하십시오 2.0. 모델이 여전히 활성화되어 있는지 확인하십시오.모델 이름.
  2. 다음 안내문을 페이지 하단의 입력란에 입력하세요:
대본:
"신청 업체인 '더 파이어리 그릴'은 화덕 피자와 직화구이를 전문으로 하는 고급 신규 레스토랑입니다. 조리 공간에는 새롭게 맞춤 제작된 화재 진압 시스템을 설치했지만, 아직 제3자 기관의 인증을 받지 못했습니다. 이 레스토랑은 주말 저녁에 라이브 어쿠스틱 음악 공연을 선보일 예정이며, 작은 무대 공간도 마련되어 있습니다. 또한 발렛 파킹 서비스도 제공하고자 합니다."

이 시나리오를 바탕으로 보험 인수 담당자가 고려해야 할 주요 위험 요소 세 가지를 나열하십시오.
  1. 응답의 차이점을 관찰하십시오. 2.0두 번째 질문에서 더 높은 온도( )가 위험 요인 목록을 0.2온도 출력과 비교했을 때 덜 구체적이거나, 더 추측적이거나, 상당히 다르게 만드는지 살펴보십시오.

참고: 온도를 이렇게 높게 설정하면 결과의 일관성이나 관련성이 떨어질 수 있지만, 이는 해당 매개변수의 극단적인 영향을 보여줍니다.

다양한 모델과 구성 비교

이제 여러분은 기본 모델을 다른 모델 및 설정과 비교하여 추론 방식이나 출력 스타일의 차이를 관찰해 볼 것입니다.

  1. 오른쪽 에 나타나는 메시지에 대해 모델 설정 창을 열고 다음과 같이 변경하십시오.
    • 모델 이 설정되어 있는지 확인하십시오.모델 이름
    • 온도 를 설정 하세요0.2
  2. 왼쪽 의 안내 메시지가 나타나면 모델 설정 창을 열고 다음과 같이 변경하십시오.
    • 모델 이 설정되어 있는지 확인하십시오.모델 이름
    • 온도 를 설정 하세요0.2
    • 사고 수준을 최소 로 설정하세요 .
  3. 페이지 하단의 상자에 다음 프롬프트를 입력하세요. 이 프롬프트는 모델 간 기능 차이를 보여주기 위해 의도적으로 더 복잡하게 구성되었습니다.
대본:
"신청 업체인 '더 파이어리 그릴'은 장작 화덕과 직화구이를 전문으로 하는 고급 레스토랑입니다. 새롭게 맞춤 제작된 화재 진압 시스템을 갖추고 있지만, 제3자 기관의 인증을 받지는 않았습니다. 레스토랑에서는 작은 무대에서 라이브 어쿠스틱 음악 공연을 선보일 예정입니다. 또한, 자체 직원이 관리하는 발렛 파킹 서비스도 제공하고자 합니다. 신청 업체는 이전 사업 경력이 없습니다."

보험 인수 지침:
우선순위 계층: 책임 위험은 다음과 같이 분류됩니다.
- A급(심각): 화재, 구조적 결함, 안전 시스템 고장.
- B등급(표준): 일반적인 건물 책임 보험(예: 미끄러짐 및 낙상 사고).
- C급(특수 분야): 자동차/차량 책임 보험.

복합적 요인: "복합적 위험"(다른 위험을 악화시키는 상황)은 최우선 순위로 고려되어야 합니다.
경험 부족: 이전 사업 경험 부족은 일반적으로 부정적인 요인이지만, 그 자체로 주요 위험 요소가 되는 것은 아닙니다.
자동차 책임 보험: C등급 위험(발렛 파킹)은 신청자가 검증되지 않은 제3자 계약업체를 이용하는 경우에만 주요 위험으로 간주됩니다.

일:
제시된 시나리오와 보험 인수 지침을 바탕으로 가장 우선순위가 높은 위험 요소를 하나 선정하십시오. 그런 다음, 해당 위험 요소가 최우선 순위인 이유를 두 문장으로 설명하고, 적용되는 구체적인 지침을 인용하십시오.
  1. 답변들을 검토하고, 다음 결과들을 비교해 보세요.모델 이름(왼쪽 창) 모델 이름(오른쪽 창).

정확도에서 확연한 차이를 보실 수 있을 겁니다.모델 이름(왼쪽) 모델은 전반적인 위험(“화재”)을 식별하는 것과 같이 빠르지만 일반적인 답변을 제공할 가능성이 높습니다.모델 이름오른쪽 모델은 특정 위험 요소(“인증받지 않은 소방 시스템”)를 분리하여 보다 정확하고 실행 가능한 답변을 제공해야 합니다. 찬성 모델의 근거가 더 상세하고, 여러 지침을 인용하여 더 심층적인 논리를 제시하는 것을 확인할 수 있습니다.

프롬프트를 비교, 평가 및 관리합니다.


Lab03. Gen AI SDK를 사용하여 Google 생성형 AI 시작하기

Getting Started with Google Generative AI Using the Gen AI SDK

https://www.skills.google/focuses/83264?catalog_rank=%7B%22rank%22%3A2%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=92031412

목표

이 실습에서는 Google Gen AI SDK for Python을 사용하여 Gemini를 포함한 Google의 생성형 AI 서비스 및 모델과 상호 작용하는 방법을 배웁니다.

  • Gen AI SDK를 설치
  • API 서비스에 연결
  • 텍스트 및 멀티모달 프롬프트를 전송
  • Set system instructions.
  • 모델 매개변수와 안전 필터를 구성
  • 모델 간 상호작용(다중 턴 채팅, 콘텐츠 스트리밍, 비동기 요청)을 관리
  • 토큰 카운팅, 컨텍스트 캐싱, 함수 호출, 텍스트 삽입과 같은 고급 기능을 활용

미션 1. Agent Platform Workbench 노트북 열기

  • 에이전트 플랫폼 > 노트북 > 워크벤치
  • JupyterLab 열기

미션 2. 노트북 준비

  • 커널 선택 대화 상자 에서 사용 가능한 커널 목록에서 Python 3(로컬)을 선택
  • 노트북 내에서 Google Gen AI SDK 설치 셀을 실행한 후에 는 나머지 셀을 실행하기 전에 노트북 커널을 다시 시작

미션 3. 모델과 상호작용

  • 모델을 선택
  • 텍스트 프롬프트 보내기 섹션 실행
  • 멀티모달 프롬프트 전송
  • 시스템 명령어를 설정

미션 4. 모델 구성 및 제어

  • 모델 매개변수를 구성
  • 안전 필터 구성
  • 다중 턴 채팅 시작
  • Gemini API의 제어 된 생성 기능 사용

미션 5. 모델 상호작용 관리

  • 콘텐츠 스트림 생성
  • 비동기 요청 전송
  • Gemini API 요청 전, 입력 토큰 수 계산

미션 6. 고급 기능

  • 펑션 콜링
  • 컨텍스트 캐싱
  • 텍스트 임베딩


Lab04. 구글 에이전트 플랫폼 Gemini API로 생성형 AI 기능 및 특성 탐색

Explore Generative AI with the Gemini API in Agent Platform

https://www.skills.google/focuses/85653?catalog_rank=%7B%22rank%22%3A4%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=92031412

  • Generate text using Gemini
  • Create a function call using Gemini
  • Describe video contents using Gemini

Lab05. 구글 에이전트 플랫폼 Gemini API로 멀티모달 RAG 구현

Multimodal Retrieval Augmented Generation (RAG) using the Gemini API in Agent Platform

https://www.skills.google/focuses/85643?catalog_rank=%7B%22rank%22%3A3%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=92031412

  • 텍스트와 이미지가 모두 포함된 문서의 메타데이터를 추출 및 저장하고, 해당 문서에 이미지를 삽입하는 임베딩 생성
  • 텍스트 쿼리를 사용하여 메타데이터를 검색하여 유사한 텍스트 또는 이미지 찾기
  • 이미지 쿼리를 사용하여 메타데이터를 검색하여 유사한 이미지 찾기
  • 텍스트 쿼리를 입력으로 사용하여 텍스트와 이미지를 모두 활용한 문맥에 맞는 답변 검색

Lab06. 생성형 AI 모델 응답 시 민감한 데이터 보호하기

Protecting Sensitive Data in Gen AI Model Responses

https://www.skills.google/focuses/109505?catalog_rank=%7B%22rank%22%3A8%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=92031412

  • Agent Platform Workbench 인스턴스에서 미리 생성된 Jupyter 노트북 접속
  • 에이전트 플랫폼 및 클라우드 데이터 손실 방지(DLP) API용 Python 패키지 설치
  • model_name 모델을 이용하여 민감한 데이터가 포함된 예시 텍스트 생성
  • DLP API를 이용하여 다양한 유형의 민감한 데이터를 수정하기 위해 model_name 모델에서 Python 함수를 정의 및 실행

Lab07. Image Scoring Agent에서 컴플라이언스 정책 기본 적용

Enforce Compliance Policies with an Image Scoring Agent

https://www.skills.google/focuses/151707?catalog_rank=%7B%22rank%22%3A11%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=92037995

  • 프로젝트를 위한 실험실 환경을 구축
  • 이미지 점수 매기기 에이전트의 기본 기능(이전 버전)을 테스트
  • 에이전트의 정책을 수정하여 규정 준수 여부를 확인하는 규칙을 업데이트
  • 업데이트된 에이전트를 테스트하여 변경된 동작(업데이트 후)을 확인

참고: 클라우드 네이티브 아키텍처 실습 주제안

NXP AI Native Cloud Workshop using Google Cloud by NextPlatform

1. Cloud Run 기반의 Stateless AI 추론 아키텍처 및 무중단 확장(Autoscaling) 실습

  • 핵심 개념: Stateless 구조, 추론(Inference) 워크로드의 지연 시간 최소화 및 수평적 확장.
  • GCP 서비스: Cloud Run, Vertex AI API (Gemini), Cloud Load Balancing.
  • 실습 내용: * Gemini API를 호출하는 가벼운 FastAPI 기반 추론 웹 서비스를 컨테이너화하여 Cloud Run에 배포합니다.
    • 각 요청이 독립적으로 처리되는 Stateless 구조를 설계하고, 요청이 급증할 때 동시성(Concurrency) 설정과 인스턴스 자동 확장(Autoscaling)이 어떻게 작동하는지 부하 테스트 도구(Locust 등)로 검증합니다.

2. Vertex AI API 비용 절감을 위한 Cloud Memorystore(Redis) 캐싱 레이어 구축

  • 핵심 개념: 비용 최적화(토큰 관리), 호출 빈도 제어 및 불필요한 중복 호출 제거.
  • GCP 서비스: Cloud Memorystore for Redis, Cloud Run, Vertex AI SDK.
  • 실습 내용:
    • 동일하거나 유사한 프롬프트 요청이 반복될 때, Vertex AI로 매번 요청을 보내는 대신 Redis 캐시에서 답변을 즉시 반환하는 아키텍처를 구현합니다.
    • Semantic Cache(임베딩 유사도 기반 캐싱)를 적용하여 완전히 일치하지 않더라도 맥락이 유사한 질문에 대해 캐시를 활용함으로써 토큰 비용 절감 효과를 대시보드로 측정합니다.

3. sensitive 데이터 차단을 위한 Vertex AI 가드레일 및 Sensitive Data Protection(구 DLP) 연동

  • 핵심 개념: 입력/출력 가드레일, 민감 정보(PII) 필터링, 보안 및 거버넌스 초기 통합.
  • GCP 서비스: Cloud Sensitive Data Protection (DLP API), Cloud Security Command Center, Vertex AI.
  • 실습 내용:
    • 사용자가 프롬프트를 입력했을 때, 모델로 전송되기 전 GCP DLP API를 거쳐 주민등록번호, 이메일, 전화번호 등의 개인정보(PII)를 자동으로 마스킹(Masking)하거나 토큰화하는 프록시 파이프라인을 구축합니다.
    • 모델의 출력 결과물에 대해서도 부적절한 언어나 권한 밖의 데이터가 포함되었는지 검증하는 양방향 가드레일을 구현합니다.

4. 비용-성능 트레이드오프를 고려한 Multi-LLM 라우팅 에이전트 파이프라인 (Gemini Flash vs Pro)

  • 핵심 개념: 모델 선택 기준 최적화, 경량 모델과 고성능 모델 간의 비용 효율적 라우팅.
  • GCP 서비스: Cloud Functions (또는 Cloud Run), Vertex AI Model Garden, Cloud Logging.
  • 실습 내용:
    • 들어오는 요청의 복잡도를 1차적으로 분류(Classification)하거나 프롬프트 길이를 체크하여, 단순 질의는 비용이 저렴하고 빠른 Gemini Flash로 보내고, 고도의 추론이 필요한 질의는 Gemini Pro로 동적 라우팅하는 구조를 만듭니다.
    • 이를 통해 단일 고성능 모델만 사용할 때 대비 처리 속도(Latency)와 비용(Token Cost)이 얼마나 최적화되는지 비교 분석합니다.

5. BigQuery Vector Search 및 Vertex AI를 활용한 엔터프라이즈 RAG(검색 증강 생성) 아키텍처

  • 핵심 개념: 데이터 입력 범위 통제, 맥락(Context) 유지를 위한 데이터 공급 최적화, 접근 제어(ACL).
  • GCP 서비스: BigQuery (Vector Search), Vertex AI Embeddings, Cloud Storage.
  • 실습 내용:
    • 기업의 비정형 문서 데이터를 Chunking하여 Vertex AI Text Embeddings를 통해 벡터로 변환한 후, BigQuery에 저장합니다.
    • BigQuery의 내장 VECTOR_SEARCH 기능을 활용하여 프롬프트와 가장 유사한 컨텍스트를 실시간으로 검색해 Gemini에 전달하는 RAG 파이프라인을 구축합니다. IAM 권한에 따라 검색 가능한 데이터 범위를 제한하는 거버넌스도 함께 적용합니다.

6. GKE(Google Kubernetes Engine) 기반 Batch AI 학습 워크로드 격리 및 체크포인트(Checkpoint) 저장 전략

  • 핵심 개념: 학습(Training) 워크로드 분리 설계, 배치 작업 구조, 회복 탄력성(Resilience).
  • GKE 서비스: GKE Standard/Autopilot (Kueue 기반 배치 스케줄링), Cloud Storage (FUSE), Compute Engine GPU 노드 풀.
  • 실습 내용:
    • 실시간 추론 서비스에 영향을 주지 않도록 대규모 데이터 학습(또는 Fine-tuning) 워크로드를 GKE 배치 노드 풀로 완전히 격리합니다.
    • 장시간 학습 중 Spot VM 해제나 노드 장애가 발생하더라도 작업이 처음부터 다시 시작되지 않도록, Cloud Storage에 주기적으로 체크포인트(Weights & Meta)를 저장하고 자동으로 복구(Resume)하는 회복 탄력성 메커니즘을 테스트합니다.

7. Cloud Logging 및 Looker Studio를 활용한 AI 서비스 FinOps(토큰 비용 및 성능 추적) 대시보드 구축

  • 핵심 개념: 비용 가시성 확보, 지속 가능한 AI 운영(Ops), 감사(Audit) 로그 구조 마련.
  • GCP 서비스: Cloud Logging, Log Analytics, BigQuery, Looker Studio.
  • 실습 내용:
    • AI 애플리케이션에서 발생하는 모든 API 호출 로그(요청 시간, 입력 토큰 수, 출력 토큰 수, 모델명, 사용자 ID)를 Cloud Logging으로 수집합니다.
    • 이 로그를 BigQuery로 구조화하여 싱크(Sink)한 뒤, Looker Studio 대시보드를 통해 부서별/사용자별 AI 비용 소모 추이 및 모델별 지연 시간 지표를 시각화하여 AI 네이티브 클라우드의 지속 가능성을 평가합니다.
  • 실습 1, 2, 4: ‘비용 효율적이고 확장 가능한 추론 플랫폼 구조’
  • 실습 3, 5, 7: ‘기업향 거버넌스 및 데이터 파이프라인 체계’

[실습 워크북] Cursor로 Cloud Run 기반 Stateless AI 추론 서비스 빌드

1번 실습 아이디어를 Cursor AI를 활용하여 빠르게 빌드하고 구글 클라우드(GCP)에 배포하는 실습 워크북 가이드

AI에게 아키텍처 원칙(Stateless, Cloud Run 환경)을 지시하며 결과물을 만들어내는 흐름으로 구성

1. 실습 개요

  • 목표: AI 모델 호출 시 발생하는 지연 시간(Latency)을 최소화하고, 다중 요청에도 끄떡없는 Stateless 구조의 API를 설계하여 GCP Cloud Run에 무중단 확장(Autoscaling) 구조로 배포합니다.
  • 준비물: GCP 계정, Cursor 에디터, gcloud CLI, Docker(선택사항, Cloud Build 이용 시 미필요)

2. 단계별 실습 프로세스

Phase 1: Cursor AI를 활용한 프롬프트 기반 코드 생성 (Vibe Coding)

  1. 프로젝트 폴더 생성 및 Cursor 실행
    • 빈 폴더(cloudrun-stateless-ai)를 만들고 Cursor로 엽니다.
  2. AI에게 아키텍처 지시하기 (Cursor Composer 기능 활용: Ctrl + I 또는 Cmd + I)
    • Composer 창을 열고 아래 프롬프트를 입력하여 전체 구조를 한 번에 생성합니다.

[Cursor Composer 프롬프트]

“구글 클라우드 Run에 배포할 Stateless AI 추론 API 서버를 만들고 싶어. 아래 요구사항을 반영해서 Python FastAPI 기반 코드를 작성해 줘.

  1. 기능: /infer 엔드포인트로 {"prompt": "질문"}을 받으면 Google Vertex AI SDK를 사용해 gemini-2.5-flash 모델의 답변을 리턴해야 해.
  2. Stateless 원칙: 서버 내부에 세션이나 상태를 저장하지 않고 모든 요청은 독립적으로 처리되어야 해. 헬스체크용 /health 엔드포인트도 포함해 줘.
  3. 배포 준비: 이 애플리케이션을 구글 클라우드 런(Cloud Run)에 컨테이너로 배포할 수 있도록 Dockerfilerequirements.txt도 함께 생성해 줘.
  4. 프로덕션 고려: 대량의 동시 요청을 처리할 수 있도록 uvicorn 설정을 최적화해 줘.”
  1. 코드 검토 및 수락(Accept)
    • Cursor가 생성한 main.py, Dockerfile, requirements.txt 파일을 검토하고 Accept All을 누릅니다.
    • 주요 코드 포인트 확인: vertexai.init()이 글로벌 스코프나 요청 핸들러 내부에서 스레드 안전(Thread-safe)하게 호출되는지 확인합니다.

Phase 2: 로컬 검증 및 상태 관리(Stateless) 체크

  1. 환경 변수 및 인증 설정 (Cursor 터미널)
    • GCP 서비스 계정 키를 세팅하거나, 로컬 인증을 수행합니다.
    Bashgcloud auth application-default login
  2. Cursor Chat (Ctrl + L)을 활용한 가상 테스트 코드 작성
    • 대화창에 "이 FastAPI 서버가 Stateless하게 잘 동작하는지, Concurrency 테스트를 할 수 있는 짧은 Python client 코드를 짜줘"라고 요청합니다.
    • 생성된 테스트 코드로 동시 요청을 보내 정상적으로 응답이 오는지 로컬에서 확인합니다.

Phase 3: Google Cloud Build & Artifact Registry를 통한 빌드

코드를 도커 이미지로 빌드하여 GCP 컨테이너 저장소에 업로드합니다. (로컬에 도커가 없어도 GCP의 무상태 빌드 도구인 Cloud Build를 사용하면 편리합니다.)

  1. Artifact Registry 저장소 생성 (터미널)Bashgcloud artifacts repositories create ai-inference-repo \ --repository-format=docker \ --location=asia-northeast3 \ --description="Stateless AI Inference Images"
  2. Cloud Build로 이미지 빌드Bashgcloud builds submit --tag asia-northeast3-docker.pkg.dev/[PROJECT_ID]/ai-inference-repo/stateless-ai:v1 .

Phase 4: Cloud Run 무중단 확장(Autoscaling) 배포 및 구성

추론 워크로드의 핵심인 Stateless 확장 정책을 적용하여 배포합니다.

  1. 배포 명령어 실행 (터미널)Bashgcloud run deploy stateless-ai-service \ --image=asia-northeast3-docker.pkg.dev/[PROJECT_ID]/ai-inference-repo/stateless-ai:v1 \ --region=asia-northeast3 \ --platform=managed \ --allow-unauthenticated \ --concurrency=80 \ --min-instances=0 \ --max-instances=10 \ --cpu=1 \ --memory=2Gi
  2. 핵심 설정의 의미 학습 (워크북 포인트)
    • --concurrency=80: 컨테이너 인스턴스 1개가 동시에 처리할 수 있는 요청 수입니다. Stateless 구조이므로 메모리 누수 없이 많은 동시 처리가 가능합니다.
    • --min-instances=0: 요청이 없을 때는 인스턴스를 0개로 줄여 비용을 0원으로 만듭니다 (Cold Start 발생 가능). 만약 대기 시간을 극도로 줄여야 하는 프로덕션 환경이라면 1 이상으로 설정을 변경해 봅니다.
    • --max-instances=10: 비용 폭탄을 방지하기 위해 최대 확장 제한을 설정합니다.

Phase 5: 무중단 확장(Autoscaling) 및 부하 테스트 검증

  1. 부하 테스트 도구 셋업
    • Cursor 에디터에서 "Cloud Run 엔드포인트에 초당 100개의 동시 프롬프트 요청을 1분간 퍼붓는 Locust 부하 테스트 스크립트를 작성해 줘"라고 요청합니다.
  2. 테스트 수행 및 GCP 콘솔 관찰
    • 제공된 스크립트로 부하를 가하면서 GCP Cloud Run 콘솔 -> 모니터링 탭을 확인합니다.
    • 관찰 포인트:
      • 1개의 인스턴스로 시작했다가 요청(Container Concurrency)이 임계치를 넘는 순간 Active Instances 카운트가 실시간으로 늘어나는 구조를 확인합니다.
      • 부하 테스트가 끝나면 다시 인스턴스 수가 min-instances 설정값으로 자동 수렴하는지 확인합니다.

3. 실습 평가 및 대화형 디버깅 팁

  • Stateless 구조 검증: 인스턴스가 스케일 아웃(Scale-out)되어 0번 인스턴스에서 1번 인스턴스로 요청이 전달되더라도, 사용자 프롬프트 답변이 끊기지 않고 완전하게 수행되는지 검증

답글 남기기