Gemini Code Assist로 개발 가속화

1. 개요

이 실습에서는 Google Cloud의 AI 기반 에이전트인 Gemini Code Assist를 사용하는 데 중점을 둡니다. 기존 코드베이스 이해, 문서 및 단위 테스트 생성, Python 웹 애플리케이션의 UI 및 백엔드 구성요소 리팩터링 등 일반적인 개발자 작업을 위해 Gemini Code Assist를 사용하는 방법을 알아봅니다.

학습할 내용

이 실습에서는 다음 작업을 진행하는 방법을 학습합니다.

  • 일반적인 개발자 작업을 위해 Gemini Code Assist를 사용하는 방법

기본 요건

  • 이 실습에서는 Cloud 콘솔 및 Cloud Shell 환경에 익숙하다고 가정합니다.

2. 설정 및 요구사항

Cloud 프로젝트 설정

  1. Google Cloud Console에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
  • 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔은 고유한 문자열을 자동으로 생성합니다. 일반적으로는 신경 쓰지 않아도 됩니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로 PROJECT_ID로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 다른 임의 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다.
  • 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
  1. 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스 또는 프로젝트를 삭제하면 됩니다. Google Cloud 신규 사용자는 300달러(USD) 상당의 무료 체험판 프로그램에 참여할 수 있습니다.

환경 설정

Gemini 채팅을 엽니다.

bc3c899ac8bcf488.png

또는 검색창에 'Gemini에게 물어보기'를 입력합니다.

e1e9ad314691368a.png

Google Cloud를 위한 Gemini API를 사용 설정합니다.

636114fa6e5f0abf.png

다음 화면에서 GCA를 사용 설정합니다.

8e234b2e282c4413.png

'Start chatting'을 클릭하고 샘플 질문 중 하나를 따르거나 직접 프롬프트를 입력하여 사용해 보세요.

ed120d672468b412.png

프롬프트 예시:

  • Cloud Run을 5가지 핵심 사항으로 설명해 줘.
  • Google Cloud Run 제품 관리자입니다. 학생에게 5가지 핵심 사항으로 Cloud Run을 설명해 주세요.
  • Google Cloud Run 제품 관리자입니다. 인증된 Kubernetes 개발자에게 5가지 핵심 사항으로 Cloud Run을 설명해 주세요.
  • Google Cloud Run 제품 관리자입니다. 수석 개발자에게 Cloud Run과 GKE를 언제 사용하는지 5가지 핵심 사항으로 간략하게 설명해 주세요.

작업이 끝나면 Gemini Cloud Assist 채팅 창을 닫습니다.

프롬프트 가이드에서 더 나은 프롬프트를 작성하는 방법을 자세히 알아보세요.

Google Cloud를 위한 Gemini에서 사용자 데이터를 사용하는 방법

Google 개인 정보 보호 약정

Google은 업계 최초로 AI/ML 개인 정보 보호 약정을 발표했습니다. 여기에는 클라우드에 저장된 고객 데이터에 대해 고객이 최고 수준의 보안 및 제어 권한을 가져야 한다는 Google의 신념이 표명되어 있습니다.

제출 및 수신하는 데이터

분석하거나 완료하기 위해 Gemini에 제출하는 모든 입력 정보나 코드를 포함하여 Gemini에 묻는 질문을 프롬프트라고 합니다. Gemini로부터 받는 답변이나 코드 완성을 '대답'이라고 합니다. Gemini는 프롬프트나 프롬프트에 대한 대답을 모델 학습 데이터로 사용하지 않습니다.

프롬프트 암호화

Gemini에 프롬프트를 제출하면 Gemini의 기본 모델에 입력으로 전송 중인 데이터가 암호화됩니다.

Gemini에서 생성된 프로그램 데이터

Gemini는 퍼스트 파티 Google Cloud 코드와 선택된 서드 파티 코드로 학습됩니다. Gemini가 제공하는 코드 완성, 생성, 분석을 포함해 코드의 보안, 테스트, 효과에 대한 책임은 사용자에게 있습니다.

Google에서 프롬프트를 처리하는 방법을 자세히 알아보세요.

3. 프롬프트 테스트 옵션

기존 프롬프트를 변경하려면 여러 옵션을 사용할 수 있습니다.

Vertex AI Studio는 생성형 AI 모델의 개발 및 사용을 간소화하고 가속화하도록 특별히 설계된 Google Cloud의 Vertex AI 플랫폼의 일부입니다.

Google AI Studio는 프롬프트 엔지니어링 및 Gemini API를 사용하여 프로토타입을 만들고 실험할 수 있는 웹 기반 도구입니다.

Google Gemini 웹 앱 (gemini.google.com)은 Google의 Gemini AI 모델의 기능을 살펴보고 활용할 수 있도록 설계된 웹 기반 도구입니다.

4. 애플리케이션 다운로드 및 검사

검색창 오른쪽에 있는 아이콘을 클릭하여 Cloud Shell을 활성화합니다.

3e0c761ca41f315e.png

승인하라는 메시지가 표시되면 '승인'을 클릭하여 계속합니다.

6356559df3eccdda.png

터미널에서 아래 명령어를 실행하여 Git 저장소를 로컬로 클론합니다.

git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab

'Cloud Shell 편집기'를 시작합니다.

18ca8f879206a382.png

'calendar-app-lab' 폴더를 엽니다.

7cef847802b51038.png

Cloud Shell 편집기에서 새 터미널을 시작합니다.

3336bea9c0e999b9.png

환경은 아래 스크린샷과 비슷해야 합니다.

ae9475871b7d28a6.png

Gemini Code Assist 채팅 창에서 다음 프롬프트를 보냅니다.

Don't suggest any changes. Explain this codebase to me.

샘플 출력:

9839a7ff8c04f6a7.png

5. 애플리케이션을 로컬로 시작

채팅 창에서 다음 프롬프트를 전송합니다.

How do I set up a virtual environment and run this app locally?

터미널에서 제안된 명령어를 실행합니다.

2d78c7ae8e2f0e5.png

종속 항목 설치

c300d4a00537fcb2.png

앱을 시작합니다.

f98f49a19f4015ed.png

링크를 클릭하여 애플리케이션을 미리 봅니다.

dc0a8b15a6c5386f.png

샘플 출력:

e9f986d9088b4419.png

d2bb703195b4f99.png

6. 문서 추가

채팅 창에서 다음 프롬프트를 전송합니다.

Add docstrings to all files

추천된 변경사항을 검토하고 채팅에서 수락합니다.

d66c0d004ed65f87.png

채팅 창에서 다음 프롬프트를 전송합니다.

update .gitignore and add venv/* folder

다음에 이 프롬프트가 표시됩니다.

update .gitignore and add __pycache__ folder

샘플 출력:

b06dae44f82cfa95.png

소스 제어 뷰로 전환하고 지금까지 변경한 내용을 검토합니다.

2c41f8b842573384.png

7. 단위 테스트 추가

calendar.py 파일을 열고 컨텍스트 메뉴에서 Gemini Code Assist >> Generate Unit Tests를 선택합니다.

6d21534189f9d18d.png

Gemini Code Assist 채팅 창에서 Enter 키를 누릅니다. 변경사항을 검토하고 수락합니다.

dc0bac41d481fd34.png

Gemini에게 테스트 실행 방법을 물어보세요.

How do I run the tests?

터미널에서 제안된 명령어를 실행하고 출력을 검토합니다.

9ce654d02951888.png

8. 버그 확인

calendar.py 파일을 열고 채팅 창에서 다음 프롬프트를 보냅니다.

Are there any bugs in the conversion logic?

추천된 변경사항을 검토하고 채팅에서 수락합니다.

1ff4c84d70cd4a79.png

단위 테스트를 다시 실행하여 변경사항을 검증합니다.

python3 test_calendar.py

오류 메시지가 표시되면 오류를 선택하고 Gemini의 컨텍스트에 추가하여 문제 해결 및 수정에 도움을 받을 수 있습니다.

70e77fd68358a29a.png

9. UI 리팩터링

채팅 창에 다음 프롬프트를 입력합니다.

Refactor UI to use bootstrap library

변경사항을 검토하고 수락합니다.

b5fd026c01c88d26.png

애플리케이션을 시작하거나 앱이 이미 실행 중인 경우 페이지를 새로고침합니다.

터미널에서 앱이 실행되고 있지 않으면 앱을 시작합니다.

python3 main.py

페이지를 새로고침하고 변경사항을 확인합니다.

b52a709e902040e3.png

54664e527bcd9227.png

음수를 전송하여 오류 페이지를 확인해 보세요.

f426b129e8aa64b7.png

604f16773e868060.png

10. 백엔드 리팩터링

채팅 창에 다음 프롬프트를 입력합니다.

Store requests in memory and create a page to display conversion history. Add links on all pages to view the history.

채팅에서 변경사항을 검토하고 수락합니다.

8c1c2a1b79432490.png

터미널에서 다음 명령어를 실행하여 애플리케이션을 시작합니다.

python3 main.py

기록 페이지를 검토하기 전에 애플리케이션에 액세스하고 여러 요청을 제출합니다.

ac5639d18b341b0a.png

전환 요청 내역을 검토합니다.

9ca680e193510640.png

11. Gemini Code Assist 결론

이제 Gemini Code Assist가 기존 코드 이해부터 문서, 단위 테스트 생성, UI 및 백엔드 구성요소 리팩터링에 이르기까지 다양한 개발 작업을 크게 간소화하는 방법을 살펴보았습니다. 컨텍스트를 이해하고 관련성 있는 제안을 제공하는 기능 덕분에 개발자에게 강력한 도구가 됩니다.

Gemini Code Assist를 더 자세히 실험해 보시기 바랍니다. 다양한 프롬프트를 시도하고, 자체 코드베이스로 기능을 살펴보고, 일상적인 개발 워크플로를 개선하는 방법을 알아보세요. 많이 상호작용할수록 생산성을 높이고 코드 품질을 개선할 수 있는 잠재력을 더 많이 발견할 수 있습니다.

12. 축하합니다.

축하합니다. Codelab을 완료했습니다.

학습한 내용

  • 일반적인 개발자 작업을 위해 Gemini Code Assist 사용

다음 단계:

  • 실습 세션이 추가될 예정입니다.

삭제

이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.

프로젝트 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 튜토리얼에서 만든 프로젝트를 삭제하는 것입니다.

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