InfoGrab Docs

코드 제안

요약

코드 제안은 다음에서 사용할 수 있습니다: 생성형 AI를 사용하여 개발 중에 코드를 제안함으로써 GitLab Duo 코드 제안을 사용하여 더 효율적으로 코드를 작성하십시오. GitLab Duo는 GitLab 17.2 이상이 필요합니다.

모델 정보
히스토리
  • GitLab 16.1에서 Google Vertex AI Codey API 지원 도입.
  • GitLab 16.2에서 GitLab 네이티브 모델 지원 제거.
  • GitLab 16.3에서 코드 생성 지원 도입.
  • GitLab 16.7에서 일반 공개.
  • 2024년 2월 15일부로 GitLab Duo Pro 애드온이 필요하도록 변경됨. 이전에는 Premium 및 Ultimate 구독에 포함되었습니다.
  • 2024년 10월 17일부로 지원되는 모든 GitLab 버전에서 GitLab Duo Pro 또는 GitLab Duo Enterprise 애드온이 필요하도록 변경됨.
  • GitLab 17.6에서 fireworks_qwen_code_completion 플래그와 함께 Fireworks AI 호스팅 Qwen2.5 코드 완성 모델 지원 도입.
  • GitLab 17.11에서 Qwen2.5 코드 완성 모델 지원 제거.
  • GitLab 17.11에서 기능 플래그 use_fireworks_codestral_code_completion을 통해 기본적으로 Fireworks 호스팅 Codestral 활성화.
  • GitLab 18.0에서 GitLab Duo Core를 포함하도록 변경.
  • GitLab 18.1에서 Fireworks 호스팅 Codestral을 기본 모델로 설정.
  • GitLab 18.2에서 코드 생성의 기본 모델을 Claude Sonnet 4로 변경.
  • GitLab 18.6에서 기능 플래그 code_suggestions_context 제거.
  • GitLab 18.10에서 GitLab Credits를 사용하는 GitLab.com Free 티어에서 사용 가능.
Note

코드 제안은 다음에서 사용할 수 있습니다:

  • GitLab Duo Agent Platform. 청구는 사용량 기반입니다.
  • GitLab Duo Core, Pro, Enterprise, GitLab Duo with Amazon Q. 청구는 애드온을 기준으로 합니다.

생성형 AI를 사용하여 개발 중에 코드를 제안함으로써 GitLab Duo 코드 제안을 사용하여 더 효율적으로 코드를 작성하십시오.

전제 조건#

코드 제안을 사용하려면:

Note

GitLab Duo는 GitLab 17.2 이상이 필요합니다. GitLab Duo Core 액세스와 최상의 사용자 경험 및 결과를 위해 GitLab 18.0 이상으로 업그레이드하십시오. 이전 버전은 계속 작동할 수 있지만 경험이 저하될 수 있습니다.

코드 제안 사용#

코드 제안을 사용하려면:

  1. 지원되는 IDE에서 Git 프로젝트를 엽니다.

  2. git remote add를 사용하여 프로젝트를 로컬 저장소의 원격으로 추가합니다.

  3. 숨겨진 .git/ 폴더를 포함한 프로젝트 디렉토리를 IDE 작업 공간 또는 프로젝트에 추가합니다.

  4. 코드를 작성합니다. 입력하는 동안 제안이 표시됩니다. 코드 제안은 커서 위치에 따라 코드 스니펫을 제공하거나 현재 줄을 완성합니다.

  5. 자연어로 요구사항을 설명합니다. 코드 제안은 제공된 컨텍스트를 기반으로 함수와 코드 스니펫을 생성합니다.

  6. 제안을 받으면 다음 중 하나를 수행할 수 있습니다:

    • 제안을 수락하려면 Tab을 누릅니다.
    • 일부 제안을 수락하려면 Control+오른쪽 화살표 또는 Command+오른쪽 화살표 중 하나를 누릅니다.
    • 제안을 거부하려면 Esc를 누릅니다. Neovim에서는 메뉴를 종료하려면 Control+E를 누릅니다.
    • 제안을 무시하려면 평소처럼 계속 입력합니다.

여러 코드 제안 보기#

히스토리

VS Code의 코드 완성 제안의 경우 여러 제안 옵션을 사용할 수 있습니다. 사용 가능한 모든 제안을 보려면:

  1. 코드 완성 제안 위에 마우스를 올립니다.
  2. 대안을 스크롤합니다. 다음 중 하나를 사용합니다:
    • 키보드 단축키 사용:
      • Mac에서는 Option+[로 이전 제안을 보고, Option+]로 다음 제안을 봅니다.
      • Linux 및 Windows에서는 Alt+[로 이전 제안을 보고, Alt+]로 다음 제안을 봅니다.
    • 표시된 대화 상자에서 오른쪽 또는 왼쪽 화살표를 선택하여 다음 또는 이전 옵션을 봅니다.
  3. 원하는 제안을 적용하려면 Tab을 누릅니다.

코드 완성 및 생성#

코드 제안은 코드 완성 및 코드 생성을 사용합니다:

코드 완성 코드 생성
목적 현재 코드 줄을 완성하기 위한 제안을 제공합니다. 자연어 주석을 기반으로 새 코드를 생성합니다.
트리거 입력 시 일반적으로 짧은 지연 후 트리거됩니다. 특정 키워드가 포함된 주석을 작성한 후 Enter를 누를 때 트리거됩니다.
범위 현재 줄 또는 작은 코드 블록으로 제한됩니다. 컨텍스트를 기반으로 전체 메서드, 함수 또는 클래스를 생성할 수 있습니다.
정확도 소규모 작업 및 짧은 코드 블록에서 더 정확합니다. 더 큰 대형 언어 모델(LLM)이 사용되고, 요청에 추가 컨텍스트(예: 프로젝트에서 사용되는 라이브러리)가 전송되며, 지침이 LLM에 전달되기 때문에 복잡한 작업과 대규모 코드 블록에서 더 정확합니다.
사용 방법 코드 완성은 입력 중인 줄에 대한 완성을 자동으로 제안합니다. 주석을 작성하고 Enter를 누르거나 빈 함수 또는 메서드를 입력합니다.
사용 시점 하나 또는 몇 줄의 코드를 빠르게 완성할 때 사용합니다. 더 복잡한 작업, 대규모 코드베이스, 자연어 설명을 기반으로 처음부터 새 코드를 작성하려는 경우 또는 편집 중인 파일의 코드가 5줄 미만인 경우 코드 생성을 사용합니다.

코드 제안은 항상 이 두 기능을 모두 사용합니다. 코드 생성만 또는 코드 완성만 사용할 수 없습니다.

코드 완성과 코드 생성 비교 데모 보기.

코드 생성 모범 사례#

코드 생성에서 최상의 결과를 얻으려면:

  • 간결하게 유지하면서 최대한 구체적으로 작성합니다.
  • 생성하려는 결과(예: 함수)를 명시하고 달성하고자 하는 내용에 대한 세부 정보를 제공합니다.
  • 사용하려는 프레임워크 또는 라이브러리와 같은 추가 정보를 추가합니다.
  • 각 주석 뒤에 공백이나 새 줄을 추가합니다. 이 공백은 코드 생성기에 지침을 완료했음을 알립니다.
  • 코드 제안에서 사용할 수 있는 컨텍스트를 검토하고 조정합니다.

예를 들어, 몇 가지 특정 요구사항이 있는 Python 웹 서비스를 생성하려면 다음과 같이 작성할 수 있습니다:

# Create a web service using Tornado that allows a user to sign in, run a security scan, and review the scan results.
# Each action (sign in, run a scan, and review results) should be its own resource in the web service
...

AI는 비결정적이므로 동일한 입력으로 매번 동일한 제안을 받지 못할 수 있습니다. 품질 높은 코드를 생성하려면 명확하고 설명적이며 구체적인 작업을 작성하십시오.

사용 사례 및 모범 사례는 GitLab Duo 예시 문서를 참조합니다.

사용 가능한 언어 모델#

다양한 언어 모델이 코드 제안의 소스가 될 수 있습니다.

  • GitLab.com: GitLab이 모델을 호스팅하고 클라우드 기반 AI Gateway를 통해 연결합니다.
  • GitLab Self-Managed에는 두 가지 옵션이 있습니다:

결과의 정확성#

전반적인 생성 콘텐츠의 정확성을 계속 개선하고 있습니다. 하지만 코드 제안은 다음과 같은 제안을 생성할 수 있습니다:

  • 관련 없음.
  • 불완전함.
  • 파이프라인 실패 가능성이 높음.
  • 잠재적으로 안전하지 않음.
  • 공격적이거나 무감각함.

코드 제안을 사용할 때 코드 리뷰 모범 사례가 여전히 적용됩니다.

관련 항목#

코드 제안

Tier: [Free](../../../subscriptions/gitlab_credits.md#for-the-free-tier-on-gitlabcom), Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

코드 제안은 다음에서 사용할 수 있습니다: 생성형 AI를 사용하여 개발 중에 코드를 제안함으로써 GitLab Duo 코드 제안을 사용하여 더 효율적으로 코드를 작성하십시오. GitLab Duo는 GitLab 17.2 이상이 필요합니다.

모델 정보
히스토리
  • GitLab 16.1에서 Google Vertex AI Codey API 지원 도입.
  • GitLab 16.2에서 GitLab 네이티브 모델 지원 제거.
  • GitLab 16.3에서 코드 생성 지원 도입.
  • GitLab 16.7에서 일반 공개.
  • 2024년 2월 15일부로 GitLab Duo Pro 애드온이 필요하도록 변경됨. 이전에는 Premium 및 Ultimate 구독에 포함되었습니다.
  • 2024년 10월 17일부로 지원되는 모든 GitLab 버전에서 GitLab Duo Pro 또는 GitLab Duo Enterprise 애드온이 필요하도록 변경됨.
  • GitLab 17.6에서 fireworks_qwen_code_completion 플래그와 함께 Fireworks AI 호스팅 Qwen2.5 코드 완성 모델 지원 도입.
  • GitLab 17.11에서 Qwen2.5 코드 완성 모델 지원 제거.
  • GitLab 17.11에서 기능 플래그 use_fireworks_codestral_code_completion을 통해 기본적으로 Fireworks 호스팅 Codestral 활성화.
  • GitLab 18.0에서 GitLab Duo Core를 포함하도록 변경.
  • GitLab 18.1에서 Fireworks 호스팅 Codestral을 기본 모델로 설정.
  • GitLab 18.2에서 코드 생성의 기본 모델을 Claude Sonnet 4로 변경.
  • GitLab 18.6에서 기능 플래그 code_suggestions_context 제거.
  • GitLab 18.10에서 GitLab Credits를 사용하는 GitLab.com Free 티어에서 사용 가능.
Note

코드 제안은 다음에서 사용할 수 있습니다:

  • GitLab Duo Agent Platform. 청구는 사용량 기반입니다.
  • GitLab Duo Core, Pro, Enterprise, GitLab Duo with Amazon Q. 청구는 애드온을 기준으로 합니다.

생성형 AI를 사용하여 개발 중에 코드를 제안함으로써 GitLab Duo 코드 제안을 사용하여 더 효율적으로 코드를 작성하십시오.

전제 조건#

코드 제안을 사용하려면:

Note

GitLab Duo는 GitLab 17.2 이상이 필요합니다. GitLab Duo Core 액세스와 최상의 사용자 경험 및 결과를 위해 GitLab 18.0 이상으로 업그레이드하십시오. 이전 버전은 계속 작동할 수 있지만 경험이 저하될 수 있습니다.

코드 제안 사용#

코드 제안을 사용하려면:

  1. 지원되는 IDE에서 Git 프로젝트를 엽니다.

  2. git remote add를 사용하여 프로젝트를 로컬 저장소의 원격으로 추가합니다.

  3. 숨겨진 .git/ 폴더를 포함한 프로젝트 디렉토리를 IDE 작업 공간 또는 프로젝트에 추가합니다.

  4. 코드를 작성합니다. 입력하는 동안 제안이 표시됩니다. 코드 제안은 커서 위치에 따라 코드 스니펫을 제공하거나 현재 줄을 완성합니다.

  5. 자연어로 요구사항을 설명합니다. 코드 제안은 제공된 컨텍스트를 기반으로 함수와 코드 스니펫을 생성합니다.

  6. 제안을 받으면 다음 중 하나를 수행할 수 있습니다:

    • 제안을 수락하려면 Tab을 누릅니다.
    • 일부 제안을 수락하려면 Control+오른쪽 화살표 또는 Command+오른쪽 화살표 중 하나를 누릅니다.
    • 제안을 거부하려면 Esc를 누릅니다. Neovim에서는 메뉴를 종료하려면 Control+E를 누릅니다.
    • 제안을 무시하려면 평소처럼 계속 입력합니다.

여러 코드 제안 보기#

히스토리

VS Code의 코드 완성 제안의 경우 여러 제안 옵션을 사용할 수 있습니다. 사용 가능한 모든 제안을 보려면:

  1. 코드 완성 제안 위에 마우스를 올립니다.
  2. 대안을 스크롤합니다. 다음 중 하나를 사용합니다:
    • 키보드 단축키 사용:
      • Mac에서는 Option+[로 이전 제안을 보고, Option+]로 다음 제안을 봅니다.
      • Linux 및 Windows에서는 Alt+[로 이전 제안을 보고, Alt+]로 다음 제안을 봅니다.
    • 표시된 대화 상자에서 오른쪽 또는 왼쪽 화살표를 선택하여 다음 또는 이전 옵션을 봅니다.
  3. 원하는 제안을 적용하려면 Tab을 누릅니다.

코드 완성 및 생성#

코드 제안은 코드 완성 및 코드 생성을 사용합니다:

코드 완성 코드 생성
목적 현재 코드 줄을 완성하기 위한 제안을 제공합니다. 자연어 주석을 기반으로 새 코드를 생성합니다.
트리거 입력 시 일반적으로 짧은 지연 후 트리거됩니다. 특정 키워드가 포함된 주석을 작성한 후 Enter를 누를 때 트리거됩니다.
범위 현재 줄 또는 작은 코드 블록으로 제한됩니다. 컨텍스트를 기반으로 전체 메서드, 함수 또는 클래스를 생성할 수 있습니다.
정확도 소규모 작업 및 짧은 코드 블록에서 더 정확합니다. 더 큰 대형 언어 모델(LLM)이 사용되고, 요청에 추가 컨텍스트(예: 프로젝트에서 사용되는 라이브러리)가 전송되며, 지침이 LLM에 전달되기 때문에 복잡한 작업과 대규모 코드 블록에서 더 정확합니다.
사용 방법 코드 완성은 입력 중인 줄에 대한 완성을 자동으로 제안합니다. 주석을 작성하고 Enter를 누르거나 빈 함수 또는 메서드를 입력합니다.
사용 시점 하나 또는 몇 줄의 코드를 빠르게 완성할 때 사용합니다. 더 복잡한 작업, 대규모 코드베이스, 자연어 설명을 기반으로 처음부터 새 코드를 작성하려는 경우 또는 편집 중인 파일의 코드가 5줄 미만인 경우 코드 생성을 사용합니다.

코드 제안은 항상 이 두 기능을 모두 사용합니다. 코드 생성만 또는 코드 완성만 사용할 수 없습니다.

코드 완성과 코드 생성 비교 데모 보기.

코드 생성 모범 사례#

코드 생성에서 최상의 결과를 얻으려면:

  • 간결하게 유지하면서 최대한 구체적으로 작성합니다.
  • 생성하려는 결과(예: 함수)를 명시하고 달성하고자 하는 내용에 대한 세부 정보를 제공합니다.
  • 사용하려는 프레임워크 또는 라이브러리와 같은 추가 정보를 추가합니다.
  • 각 주석 뒤에 공백이나 새 줄을 추가합니다. 이 공백은 코드 생성기에 지침을 완료했음을 알립니다.
  • 코드 제안에서 사용할 수 있는 컨텍스트를 검토하고 조정합니다.

예를 들어, 몇 가지 특정 요구사항이 있는 Python 웹 서비스를 생성하려면 다음과 같이 작성할 수 있습니다:

# Create a web service using Tornado that allows a user to sign in, run a security scan, and review the scan results.
# Each action (sign in, run a scan, and review results) should be its own resource in the web service
...

AI는 비결정적이므로 동일한 입력으로 매번 동일한 제안을 받지 못할 수 있습니다. 품질 높은 코드를 생성하려면 명확하고 설명적이며 구체적인 작업을 작성하십시오.

사용 사례 및 모범 사례는 GitLab Duo 예시 문서를 참조합니다.

사용 가능한 언어 모델#

다양한 언어 모델이 코드 제안의 소스가 될 수 있습니다.

  • GitLab.com: GitLab이 모델을 호스팅하고 클라우드 기반 AI Gateway를 통해 연결합니다.
  • GitLab Self-Managed에는 두 가지 옵션이 있습니다:

결과의 정확성#

전반적인 생성 콘텐츠의 정확성을 계속 개선하고 있습니다. 하지만 코드 제안은 다음과 같은 제안을 생성할 수 있습니다:

  • 관련 없음.
  • 불완전함.
  • 파이프라인 실패 가능성이 높음.
  • 잠재적으로 안전하지 않음.
  • 공격적이거나 무감각함.

코드 제안을 사용할 때 코드 리뷰 모범 사례가 여전히 적용됩니다.

관련 항목#