코드 제안
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
코드 제안은 다음에서 사용할 수 있습니다: 생성형 AI를 사용하여 개발 중에 코드를 제안함으로써 GitLab Duo 코드 제안을 사용하여 더 효율적으로 코드를 작성하십시오. GitLab Duo는 GitLab 17.2 이상이 필요합니다.
모델 정보
- 기본 LLM
- Amazon Q용 LLM: Amazon Q Developer
- 자체 호스팅 모델을 사용하는 GitLab Duo에서 사용 가능
히스토리
- 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 티어에서 사용 가능.
코드 제안은 다음에서 사용할 수 있습니다:
- GitLab Duo Agent Platform. 청구는 사용량 기반입니다.
- GitLab Duo Core, Pro, Enterprise, GitLab Duo with Amazon Q. 청구는 애드온을 기준으로 합니다.
생성형 AI를 사용하여 개발 중에 코드를 제안함으로써 GitLab Duo 코드 제안을 사용하여 더 효율적으로 코드를 작성하십시오.
전제 조건#
코드 제안을 사용하려면:
- GitLab Duo Core가 있는 경우 IDE 기능을 켭니다.
- 코드 제안을 설정합니다.
GitLab Duo는 GitLab 17.2 이상이 필요합니다. GitLab Duo Core 액세스와 최상의 사용자 경험 및 결과를 위해 GitLab 18.0 이상으로 업그레이드하십시오. 이전 버전은 계속 작동할 수 있지만 경험이 저하될 수 있습니다.
코드 제안 사용#
코드 제안을 사용하려면:
-
지원되는 IDE에서 Git 프로젝트를 엽니다.
-
git remote add를 사용하여 프로젝트를 로컬 저장소의 원격으로 추가합니다. -
숨겨진
.git/폴더를 포함한 프로젝트 디렉토리를 IDE 작업 공간 또는 프로젝트에 추가합니다. -
코드를 작성합니다. 입력하는 동안 제안이 표시됩니다. 코드 제안은 커서 위치에 따라 코드 스니펫을 제공하거나 현재 줄을 완성합니다.
-
자연어로 요구사항을 설명합니다. 코드 제안은 제공된 컨텍스트를 기반으로 함수와 코드 스니펫을 생성합니다.
-
제안을 받으면 다음 중 하나를 수행할 수 있습니다:
- 제안을 수락하려면 Tab을 누릅니다.
- 일부 제안을 수락하려면 Control+오른쪽 화살표 또는 Command+오른쪽 화살표 중 하나를 누릅니다.
- 제안을 거부하려면 Esc를 누릅니다. Neovim에서는 메뉴를 종료하려면 Control+E를 누릅니다.
- 제안을 무시하려면 평소처럼 계속 입력합니다.
여러 코드 제안 보기#
히스토리
- GitLab 17.1에서 도입.
VS Code의 코드 완성 제안의 경우 여러 제안 옵션을 사용할 수 있습니다. 사용 가능한 모든 제안을 보려면:
- 코드 완성 제안 위에 마우스를 올립니다.
- 대안을 스크롤합니다. 다음 중 하나를 사용합니다:
- 키보드 단축키 사용:
- Mac에서는 Option+[로 이전 제안을 보고, Option+]로 다음 제안을 봅니다.
- Linux 및 Windows에서는 Alt+[로 이전 제안을 보고, Alt+]로 다음 제안을 봅니다.
- 표시된 대화 상자에서 오른쪽 또는 왼쪽 화살표를 선택하여 다음 또는 이전 옵션을 봅니다.
- 키보드 단축키 사용:
- 원하는 제안을 적용하려면 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에는 두 가지 옵션이 있습니다:
- GitLab이 모델을 호스팅하고 클라우드 기반 AI Gateway를 통해 연결할 수 있습니다.
- 조직이 자체 호스팅 모델을 사용할 수 있습니다. 이는 AI Gateway와 언어 모델을 직접 호스팅하는 것을 의미합니다. GitLab 관리 모델, 지원되는 다른 언어 모델을 사용하거나 호환 가능한 모델을 직접 가져올 수 있습니다.
결과의 정확성#
전반적인 생성 콘텐츠의 정확성을 계속 개선하고 있습니다. 하지만 코드 제안은 다음과 같은 제안을 생성할 수 있습니다:
- 관련 없음.
- 불완전함.
- 파이프라인 실패 가능성이 높음.
- 잠재적으로 안전하지 않음.
- 공격적이거나 무감각함.
코드 제안을 사용할 때 코드 리뷰 모범 사례가 여전히 적용됩니다.
