Gemini Code Assist를 사용한 코드

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

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

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

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

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

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

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

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

시작하기 전에

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

  2. 아직 설치하지 않은 경우 Gemini Code Assist + Cloud Code 확장 프로그램을 설치하세요. Cloud Code는 IDE에서 Gemini Code Assist와 통합됩니다.

  3. 프록시 뒤에서 IDE를 사용하려면 Visual Studio Code의 네트워크 연결을 참조하세요.

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

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

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

IDE에서 Gemini 코드 지원 코드 둘러보기를 직접 수행하려면 VS Code 실행을 클릭하고 둘러보기 단계를 수행하여 Google Cloud에 연결하고 Gemini Code Assist를 활성화합니다.

VS Code 실행

아니라면 다음 단계를 따르세요.

  1. IDE를 시작합니다.

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

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

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

  4. 표시되는 메시지에 따라 Google 계정에 로그인합니다.

  5. Google에서 Cloud Code를 다운로드했는지 묻는 메시지가 표시되면 로그인을 클릭합니다.

    이제 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. IDE의 작업 표시줄에서 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에서 빠른 선택 표시줄을 사용해 function to create a Cloud Storage bucket과 같은 코드 변환을 수행하는 방법을 보여줍니다.

코드 변환을 사용하면 빠른 선택 표시줄에서 명령어 또는 자연어 프롬프트를 사용하여 코드 수정을 요청할 수 있으며, 코드에 대기 중인 변경사항을 보여주는 비교 뷰가 제공됩니다.

또한 코드 중 일부를 선택한 후 Gemini Code Assist 창을 통해 Gemini Code Assist에 프롬프트를 입력하여 도움을 요청하고, 코딩하는 동안 코드 추천을 받고 이를 수락하거나 거부할 수 있습니다.

코드 변환으로 Gemini Code Assist 프롬프트 입력

  1. 코드 파일의 새 줄에서 Control+I(Windows 및 Linux) 또는 Command+I(macOS)를 눌러 Gemini Code Assist 빠른 선택 표시줄을 엽니다.

  2. 메뉴에서 /generate 명령어를 사용하여 /generate function to create a Cloud Storage bucket을 입력한 다음 Enter(Windows 및 Linux의 경우) 또는 Return(macOS의 경우) 키를 누릅니다.

    Gemini Code Assist는 /generate 명령어를 사용하여 코드를 생성합니다.

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

    Gemini Code Assist가 비교 뷰를 열어 생성된 코드를 표시합니다.

  3. 선택사항: 변경사항을 수락하려면 수락을 클릭합니다.

선택사항: 코드 파일에서 주석으로 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. IDE에서 파일(Windows 및 Linux) 또는 Code(macOS)를 클릭한 후 설정 > 단축키로 이동합니다.

  2. 단축키 목록에서 스크롤하여 Cloud Code: 코드 생성을 찾습니다.

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

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

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

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

IDE에서 단축키를 변경하는 방법은 Visual Studio 코드의 키 바인딩을 참조하세요.

채팅을 사용하여 선택한 코드로 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. IDE에서 Code(macOS의 경우) 또는 파일(Windows 및 Linux의 경우)을 선택한 후 설정 > 설정으로 이동합니다.

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

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

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

코드 변환 빠른 수정 사용

코드에 오류가 있는 경우 Gemini Code Assist를 사용하면 코드 변환의 오류에 빠른 수정을 적용할 수 있습니다.

코드 파일에 빠른 수정을 적용하려면 다음 단계를 따르세요.

  1. 코드 파일에서 물결표 오류 줄 위로 포인터를 가져가 빠른 수정을 선택한 다음 /fix를 선택합니다.

    IDE의 코드 변환 빠른 수정

  2. 빠른 수정이 적용되면 비교 뷰가 표시됩니다. 변경사항을 수락하려면 수락을 클릭합니다.

로컬 코드베이스 인식을 통해 작업공간의 특정 파일로 프롬프트

로컬 코드베이스 인식은 Gemini Code Assist가 컨텍스트로 사용할 파일을 지정할 때 코드베이스의 더 광범위한 컨텍스트 내에서 문법적으로 올바르고 시맨틱상 유의미한 고품질 코드 추천을 제공받는 데 도움이 됩니다.

채팅 프롬프트에서 파일을 지정하려면 @을 입력하고 지정할 파일을 선택합니다.

로컬 코드베이스 인식을 통해 파일을 지정합니다.

코드베이스의 두 파일의 차이점에 관한 설명을 보려면 다음 단계를 따르세요.

  1. 작업 표시줄에서 spark Gemini Code Assist를 클릭합니다.

  2. Gemini Code Assist 창에서 Explain the difference between @YOUR_FILE_NAME_1 and @YOUR_FILE_NAME_2 프롬프트를 입력하고 Enter(Windows 및 Linux의 경우) 또는 Return(macOS의 경우) 키나 Tab 키를 누릅니다. 목록에서 파일 이름을 클릭하여 파일을 선택할 수도 있습니다. 파일 이름을 클릭하면 파일이 프롬프트 컨텍스트에 추가되고 IDE에서 파일이 열립니다.

    Gemini Code Assist는 컨텍스트로 지정한 두 파일을 사용하여 프롬프트에 대답합니다. Gemini Code Assist에는 컨텍스트 소스에 지정한 파일도 포함됩니다.

이제 파일을 지정했으므로 파일을 다시 지정하지 않고도 동일한 채팅 기록에서 계속 추가 질문을 묻거나 프롬프트를 입력할 수 있습니다.

예를 들어 Gemini Code Assist 창에서 How can I improve YOUR_FILE_NAME_1? 프롬프트(@ 기호 제외)를 입력하고 Enter(Windows 및 Linux의 경우) 또는 Return(macOS의 경우) 키를 누릅니다.

Gemini Code Assist가 프롬프트에서 지정한 파일에 관한 문의에 대답합니다.

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

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

  • .aiexclude 파일 또는 존재하지 않는 .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 코드 작업 표시를 클릭합니다.

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

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

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

다른 예시 프롬프트 테스트

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

코드 설명 가져오기

  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의 알려진 문제를 간략하게 설명합니다.

채팅 응답에 대용량 개방형 파일의 업데이트된 버전이 포함된 경우 채팅 응답이 잘릴 수 있음

이 문제를 해결하려면 더 작은 코드 섹션을 선택하고 채팅 프롬프트에서 only output the selected code.와 같은 추가 지시문을 포함합니다.

Vim: 삽입 모드에 있지 않으면 코드 생성 추천을 수락하거나 닫을 수 없음

일반 모드에서 Vim 플러그인을 사용하면 코드 추천을 수락하거나 닫을 수 없습니다.

이 문제를 해결하려면 i를 눌러 삽입 모드로 전환한 후 Tab을 눌러 제안을 수락합니다.

Vim: Esc 키를 눌러 추천을 닫을 때 일관성 없는 동작 발생

Esc 키를 누르면 IDE와 Gemini 추천 모두 닫힙니다. 이 동작은 Esc 키를 누르면 Gemini를 다시 트리거하는 비Vim 동작과 다릅니다.

로그인 시도가 계속 타임아웃됨

로그인 시도가 계속 타임아웃되면 cloudcode.beta.forceOobLogin 설정을 settings.json 파일에 추가해 보세요.

"cloudcode.beta.forceOobLogin": true

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

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

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

  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 프로젝트를 선택한 후에도 '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. 의견 보내기를 클릭합니다.

다음 단계