코드 제안
참고: GitLab Duo 코드 제안은 GitLab 16.8 이상을 필요로 합니다. 이전의 GitLab 버전은 지원되지 않습니다.
- GitLab 16.1에서 Google Vertex AI Codey API 지원을 도입했습니다.
- GitLab 16.2에서 GitLab 네이티브 모델 지원 삭제했습니다.
- GitLab 16.3에서 코드 생성 지원을 도입했습니다.
- GitLab 16.7에서 일반적으로 사용 가능해졌습니다.
- 2024년 2월 15일부터 GitLab Duo Pro가 필요한 구독으로 변경되었습니다.
개발 중에 코드 제안을 통해 더 효율적으로 코드를 작성하세요.
GitLab Duo 코드 제안을 사용하면 다음과 같은 기능을 얻을 수 있습니다:
- 현재 입력중인 라인에 완성을 제안하는 코드 완성 기능.
- 자연어 코드 주석 블록을 기반으로 코드를 생성하는 코드 생성 기능.
# 여기에 더 입력
과 같은 주석을 작성한 후 Enter를 눌러 주석과 코드의 컨텍스트를 기반으로 코드를 생성합니다.
코드 제안 사용
전제 조건:
- 지원되는 IDE 확장 중 하나가 있어야 합니다.
- 귀하의 조직은 GitLab Duo Pro 애드온을 구매하고 귀하에게 좌석을 할당했어야 합니다.
- 자체 관리 GitLab의 경우, GitLab 16.8 이상이어야 하며 프록시 설정이 되어 있어야 합니다.
코드 제안을 사용하려면:
-
코드를 작성하세요. 입력하는 동안 제안이 표시됩니다. 코드 제안은 커서 위치에 따라 코드 스니펫을 제공하거나 현재 라인을 완성합니다.
-
자연어로 요구 사항을 설명하세요. 코드 제안은 제공된 컨텍스트를 기반으로 함수와 코드 스니펫을 생성합니다.
- 제안을 수락하려면 Tab을 누르세요. 제안을 거부하려면 Esc을 누르세요.
- 제안을 무시하려면 일반적으로 입력을 계속하세요.
AI는 비결정적이므로 동일한 입력으로 매번 동일한 제안을 받지 못할 수 있습니다. 품질 좋은 코드를 생성하려면 명확하고 기술적이며 구체적인 작업을 작성하세요.
최상의 실천 방법
코드 생성에서 최상의 결과를 얻으려면:
- 조밀하면서 명료하게 작성하세요.
- 원하는 결과물(예: 함수)을 명시하고 달성하려는 내용에 대한 세부 정보를 제공하세요.
- 사용하려는 프레임워크나 라이브러리와 같은 추가 정보를 추가하세요.
- 각 주석 뒤에 공백이나 새 줄을 추가하세요. 이 공백은 코드 생성기에게 작업을 완료했음을 알립니다.
예를 들어, 특정 요구 사항을 충족하는 Python 웹 서비스를 만들려면 다음과 같이 작성할 수 있습니다:
# Tornado를 사용하여 사용자가 로그인하고 보안 검사를 실행하며 검사 결과를 검토할 수 있는 웹 서비스를 생성하세요.
# 각 작업(로그인, 검사 실행, 결과 검토)은 웹 서비스의 각각의 리소스여야 합니다.
...
AI는 비결정적이므로 동일한 입력으로 매번 동일한 제안을 받지 못할 수 있습니다. 품질 좋은 코드를 생성하려면 명확하고 기술적이며 구체적인 작업을 작성하세요.
최상의 실천 방법 예시
사용 사례 및 최상의 실천 방법에 대한 자세한 내용은 GitLab Duo 예시 문서를 참조하세요.
응답 시간
- 코드 완성 제안은 일반적으로 지연 시간이 짧습니다.
- 코드 생성의 경우:
- 알고리즘 또는 큰 코드 블록은 10초 이상이 걸릴 수 있습니다.
- 코드 생성 응답 스트리밍은 VS Code에서 지원되어 평균 응답 시간이 더 빨라집니다. 다른 지원되는 IDE는 더 느린 응답 시간을 제공하며 생성된 코드를 하나의 블록으로 반환합니다.
결과의 정확성
전반적으로 생성된 콘텐츠의 정확성에 대해 계속 작업 중입니다. 그러나 코드 제안은 다음과 같은 제안을 생성할 수 있습니다:
- 관련 없는.
- 불완전한.
- 실패한 파이프라인 결과.
- 잠재적으로 불안전한.
- 모욕적이거나 예민한 내용.
코드 제안을 사용할 때는 코드 검토 최상의 실천 방법을 여전히 적용하세요.
점진적 향상
이 기능은 개발자 IDE에 대한 점진적인 향상으로 설계되었습니다. 코드 제안은 적절한 권장 사항이 적시에 사용자에게 제공된다면 완성을 제공합니다. 연결 문제 또는 모델 추론 실패가 발생하는 경우, 이 기능은 우아하게 약화됩니다. 코드 제안은 IDE에서 코드 작성을 방해하지 않습니다.
코드 제안 비활성화
코드 제안을 비활성화하려면 IDE 편집기 확장 프로그램에서 해당 기능을 비활성화하세요.
프로젝트용 코드 제안 비활성화
- GitLab 16.10에서 도입되었습니다. 이 기능은 Experiment입니다.
필수 조건:
- 프로젝트에서 적어도 유지자(Maintainer) 역할이 있어야 합니다.
특정 프로젝트에 대해 코드 제안을 비활성화할 수 있습니다.
이를 위해 프로젝트의 GraphQL API를 사용하여 프로젝트의 duoFeaturesEnabled
설정을 업데이트하세요.
이 설정에 대한 자세한 내용은 API 문서의 projectSettingsUpdate
뮤테이션을 참조하세요.
피드백
코드 제안에 대한 경험에 대한 피드백은 이슈 435783에서 제공하세요.