Gemini Code Assist를 사용한 코드

이 문서에서는 Google Cloud의 AI 기반 공동작업자인 Gemini Code Assist를 사용하여 Cloud Workstations 기본 편집기에서 다음 작업을 수행하는 방법을 설명합니다.

  • 코드 문제를 해결하는 데 도움이 되는 안내를 제공합니다.

  • 프로젝트에서 사용할 코드 생성하기

  • 코딩하는 동안 인라인 추천을 받습니다.

Google Cloud를 위한 Gemini가 사용자의 데이터를 사용하는 방법과 시점을 알아보세요.

코드의 라이선스 요구사항을 준수할 수 있도록 Gemini Code Assist는 권장사항이 특정 소스를 길이 그대로 직접 인용하는 소스 인용을 제공합니다. Gemini에서 소스를 인용하는 방법과 시기에 대한 자세한 내용은 Gemini에서 코드를 생성하고 소스를 인용하는 방법을 참조하세요.

코드 맞춤설정을 사용하면 Gemini Code Assist에서 조직의 비공개 코드베이스를 기반으로 코드 추천을 직접 받을 수 있습니다. 코드 맞춤설정을 구성하는 방법을 알아보세요.

이 문서는 모든 기술 수준의 개발자를 대상으로 합니다. Cloud Workstations에 대한 실무 지식이 있고 Google Cloud에 익숙하다고 가정합니다. 원하는 경우 VS Code용 Cloud Code, IntelliJ용 Cloud Code, Cloud Shell 편집기에서 Gemini Code Assist를 살펴볼 수도 있습니다.

시작하기 전에

  1. 워크스테이션 구성을 만들 수 있도록 프로젝트에 Cloud Workstations 관리자 IAM 역할이 있는지 확인합니다.

    IAM으로 이동

  2. 아직 선택하지 않은 경우 워크스테이션을 설정하고 구성에서 반드시 기본 편집자(Code-OSS)를 선택 합니다.

  3. 코드 파일에서 Gemini Code Assist 기능을 테스트하기 전에 파일의 코딩 언어가 지원되는지 확인합니다. 지원되는 코딩 언어에 대한 자세한 내용은 지원되는 코딩 언어를 참조하세요.

Google Cloud에 연결하고 프로젝트 선택

이 섹션에서는 Google Cloud에 연결하고 워크스테이션에서 Google Cloud용 Gemini API가 사용 설정된 Google Cloud 프로젝트를 선택합니다.

Google Cloud용 Gemini API를 사용 설정하지 않은 Google Cloud 프로젝트를 선택하면 IDE에서 API를 사용 설정하는 옵션을 제공하는 알림이 전송됩니다. 알림 창에서 API 사용 설정을 선택하여 프로젝트에 API를 사용 설정합니다. 자세한 내용은 프로젝트에 대한 Gemini Code Assist 설정을 참조하세요.

워크스테이션에서 Google Cloud에 연결하려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 워크스테이션을 실행합니다.

    워크스테이션 실행

  2. 상태 표시줄에서 Cloud Code - 로그인을 클릭합니다.

    상태 표시줄에 있는 Cloud Code - 로그인 버튼입니다.

  3. 로그인하라는 메시지가 표시되면 로그인 진행을 클릭합니다.

  4. Google Cloud 로그인 과정을 시작하려면 Control(Windows 및 Linux의 경우) 또는 Command(macOS의 경우)를 누르고 콘솔의 URL을 클릭합니다.

  5. Cloud Workstations에서 외부 웹사이트를 열도록 허용하라는 메시지가 표시되면 열기를 클릭합니다.

  6. 계정에 로그인하려면 안내를 따릅니다.

    Google에서 이 앱을 다운로드해야 한다는 메시지가 표시되면 로그인을 클릭합니다.

    Cloud Code에 로그인할 때 사용할 인증 코드가 표시된 새 탭이 브라우저에서 열립니다.

  7. 인증 코드를 복사하여 승인 코드 입력이라고 표시된 터미널에 붙여넣은 다음 Enter(Windows 및 Linux의 경우) 또는 Return(macOS의 경우)을 누릅니다.

    이제 Google Cloud에 연결되었습니다.

다음으로 Google Cloud용 Gemini API가 사용 설정된 Google Cloud 프로젝트를 선택하려면 다음 단계를 수행합니다.

  1. Gemini Code Assist 상태 표시줄에서 Gemini Code Assist를 클릭합니다.

    Gemini 상태 표시줄을 사용할 수 있습니다.

  2. Gemini Code Assist 메뉴에서 Gemini Code 프로젝트 선택을 선택합니다.

  3. Google Cloud용 Gemini API가 사용 설정된 Google Cloud 프로젝트를 선택합니다.

    Gemini를 사용할 준비가 되었습니다.

    상태 표시줄의 Gemini 아이콘이 정상으로 설정되었습니다.

Gemini Code Assist와 채팅하기

이 섹션에서는 Gemini Code Assist 창을 열고 Gemini Code Assist와 채팅하여 기존 코드에 대한 설명을 얻는 방법을 알아봅니다.

Gemini와 채팅을 시작하려면 다음 단계를 따르세요.

  1. 코드 파일을 엽니다.

  2. 워크스테이션의 작업 표시줄에서 spark Gemini Code Assist를 클릭합니다.

  3. Gemini Code Assist 창에서 Explain this code to me 프롬프트를 입력하고 send 보내기를 클릭합니다.

    Gemini는 코드 파일의 코드를 프롬프트에 대한 참조로 사용하고 코드 설명으로 응답합니다.

    파일의 모든 코드 대신 특정 코드 블록을 참조하려면 코드 파일에서 블록을 선택한 후 Gemini에 프롬프트를 입력하면 됩니다.

채팅 기록 재설정

Gemini Code Assist는 프롬프트에 대답할 때 채팅 기록을 사용해 추가 컨텍스트를 파악합니다.

채팅 기록이 달성하려는 작업과 더 이상 관련이 없는 경우 채팅 기록을 재설정할 수 있습니다. Gemini Code Assist 창에서 delete 채팅 재설정을 클릭하면 됩니다.

프롬프트로 코드 생성

다음 섹션에서는 Gemini Code Assist를 사용하여 Python 파일 내에 예시 프롬프트 Function to create a Cloud Storage bucket으로 코드를 생성하는 방법을 보여줍니다. 또한 코드 중 일부를 선택한 후 채팅 기능을 통해 Gemini Code Assist에 프롬프트를 입력하여 도움을 요청하고, 코딩하는 동안 코드 추천을 받고 이를 수락하거나 거부할 수 있습니다.

코드 파일에서 Gemini Code Assist 프롬프트

  1. 코드 파일의 새 줄에 Function to create a Cloud Storage bucket을 입력하고 Enter(Windows 및 Linux의 경우) 또는 Return(macOS의 경우)을 누릅니다.

  2. 코드를 생성하려면 Control+Enter(Windows 및 Linux의 경우) 또는 Control+Return(macOS의 경우)을 누릅니다.

    Python 파일의 프롬프트 텍스트 옆에 Gemini Code Assist가 고스트 텍스트 형식으로 코드를 생성합니다.

  3. 선택사항: 생성된 코드를 수락하려면 Tab을 누릅니다.

(선택사항) 코드 생성을 위한 단축키 변경

코드 생성을 위한 기본 단축키가 이전 섹션에서 설명한 대로 작동하지 않는 경우 다음 단계에 따라 단축키를 변경할 수 있습니다.

  1. 워크스테이션에서 menu 메뉴를 클릭한 후 파일 > 환경설정 > 단축키로 이동합니다.

  2. 단축키 목록에서 Cloud Code: 코드 생성을 검색합니다.

  3. Cloud Code: 코드 생성을 클릭한 다음 edit 키 바인딩 변경을 클릭합니다.

  4. 대화상자가 표시되면 원하는 단축키를 입력합니다.

  5. Enter(Windows 및 Linux의 경우) 또는 Return(macOS의 경우)을 누릅니다.

    이제 새로 할당된 단축키를 사용하여 Gemini로 코드를 생성할 수 있습니다.

채팅을 사용하여 선택한 코드로 Gemini Code Assist에 프롬프트 입력

Gemini Code Assist는 선택한 코드에 따라 작업을 수행하거나 질문에 답할 수 있습니다. 선택한 코드가 포함된 프롬프트를 기반으로 하는 생성된 코드를 가져오려면 다음 단계를 수행합니다.

  1. 작업 표시줄에서 spark Gemini Code Assist를 클릭하여 Gemini Code Assist 창을 엽니다.

  2. 코드 파일에서 코드 블록을 선택합니다.

  3. Gemini Code Assist 창 텍스트 필드에 선택한 코드에 대한 프롬프트를 입력합니다.

    예를 들어 코드에서 함수를 선택하고 Write a unit test for this function 프롬프트를 입력합니다.

    Gemini가 선택한 함수의 단위 테스트를 작성합니다.

    Gemini가 선택한 코드를 참조로 사용하고 프롬프트에 응답합니다.

코딩하는 동안 인라인 추천 받기

코드를 작성하는 동안 Gemini Code Assist에서 수락하거나 무시할 수 있는 인라인 코드 추천을 제공합니다. 이 기능을 사용해 보려면 다음 단계를 수행합니다.

  1. 코드 파일의 새 줄에서 함수 작성을 시작합니다. 예를 들어 Python 파일이 있으면 def를 작성합니다.

    Gemini는 고스트 텍스트 형식의 코드를 제안합니다.

  2. Gemini Code Assist에서 코드 제안을 수락하려면 Tab을 누릅니다. 그렇지 않은 경우 제안을 무시하려면 Esc를 누르거나 코드를 계속 작성합니다.

선택사항: 인라인 추천 중지

Gemini Code Assist에서 인라인 추천을 중지하려면 다음 단계를 따르세요.

  1. 워크스테이션에서 menu 메뉴로 이동한 다음 파일 > 환경설정 > 설정을 선택합니다.

  2. 설정 대화상자의 사용자 탭에서 확장 프로그램 > Cloud Code로 이동합니다.

  3. Cloudcode: Gemini Code Assist: 인라인 추천: 자동 사용 설정 목록을 찾을 때까지 스크롤한 다음 끄기를 선택합니다.

    인라인 추천이 중지됩니다. Control+Enter(Windows 및 Linux의 경우) 또는 Control+Return(macOS의 경우)을 눌러 인라인 추천을 수동으로 트리거할 수 있습니다.

선택사항: .aiexclude 파일로 컨텍스트에서 파일 제외

.aiexclude 파일을 만들어 Gemini Code Assist에서 컨텍스트로 고려하지 않도록 파일을 제외할 수 있습니다. .aiexclude 파일은 .gitignore 파일과 유사한 문법을 따르지만 다음과 같은 차이점이 있습니다.

  • 비어 있거나 존재하지 않는 .aiexclude 파일은 디렉터리와 모든 하위 디렉터리의 파일을 차단하지 않습니다.
  • .aiexclude 파일은 패턴 앞에 느낌표(!)를 붙이는 부정을 지원하지 않습니다.
  • .aiexclude 파일은 * 문자에서 탐욕적으로 일치합니다. 이렇게 하면 디렉터리와 파일에서 무차별적으로 일치합니다. 이 .aiexclude 파일은 폴더나 파일과 관련하여 ***을 구분하지 않습니다.

현재 단일 .aiexclude 파일만 지원됩니다. .aiexclude 파일을 구성하려면 작업공간 폴더의 루트에 .aiexclude라는 파일을 만듭니다. 이 파일을 작업공간 루트 외부에 배치하거나 파일 이름을 바꾸려면 VS Code 설정의 '컨텍스트 제외 파일'에서 경로를 설정할 수 있습니다. 이 설정에 제공된 경로 값은 열려 있는 작업공간의 루트 폴더를 기준으로 확인됩니다.

예시

다음 예는 .aiexclude 파일을 구성하는 방법을 보여줍니다.

  • 작업공간 디렉터리에서 또는 그 아래에서 이름이 apikeys.txt인 모든 파일을 차단합니다.

    apikeys.txt
    
  • 작업공간 디렉터리에서 또는 그 아래에서 .key 파일 확장자가 있는 모든 파일을 차단합니다.

    *.key
    
  • .aiexclude 파일과 동일한 디렉터리에 있는 apikeys.txt 파일만 차단하고 하위 디렉터리는 차단하지 않습니다.

    /apikeys.txt
    
  • my/sensitive/dir 디렉터리 및 모든 하위 디렉터리의 모든 파일을 차단합니다. 경로는 작업공간 루트 디렉터리를 기준으로 해야 합니다.

    my/sensitive/dir/*
    

인용된 소스와 일치하는 코드 추천 사용 중지

Gemini는 기존 오픈소스 코드 등의 다른 출처에서 직접 자세하게 인용될 경우 인용 정보를 제공합니다. 자세한 내용은 Gemini의 소스 인용 방법과 시기를 참조하세요.

인용된 소스와 일치하는 코드가 추천되지 않도록 하려면 settings.json 파일에서 cloudcode.duetAI.recitation.maxCitedLength 설정을 0으로 수정하면 됩니다.

"cloudcode.duetAI.recitation.maxCitedLength": 0

스마트 작업 사용

컨텍스트 전환을 최소화하는 동시에 생산성을 높일 수 있도록 Gemini Code Assist는 코드 편집기에서 바로 AI 기반의 스마트 작업을 제공합니다. 코드 편집기에서 코드를 선택하면 컨텍스트와 관련된 작업 목록을 보고 선택할 수 있습니다.

코드에서 스마트 작업을 사용하려면 다음 단계를 수행합니다.

  1. 코드 파일에서 코드 블록을 선택합니다.

  2. 선택한 코드 블록 옆에 있는 lightbulb 코드 작업 표시를 클릭합니다.

    Cloud Shell과 Cloud Workstations에서 코드 블록을 선택한 후 표시되는 스마트 작업 전구 아이콘

  3. 단위 테스트 생성과 같은 작업을 선택합니다.

    Gemini는 선택한 작업을 기준으로 응답을 생성합니다.

코드 변환 사용

Gemini Code Assist는 코드 파일의 일부를 선택하고 인라인 텍스트 상자를 사용해서 자연어 프롬프트를 통해 기존 코드 수정을 요청할 수 있게 해주는 코드 변환을 제공합니다.

코드 변환을 사용하면 다음을 수행할 수 있습니다.

  • 코드를 문서화하는 명령줄 생성
  • 코드 문제 해결
  • 코드 가독성 개선
  • 코드 효율성 개선

또한 Gemini: 채팅 창에서 생성된 응답의 컨텍스트 소스를 볼 수 있습니다.

인라인 텍스트 상자로 Gemini Code Assist에 명령 지시

인라인 텍스트 상자를 사용하면 코드 파일에서 직접 Gemini Code Assist와 상호 작용할 수 있습니다.

인라인 텍스트 상자를 열고 Gemini에 명령을 지시하려면 다음 단계를 수행합니다.

  1. 코드 파일에서 Control+I(Windows 및 Linux) 또는 Command+I(macOS)를 누릅니다.

  2. Write a function to create a Cloud Storage bucket과 같이 프롬프트를 입력하고 Enter(Windows 및 Linux) 또는 Return(macOS)을 누릅니다.

    Gemini Code Assist가 프롬프트에 따라 코드를 생성합니다.

리팩터링된 코드의 차이점 보기

인라인 텍스트 상자에 기본 제공되는 차이 보기를 사용하면 Gemini 제안과 원래 코드 사이의 변경사항을 확인할 수 있습니다. 그런 후 제안된 변경사항을 수락하거나 삭제할 수 있습니다.

인라인 텍스트 상자에서 리팩터링된 코드 차이를 보려면 다음 단계를 수행합니다.

  1. 코드 파일에서 함수를 선택하고 Control+I(Windows 및 Linux) 또는 Command+I(macOS)를 눌러서 인라인 텍스트 상자를 엽니다.

  2. Add comments와 같이 프롬프트를 입력하고 Enter(Windows 및 Linux) 또는 Return(macOS)을 누릅니다.

    Gemini가 선택한 함수에 대해 코드 변경사항을 생성하면 차이 보기가 표시됩니다.

    Gemini: 채팅 창에 나열된 컨텍스트 소스

  3. 변경사항을 수락하거나 삭제하려면 수락 또는 삭제를 클릭합니다.

생성된 응답의 컨텍스트 소스 보기

컨텍스트 표시 기능은 프롬프트에 응답을 생성하는 데 참조로 사용된 프로젝트 파일(컨텍스트 소스)을 나열합니다. 어떤 파일이 참조로 사용되었는지 알고 있으면 프롬프트를 세분화하고 보다 구체적인 응답을 얻는 데 도움이 됩니다. Gemini 채팅을 사용할 때마다 컨텍스트 소스가 표시됩니다.

생성된 응답의 컨텍스트 소스를 보려면 Gemini: 채팅 창에서 컨텍스트 소스 스니펫이 표시될 때까지 스크롤합니다. 스니펫을 확장하여 모든 컨텍스트 소스를 확인합니다.

Gemini: 채팅 창에 나열된 컨텍스트 소스

스마트 명령어 사용

스마트 명령어는 코드에 특정 작업을 수행하기 위해 인라인 텍스트 상자에서 사용할 수 있는 명령어입니다.

/explain 스마트 명령어로 전체 코드 파일에 대한 설명을 가져오려면 다음 단계를 수행합니다.

  1. 코드 파일에서 Control+I(Windows 및 Linux) 또는 Command+I(macOS)를 눌러서 인라인 텍스트 상자를 엽니다.

  2. 스마트 명령어 목록과 설명을 보려면 /를 누릅니다.

  3. /explain을 선택합니다.

    Gemini가 인라인 텍스트 상자에 전체 코드 파일의 설명을 생성합니다.

  4. 선택사항: Gemini: 채팅 창에서 생성된 응답을 보려면 채팅에서 보기를 클릭합니다.

프롬프트 기록 보기

프롬프트 기록에 액세스하면 대규모 코드 파일에 동일한 프롬프트를 입력해야 할 때 시간이 절약됩니다.

프롬프트 기록에 액세스하려면 코드 파일에서 Control+I(Windows 및 Linux) 또는 Command+I(macOS)를 눌러서 인라인 텍스트 상자를 열고 Control+위쪽 화살표(Windows 및 Linux) 또는 Command+위쪽 화살표(macOS)를 누릅니다. 이렇게 하면 이전 프롬프트를 돌려보고 필요에 따라 재사용할 수 있습니다.

영어가 모국어가 아닌 화자의 코드 가독성 개선

번역 애플리케이션에 의존하는 영어가 모국어가 아닌 화자의 경우 인라인 텍스트 상자를 사용해서 다른 언어로 주석을 생성할 수 있습니다.

영어 주석을 다른 언어로 변환하거나 다른 언어로 새 주석을 추가하려면 다음 단계를 수행합니다.

  1. 코드 파일에서 주석을 추가하려는 코드를 선택합니다.

  2. Control+I(Windows 및 Linux) 또는 Command+I(macOS)를 눌러서 인라인 텍스트 상자를 엽니다.

  3. Add spanish comments와 같이 프롬프트를 입력하고 Enter(Windows 및 Linux) 또는 Return(macOS)을 누릅니다.

    Gemini는 프롬프트에 지정한 언어로 주석을 생성하고 이러한 추천 차이를 표시합니다.

  4. 코드에 대해 이러한 변경사항을 수락하거나 삭제하려면 수락 또는 삭제를 클릭합니다.

다른 예시 프롬프트 테스트

이 페이지의 프롬프트로 코드 생성 섹션을 읽은 후 다음 예시 프롬프트 일부를 시도해보세요.

코드 설명 가져오기

  1. 코드 파일에서 설명을 원하는 함수를 선택합니다.
  2. Gemini Code Assist 창에서 Explain this code to me 프롬프트를 입력합니다.

    Gemini는 선택한 코드를 참조로 사용하고 선택한 함수에 대한 설명으로 응답합니다.

테스트 계획 생성

  1. 코드 파일에서 단위 테스트를 추가할 코드를 선택합니다.
  2. Gemini Code Assist 창에서 Write unit tests for my code 프롬프트를 입력합니다.

코드 디버깅 도움 받기

  1. 코드 파일에서 디버깅할 코드를 선택합니다.
  2. Gemini Code Assist 창에서 Help me debug my code 프롬프트를 입력합니다.

코드 가독성 개선

  1. 코드 파일에서 가독성을 개선할 코드를 선택합니다.
  2. Gemini Code Assist 창에서 Make my code more readable 프롬프트를 입력합니다.

    코드의 특정 부분에 집중하려는 경우 Gemini에 프롬프트를 입력하기 전에 코드의 원하는 부분을 선택합니다.

알려진 문제

다음 섹션에서는 Gemini Code Assist의 알려진 문제를 간략하게 설명합니다.

라이선스 문구 경고가 세션 간에 유지되지 않음

라이선스 문구 경고가 세션 간에 유지되지 않는 경우 영구 로그를 참조하세요.

  1. menu 메뉴 > 보기 > 출력을 클릭합니다.

  2. Gemini Code Assist - 인용을 선택합니다.

Gemini Code Assist 출력 창의 연결 문제

Gemini Code Assist 출력 창에 연결 오류 또는 기타 연결 문제가 표시되면 다음을 수행합니다.

  • oauth2.googleapis.comcloudaicompanion.googleapis.com에 대한 액세스를 허용하도록 방화벽을 구성합니다.

  • gRPC에서 사용하는 HTTP/2를 통한 통신을 허용하도록 방화벽을 구성합니다.

grpc-health-probe 도구를 사용하여 연결을 테스트할 수 있습니다. 검사가 성공하면 다음 출력이 표시됩니다.

$ grpc-health-probe -addr cloudaicompanion.googleapis.com:443 -tls error: this server does not implement the grpc health protocol (grpc.health.v1.Health): GRPC target method can't be resolved

검사가 실패하면 다음과 같은 출력이 표시됩니다.

timeout: failed to connect service "cloudaicompanion.googleapis.com:443" within 1s

자세한 내용을 보려면 grpc-health-probe 전에 다음을 실행하세요.

export GRPC_GO_LOG_SEVERITY_LEVEL=info

Gemini Code Assist 및 JetBrains Gateway

Gemini Code Assist는 JetBrains Gateway를 통해 실행되지 않습니다. 따라서 Gemini Code Assist는 연결에 JetBrains 게이트웨이가 필요한 Cloud Workstations IDE에서 실행되지 않습니다.

Gemini Code Assist 프로젝트를 선택한 후에도 'Gemini Code Assist 활성화'가 계속 표시됨

Google Cloud용 Gemini API 사용 설정 방법이 포함된 이 가이드의 안내에 따라 프로젝트를 선택한 경우 LS 서버에서 문제가 발생할 수 있습니다.

문제에 관한 세부정보를 확인하려면 다음 작업을 수행하세요.

  1. 상태 표시줄에서 spark Gemini Code Assist를 클릭한 후 의견 보내기를 선택합니다.

  2. 로그 파일에서 표시를 클릭하여 세부정보를 확인하고 문제 해결에 도움을 받습니다.

의견 남기기

경험에 대한 의견을 남기려면 다음 단계를 수행합니다.

  1. 상태 표시줄에서 Gemini Code Assist를 클릭한 후 빠른 선택 메뉴에서 의견 보내기를 선택합니다.

  2. 양식에서 제목 필드와 설명 필드를 작성합니다.

  3. Skaffold 또는 AI 컴패니언 로그를 공유하려면 Skaffold 로그 전송 또는 AI 컴패니언 로그 전송 옵션을 선택해야 합니다.

  4. 의견 보내기를 클릭합니다.

다음 단계