Code Suggestions
GitLab v19.2- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated LLM for Amazon Q: Amazon Q Developer Available on GitLab Duo with self-hosted models
Code Suggestions#
-
Tier: [Free](/19.2/subscriptions/gitlab_credits/#for-the-free-tier), Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Model information
-
LLM for Amazon Q: Amazon Q Developer
-
Available on GitLab Duo with self-hosted models
History
-
GitLab 16.1에서 Gemini Enterprise Agent Platform Codey API 지원 도입.
-
GitLab 16.2에서 GitLab 네이티브 모델 지원 제거.
-
GitLab 16.3에서 코드 생성 지원 도입.
-
GitLab 16.7에서 일반 제공(GA).
-
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 Core 사용자의 Code Suggestions 액세스가 변경됨. GitLab 19.0부터 GitLab Duo Agent Platform의 일부로 사용 가능.
Code Suggestions를 사용할 수 있는 대상:
-
GitLab Duo Agent Platform. 청구는 사용량 기반입니다.
-
GitLab Duo Pro 또는 Enterprise, GitLab Duo with Amazon Q. 청구는 애드온에 따라 다릅니다.
GitLab Duo Code Suggestions를 사용하면 개발하는 동안 생성형 AI가 코드를 제안하여 더 효율적으로 코드를 작성할 수 있습니다.
사전 요구 사항#
-
GitLab Duo Core를 사용하는 경우 IDE 기능을 켜세요.
-
GitLab 프로젝트가 있어야 합니다.
GitLab Duo는 GitLab 17.2 이상이 필요합니다. GitLab Duo Core 액세스 및 최상의 사용자 경험과 결과를 위해 GitLab 18.0 이상으로 업그레이드하세요. 이전 버전도 계속 작동할 수 있지만, 경험이 저하될 수 있습니다.
Code Suggestions 사용#
Code Suggestions를 사용하려면:
IDE에서 프로젝트를 여세요. 로컬 프로젝트에는 GitLab의 리포지터리를 가리키는 Git 원격이 구성되어 있어야 합니다.
코드를 작성하세요. 입력하는 동안 제안이 표시됩니다. Code Suggestions는 커서 위치에 따라 코드 스니펫을 제공하거나 현재 줄을 완성합니다.
자연어로 요구 사항을 설명하세요. Code Suggestions는 제공된 컨텍스트를 바탕으로 함수와 코드 스니펫을 생성합니다.
제안을 받으면 다음 중 하나를 수행할 수 있습니다:
제안을 수락하려면 Tab 키를 누르세요.
-
부분 제안을 수락하려면 Control+오른쪽 화살표 또는 Command+오른쪽 화살표를 누르세요.
-
제안을 거부하려면 Esc 키를 누르세요. Neovim에서는 Control+E를 눌러 메뉴를 닫습니다.
-
제안을 무시하려면 평소처럼 계속 입력하세요.
여러 코드 제안 보기#
History
- GitLab 17.1에서 도입.
VS Code에서 코드 완성 제안의 경우, 여러 제안 옵션이 있을 수 있습니다. 사용 가능한 모든 제안을 보려면:
-
코드 완성 제안 위에 마우스를 올려놓으세요.
-
대안들을 스크롤하세요. 다음 중 하나를 선택하세요:
키보드 단축키를 사용하세요:
Mac에서는 Option+[를 눌러 이전 제안을 보고, Option+]를 눌러 다음 제안을 봅니다.
-
Linux 및 Windows에서는 Alt+[를 눌러 이전 제안을 보고, Alt+]를 눌러 다음 제안을 봅니다.
-
표시된 대화 상자에서 오른쪽 또는 왼쪽 화살표를 선택하여 다음 또는 이전 옵션을 확인하세요.
-
Tab 키를 눌러 원하는 제안을 적용하세요.
코드 완성과 코드 생성#
Code Suggestions는 코드 완성과 코드 생성을 사용합니다:
| 코드 완성 | 코드 생성 | |
|---|---|---|
| 목적 | 현재 코드 줄을 완성하는 제안을 제공합니다. | 자연어 주석을 기반으로 새 코드를 생성합니다. |
| 트리거 | 입력 시 일반적으로 짧은 지연과 함께 트리거됩니다. | 특정 키워드를 포함한 주석 작성 후 Enter를 누르면 트리거됩니다. |
| 범위 | 현재 줄 또는 작은 코드 블록으로 제한됩니다. | 컨텍스트를 기반으로 전체 메서드, 함수 또는 클래스도 생성할 수 있습니다. |
| 정확도 | 작은 작업과 짧은 코드 블록에 더 정확합니다. | 더 큰 대형 언어 모델(LLM)이 사용되고, 요청에 추가 컨텍스트(예: 프로젝트에서 사용하는 라이브러리)가 전송되며, 지시 사항이 LLM에 전달되기 때문에 복잡한 작업과 큰 코드 블록에 더 정확합니다. |
| 사용 방법 | 코드 완성은 입력 중인 줄에 자동으로 완성 제안을 합니다. | 주석을 작성하고 Enter를 누르거나, 빈 함수나 메서드를 입력합니다. |
| 사용 시기 | 한두 줄의 코드를 빠르게 완성할 때 사용합니다. | 더 복잡한 작업, 더 큰 코드베이스, 자연어 설명을 바탕으로 새 코드를 처음부터 작성하고 싶을 때, 또는 편집 중인 파일이 다섯 줄 미만일 때 사용합니다. |
Code Suggestions는 항상 이 두 기능을 모두 사용합니다. 코드 생성이나 코드 완성만 단독으로 사용할 수는 없습니다.
코드 생성 모범 사례#
코드 생성에서 최상의 결과를 얻으려면:
-
간결하게 유지하면서 가능한 한 구체적으로 작성하세요.
-
생성하려는 결과물(예: 함수)을 명시하고 달성하려는 목표에 대한 세부 사항을 제공하세요.
-
사용하려는 프레임워크나 라이브러리 등의 추가 정보를 추가하세요.
-
각 주석 뒤에 공백이나 새 줄을 추가하세요. 이 공백은 코드 생성기에게 지시 사항이 완료되었음을 알립니다.
-
Code Suggestions에서 사용 가능한 컨텍스트를 검토하고 조정하세요.
예를 들어, 특정 요구 사항이 있는 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 예시 문서를 참고하세요.
사용 가능한 언어 모델#
다양한 언어 모델이 Code Suggestions의 소스가 될 수 있습니다.
-
GitLab.com에서: GitLab이 모델을 호스팅하고 클라우드 기반 AI Gateway를 통해 연결합니다.
-
GitLab Self-Managed에서는 두 가지 옵션이 있습니다:
GitLab이 모델을 호스팅하고 클라우드 기반 AI Gateway를 통해 연결할 수 있습니다.
- 조직에서 셀프 호스팅 모델을 사용할 수 있으며, 이는 AI Gateway와 언어 모델을 직접 호스팅하는 것을 의미합니다. GitLab 관리 모델, 다른 지원되는 언어 모델 또는 호환 가능한 자체 모델을 사용할 수 있습니다.
결과 정확도#
전반적으로 생성된 콘텐츠의 정확도를 계속 개선하고 있습니다. 그러나 Code Suggestions는 다음과 같은 제안을 생성할 수 있습니다:
-
관련 없는 제안.
-
불완전한 제안.
-
파이프라인 실패를 일으킬 가능성이 있는 제안.
-
잠재적으로 안전하지 않은 제안.
-
불쾌하거나 부적절한 제안.
Code Suggestions를 사용할 때도 코드 리뷰 모범 사례는 여전히 적용됩니다.