코드 제안

Tier: 프리미엄, 얼티밋 Offering: GitLab.com, 자체 관리, GitLab Dedicated. GitLab Duo Pro가 필요합니다.

참고: GitLab Duo 코드 제안은 GitLab 16.8 이상을 필요로 합니다. 이전의 GitLab 버전은 지원되지 않습니다.

개발 중에 코드 제안을 통해 더 효율적으로 코드를 작성하세요.

GitLab Duo 코드 제안을 사용하면 다음과 같은 기능을 얻을 수 있습니다:

  • 현재 입력중인 라인에 완성을 제안하는 코드 완성 기능.
  • 자연어 코드 주석 블록을 기반으로 코드를 생성하는 코드 생성 기능. # 여기에 더 입력과 같은 주석을 작성한 후 Enter를 눌러 주석과 코드의 컨텍스트를 기반으로 코드를 생성합니다.

클릭하여 데모 보기.

코드 제안 사용

전제 조건:

코드 제안을 사용하려면:

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

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

  3. 제안을 수락하려면 Tab을 누르세요. 제안을 거부하려면 Esc을 누르세요.
  4. 제안을 무시하려면 일반적으로 입력을 계속하세요.

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

최상의 실천 방법

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

  • 조밀하면서 명료하게 작성하세요.
  • 원하는 결과물(예: 함수)을 명시하고 달성하려는 내용에 대한 세부 정보를 제공하세요.
  • 사용하려는 프레임워크나 라이브러리와 같은 추가 정보를 추가하세요.
  • 각 주석 뒤에 공백이나 새 줄을 추가하세요. 이 공백은 코드 생성기에게 작업을 완료했음을 알립니다.

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

# Tornado를 사용하여 사용자가 로그인하고 보안 검사를 실행하며 검사 결과를 검토할 수 있는 웹 서비스를 생성하세요.
# 각 작업(로그인, 검사 실행, 결과 검토)은 웹 서비스의 각각의 리소스여야 합니다.
...

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

최상의 실천 방법 예시

사용 사례 및 최상의 실천 방법에 대한 자세한 내용은 GitLab Duo 예시 문서를 참조하세요.

응답 시간

  • 코드 완성 제안은 일반적으로 지연 시간이 짧습니다.
  • 코드 생성의 경우:
    • 알고리즘 또는 큰 코드 블록은 10초 이상이 걸릴 수 있습니다.
    • 코드 생성 응답 스트리밍은 VS Code에서 지원되어 평균 응답 시간이 더 빨라집니다. 다른 지원되는 IDE는 더 느린 응답 시간을 제공하며 생성된 코드를 하나의 블록으로 반환합니다.

결과의 정확성

전반적으로 생성된 콘텐츠의 정확성에 대해 계속 작업 중입니다. 그러나 코드 제안은 다음과 같은 제안을 생성할 수 있습니다:

  • 관련 없는.
  • 불완전한.
  • 실패한 파이프라인 결과.
  • 잠재적으로 불안전한.
  • 모욕적이거나 예민한 내용.

코드 제안을 사용할 때는 코드 검토 최상의 실천 방법을 여전히 적용하세요.

점진적 향상

이 기능은 개발자 IDE에 대한 점진적인 향상으로 설계되었습니다. 코드 제안은 적절한 권장 사항이 적시에 사용자에게 제공된다면 완성을 제공합니다. 연결 문제 또는 모델 추론 실패가 발생하는 경우, 이 기능은 우아하게 약화됩니다. 코드 제안은 IDE에서 코드 작성을 방해하지 않습니다.

코드 제안 비활성화

코드 제안을 비활성화하려면 IDE 편집기 확장 프로그램에서 해당 기능을 비활성화하세요.

프로젝트용 코드 제안 비활성화

Status: Experiment

필수 조건:

  • 프로젝트에서 적어도 유지자(Maintainer) 역할이 있어야 합니다.

특정 프로젝트에 대해 코드 제안을 비활성화할 수 있습니다.

이를 위해 프로젝트의 GraphQL API를 사용하여 프로젝트의 duoFeaturesEnabled 설정을 업데이트하세요.

이 설정에 대한 자세한 내용은 API 문서의 projectSettingsUpdate 뮤테이션을 참조하세요.

피드백

코드 제안에 대한 경험에 대한 피드백은 이슈 435783에서 제공하세요.