- GitLab에 대해 문의하기
- 특정 문제에 대해 문의하기
- 특정 에픽에 대해 질문하기
- 특정 병합 요청에 대해 질문하기
- 선택한 코드 설명하기
- 코드에 대해 질문하거나 생성하기
- 후속 질문하기
- 오류에 대해 질문하기
- IDE에서 코드 리팩토링
- IDE에서 코드 수정
- IDE에서 테스트 작성하기
- CI/CD에 대한 문의
- 실패한 CI/CD 작업을 루트 원인 분석으로 문제 해결하기
- 취약성 설명하기
- 대화 삭제 또는 재설정하기
- 지원되는 슬래시 명령어
GitLab Duo Chat에 문의하기
GitLab Duo Chat은 다양한 질문에 도움을 줄 수 있습니다. 다음 예시는 GitLab Duo Chat이 가장 유용할 수 있는 영역을 나타냅니다.
추가적인 실제 예시는 GitLab Duo 사용 사례를 참조하세요.
GitLab에 대해 문의하기
GitLab Dedicated: GitLab Duo Pro 또는 Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI, Web IDE, VS Code 및 JetBrains IDEs
LLMs: Anthropic Claude 3.5 Sonnet, Vertex AI Search
- Introduced for GitLab.com in GitLab 16.0.
-
Introduced ability to ask doc-related questions on self-managed in GitLab 17.0 with a flag named
ai_gateway_docs_search
. Enabled by default. - Generally available and feature flag removed in GitLab 17.1.
GitLab에 대해 작동 방식에 대해 질문할 수 있습니다. 예를 들어:
사본(fork)의 개념을 간결하게 설명해 주세요.
사용자의 비밀번호를 재설정하는 방법에 대한 단계별 안내를 제공해 주세요.
GitLab Duo Chat은 GitLab 문서를 소스로 사용합니다. Chat이 문서와 지속적으로 업데이트되도록 하기 위해, 지식 기반은 매일 업데이트됩니다.
- GitLab.com에서는 최신 버전의 문서가 사용됩니다.
- Self-managed 및 GitLab Dedicated에서는 인스턴스 버전의 문서가 사용됩니다.
특정 문제에 대해 문의하기
GitLab Dedicated: GitLab Duo Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI, Web IDE, VS Code 및 JetBrains IDEs
LLM: Anthropic Claude 3 Haiku
- Introduced for GitLab.com in GitLab 16.0.
- Introduced for self-managed and GitLab Dedicated in GitLab 16.8.
특정 GitLab 문제에 대해 질문할 수 있습니다. 예를 들어:
이 링크에서 확인된 문제의 요약을 생성하세요: <link to your issue>
- GitLab에서 문제를 보고 있을 때,
현재 문제에 대한 간결한 요약을 생성하세요.
라고 질문할 수 있습니다. <link to your issue>의 설명을 개선하여 독자가 해결할 가치와 문제를 이해할 수 있도록 하려면 어떻게 해야 합니까?
GitLab Duo Chat이 문제 및 에픽과 함께 생산성을 향상시키는 방법에 대한 팁은 GitLab Duo Chat으로 생산성 향상을 참조하세요.
특정 에픽에 대해 질문하기
GitLab Dedicated: GitLab Duo Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI, Web IDE, VS Code, JetBrains IDEs
LLM: Anthropic Claude 3 Haiku
- Introduced for GitLab.com in GitLab 16.3.
- Introduced for self-managed and GitLab Dedicated in GitLab 16.8.
특정 GitLab 에픽에 대해 질문할 수 있습니다. 예를 들어:
Generate a summary for the epic identified via this link: <link to your epic>
- GitLab에서 에픽을 보고 있을 때,
Generate a concise summary of the opened epic.
이라고 질문할 수 있습니다. -
<link to your epic>
에서 댓글 작성자가 제기한 고유한 사용 사례는 무엇인가요?
특정 병합 요청에 대해 질문하기
GitLab Dedicated: GitLab Duo Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI
LLM: Anthropic Claude 3.5 Sonnet
- Introduced in GitLab 17.5.
보고 있는 병합 요청에 대해 GitLab에 질문할 수 있습니다. 다음과 같은 것에 대해 질문할 수 있습니다:
- 제목 또는 설명.
- 댓글 및 스레드.
- Changes 탭의 내용.
- 레이블, 소스 브랜치, 작성자, 마일스톤 등과 같은 메타데이터.
병합 요청을 열고 Chat을 열어 질문을 입력하세요. 예:
.vue 파일이 변경된 이유는 무엇인가요?
리뷰어들이 이 병합 요청에 대해 무엇이라고 말하나요?
이 병합 요청을 어떻게 개선할 수 있나요?
어떤 파일과 변경 사항을 먼저 검토해야 하나요?
Chat은 파이프라인이나 커밋에 대해 알지 못합니다. 그러나 root cause analysis를 사용하여 파이프라인의 작업을 문제 해결할 수 있습니다.
선택한 코드 설명하기
GitLab Dedicated: GitLab Duo Pro 또는 Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI, Web IDE, VS Code, JetBrains IDEs
LLM: Anthropic Claude 3.5 Sonnet
- Introduced for GitLab.com in GitLab 16.7.
- Introduced for self-managed and GitLab Dedicated in GitLab 16.8.
GitLab Duo Chat에 선택한 코드를 설명하도록 요청할 수 있습니다:
추가 지침을 추가해서 고려될 수 있습니다. 예:
/explain the performance
/explain focus on the algorithm
/explain the performance gains or losses using this code
-
/explain the object inheritance
(클래스, 객체 지향) -
/explain why a static variable is used here
(C++) -
/explain how this function would cause a segmentation fault
(C) -
/explain how concurrency works in this context
(Go) -
/explain how the request reaches the client
(REST API, 데이터베이스)
자세한 내용은 VS Code에서 GitLab Duo Chat 사용하기를 참조하세요.
GitLab UI에서 코드는 다음에서도 설명할 수 있습니다:
코드에 대해 질문하거나 생성하기
GitLab Dedicated: GitLab Duo Pro 또는 Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI, Web IDE, VS Code, JetBrains IDEs
LLM: Anthropic Claude 3.5 Sonnet
코드에 대해 질문하려면 그 코드를 Duo Chat 창에 붙여넣기만 하면 됩니다. 예를 들어:
이 Ruby 코드에 대한 명확한 설명을 제공하세요: def sum(a, b) a + b end.
이 코드가 무엇을 하는지 및 어떻게 작동하는지 설명하세요.
코드 생성을 요청할 수도 있습니다. 예를 들어:
호출될 때 'Hello, World!'를 출력하는 Ruby 함수를 작성하세요.
두 플레이어 Tic-Tac-Toe 게임을 시뮬레이션하는 JavaScript 프로그램을 개발하세요. 게임 로직과 사용자 인터페이스를 제공하세요.
Python에서 IPv4 및 IPv6 주소를 파싱하는 정규 표현식을 작성하세요.
Java에서 syslog 로그 파일을 파싱하는 코드를 생성하세요. 가능한 경우 정규 표현식을 사용하고 결과를 해시맵에 저장하세요.
C++에서 스레드와 공유 메모리를 사용하는 생산자-소비자 예제를 만드세요. 가능한 경우 원자 잠금을 사용하세요.
높은 성능의 gRPC 호출을 위한 Rust 코드를 생성하세요. 서버와 클라이언트에 대한 소스 코드 예제를 제공하세요.
후속 질문하기
주제나 작업에 대해 더 깊이 파고들기 위해 후속 질문을 할 수 있습니다.
이것은 더 자세하고 정확한 응답을 얻는 데 도움을 주며, 추가 설명, 정교함 또는 추가 지원이 필요할 때 유용합니다.
질문 호출될 때 'Hello, World!'를 출력하는 Ruby 함수를 작성하세요.
의 후속 질문은 다음과 같을 수 있습니다:
이 Ruby 함수를 일반적인 Ruby 환경(예: 커맨드 라인)에서 호출하고 실행하는 방법도 설명해 주실 수 있나요?
질문 C# 프로젝트를 시작하는 방법은?
의 후속 질문은 다음과 같을 수 있습니다:
C#에 대한 .gitignore 및 .gitlab-ci.yml 파일을 추가하는 방법도 설명해 주실 수 있나요?
오류에 대해 질문하기
소스 코드를 컴파일해야 하는 프로그래밍 언어는 이해하기 어려운 오류 메시지를 나타낼 수 있습니다. 마찬가지로, 스크립트나 웹 애플리케이션도 스택 트레이스를 표시할 수 있습니다. GitLab Duo Chat에 다음과 같이 복사한 오류 메시지를 접두사로 추가하여 질문할 수 있습니다: 이 오류 메시지를 설명해 주세요:
. 특정 컨텍스트(프로그래밍 언어 등)를 추가하세요.
Java에서 이 오류 메시지를 설명하세요: Int와 system은 타입으로 확인할 수 없습니다.
이 C 함수가 세그멘테이션 오류를 일으킬 수 있는 경우를 설명하세요: sqlite3_prepare_v2()
이 오류를 발생시킬 수 있는 요인을 설명하세요: Python에서 ValueError: invalid literal for int()
VueJS에서 "this"가 정의되지 않는 이유는 무엇인가요? 일반적인 오류 사례를 제공하고 이를 피하는 방법을 설명하세요.
Ruby on Rails 스택트레이스를 디버깅하는 방법은? 일반적인 전략과 예외를 공유하세요.
IDE에서 코드 리팩토링
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: Web IDE, VS Code, JetBrains IDEs
LLM: Anthropic Claude 3.5 Sonnet
GitLab Duo Chat에 선택한 코드를 리팩토링 해달라고 요청할 수 있습니다:
- IDE에서 코드를 선택합니다.
- Duo Chat에
/refactor
를 입력합니다.
고려할 추가 지침을 포함할 수 있습니다. 예:
- 특정 코딩 패턴 사용, 예:
/refactor with ActiveRecord
또는/refactor into a class providing static functions
. - 특정 라이브러리 사용, 예:
/refactor using mysql
. - 특정 함수/알고리즘 사용, 예:
/refactor into a stringstream with multiple lines
in C++. - 다른 프로그래밍 언어로 리팩토링, 예:
/refactor to TypeScript
. - 성능에 집중, 예:
/refactor improving performance
. - 잠재적인 취약점에 집중, 예:
/refactor avoiding memory leaks and exploits
.
IDE에서 코드 수정
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: Web IDE, VS Code, JetBrains IDEs
LLM: Anthropic Claude 3.5 Sonnet
- 도입됨 for GitLab.com, self-managed and GitLab Dedicated in GitLab 17.3.
GitLab Duo Chat에 선택한 코드를 수정해달라고 요청할 수 있습니다:
- IDE에서 코드를 선택합니다.
- Duo Chat에
/fix
를 입력합니다.
고려할 추가 지침을 포함할 수 있습니다. 예:
- 문법 및 오타에 집중, 예:
/fix grammar mistakes and typos
. - 구체적인 알고리즘 또는 문제 설명에 집중, 예:
/fix duplicate database inserts
또는/fix race conditions
. - 직접적으로 보이지 않는 잠재적 버그에 집중, 예:
/fix potential bugs
. - 코드 성능 문제에 집중, 예:
/fix performance problems
. - 코드가 컴파일되지 않을 경우 빌드 수정, 예:
/fix the build
.
IDE에서 테스트 작성하기
GitLab Dedicated: GitLab Duo Pro 또는 Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: Web IDE, VS Code, JetBrains IDEs
LLM: Anthropic Claude 3.5 Sonnet
- GitLab.com에 도입됨 - GitLab 16.7에서.
- Self-managed 및 GitLab Dedicated에 도입됨 - GitLab 16.8에서.
선택한 코드에 대해 테스트를 생성하도록 GitLab Duo Chat에 요청할 수 있습니다:
- IDE에서 코드를 선택합니다.
- Duo Chat에서
/tests
를 입력합니다.
추가 지침을 포함할 수 있습니다. 예를 들어:
- 특정 테스트 프레임워크를 사용, 예:
/tests using the Boost.test framework
(C++) 또는/tests using Jest
(JavaScript). - 극단적인 테스트 사례에 집중, 예:
/tests focus on extreme cases, force regression testing
. - 성능에 집중, 예:
/tests focus on performance
. - 회귀 및 잠재적 취약점에 집중, 예:
/tests focus on regressions and potential exploits
.
자세한 내용은 VS Code에서 GitLab Duo Chat 사용을 참조하세요.
CI/CD에 대한 문의
GitLab Dedicated: GitLab Duo Pro 또는 Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI, Web IDE, VS Code, JetBrains IDEs
LLM: Anthropic Claude 3.5 Sonnet
- GitLab.com에 도입됨 - GitLab 16.7에서.
- Self-managed 및 GitLab Dedicated에 도입됨 - GitLab 16.8에서.
- LLM 업데이트 - GitLab 17.2에서 Claude 2.1에서 Claude 3 Sonnet으로.
- LLM 업데이트 - GitLab 17.2에서 Claude 3 Sonnet에서 Claude 3.5 Sonnet으로.
GitLab Duo Chat에 CI/CD 구성을 생성하도록 요청할 수 있습니다:
Ruby on Rails 애플리케이션을 위한 테스트 및 빌드를 위한 .gitlab-ci.yml 구성 파일 생성.
Python 애플리케이션을 위한 빌드 및 린팅용 CI/CD 구성 생성.
Rust 코드를 빌드하고 테스트하기 위한 CI/CD 구성 생성.
C++를 위한 CI/CD 구성 생성. gcc를 컴파일러로 사용하고, cmake를 빌드 도구로 사용.
VueJS를 위한 CI/CD 구성 생성. npm을 사용하고, SAST 보안 스캔 추가.
Java에 최적화된 보안 스캔 파이프라인 구성 생성.
또한, 특정 작업 오류에 대해 설명하도록 요청할 수 있습니다. 오류 메시지를 복사하여 붙여넣고 Please explain this CI/CD job error message, in the context of <language>:
를 접두어로 붙입니다:
Please explain this CI/CD job error message in the context of a Go project: build.sh: line 14: go command not found
또는 GitLab Duo Root Cause Analysis를 사용하여 CI/CD 작업 실패 문제 해결을 할 수 있습니다.
실패한 CI/CD 작업을 루트 원인 분석으로 문제 해결하기
GitLab Dedicated: GitLab Duo Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI
LLM: Anthropic Claude 3.5 Sonnet
- GitLab 16.2에서 실험으로 도입됨.
- GitLab 17.3에서 일반적으로 사용 가능하며 GitLab Duo Chat으로 이동되었습니다.
GitLab Duo Chat에 요청하여 로그를 분석하여 CI/CD 작업 실패의 루트 원인을 확인할 수 있습니다.
Prerequisites:
- CI/CD 작업을 볼 수 있는 권한이 있어야 합니다.
- 유료 GitLab Duo Enterprise 자리가 있어야 합니다.
실패한 CI/CD 작업을 문제 해결하려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Build > Jobs를 선택합니다.
- 실패한 CI/CD 작업을 선택합니다.
-
작업 로그 페이지에서 아래 중 하나를 수행합니다:
- 작업 로그 아래에서 Troubleshoot을 선택합니다.
- GitLab Duo Chat을 열고
/troubleshoot
를 입력합니다.
실패 원인 분석 및 수정 예가 표시됩니다.
취약성 설명하기
GitLab Dedicated: GitLab Duo Enterprise.
Offering: GitLab.com, Self-managed, GitLab Dedicated
Editors: GitLab UI
LLM: Anthropic Claude 3 Haiku
SAST 취약성 보고서를 보고 있을 때 GitLab Duo Chat에 취약성을 설명해 달라고 요청할 수 있습니다.
자세한 정보는 취약성 설명하기를 참조하세요.
대화 삭제 또는 재설정하기
모든 대화를 영구적으로 삭제하고 채팅 창을 지우려면:
- 텍스트 상자에
/clear
를 입력하고 Send를 선택합니다.
이전 대화를 채팅 창에 표시하되 새 대화를 시작하려면:
- 텍스트 상자에
/reset
를 입력하고 Send를 선택합니다.
두 경우 모두 새로운 질문을 할 때 대화 기록이 고려되지 않습니다.
삭제하거나 재설정하면 Duo Chat이 관련 없는 대화에 혼란스러워하지 않기 때문에 맥락을 전환할 때 답변 품질이 향상될 수 있습니다.
지원되는 슬래시 명령어
Duo Chat에는 각 명령어 앞에 슬래시(/
)가 붙은 지원되는 명령어 목록이 있습니다.
다음 명령어를 사용하여 특정 작업을 신속하게 수행할 수 있습니다.
Command | Purpose |
---|---|
/clear | 모든 대화를 영구적으로 삭제하고 채팅 창을 지우기 |
/reset | 새로운 대화를 시작하되 이전 대화를 채팅 창에 표시하기 |
/tests | 테스트 작성하기 |
/explain | 코드 설명하기 |
/vulnerability_explain | 현재 취약성 설명하기 |
/refactor | 코드 리팩터링하기 |
/troubleshoot | 실패한 CI/CD 작업을 루트 원인 분석으로 문제 해결하기 |
/fix | 코드 수정하기 |
/help | Duo Chat 작동 방식에 대해 더 알아보기. |