- GitLab에 관해 문의하기
- 특정 문제에 대해 문의하기
- 특정 에픽에 대해 문의하기
- 특정 병합 요청에 대해 문의하기
- 선택한 코드 설명
- 코드에 대해 질문하거나 생성합니다
- 후속 질문하기
- 오류에 대해 질문하기
- IDE에서 코드 리팩터링
- IDE에서 코드 수정하기
- IDE에서 테스트 작성하기
- CI/CD에 대해 문의하기
- 실패한 CI/CD 작업에 대한 원인 분석을 통한 문제 해결
- 취약점 설명
- 대화 히스토리 삭제 또는 재설정
- 지원되는 슬래시 명령
GitLab Duo 채팅 문의
GitLab Duo 채팅은 다양한 질문에서 도움을 줄 수 있습니다. 다음 예시는 GitLab Duo 채팅이 가장 유용한 분야를 나타내고 있습니다.
추가적인 실제 예시는 GitLab Duo 사용 사례를 참조하세요.
GitLab에 관해 문의하기
- 16.0에서 GitLab.com에 소개되었습니다.(소개됨)
- 17.0에서 자체 관리에서 ‘ai_gateway_docs_search’라는 플래그로 문서 관련 질문하기 기능이 추가되었습니다.(소개됨) 기본적으로 활성화됨.
- 17.1에서 일반 사용 가능으로 변경되고 플래그가 제거되었습니다.(일반 사용 가능 및 플래그 제거)
GitLab가 작동하는 방식에 관해 질문할 수 있습니다. 다음과 같은 것들입니다:
'fork'의 개념을 간결하게 설명해주세요.
사용자 비밀번호를 재설정하는 단계별 지침을 제공해주세요.
GitLab Duo 채팅은 GitLab 문서를 소스로 사용합니다. 채팅을 문서와 최신 상태로 유지하기 위해, 지식 베이스가 매일 업데이트됩니다.
- GitLab.com에서는 가장 최신 버전의 문서가 사용됩니다.
- 자체 관리 및 GitLab 전용의 경우, 해당 인스턴스 버전의 문서가 사용됩니다.
특정 문제에 대해 문의하기
특정 GitLab 문제에 관해 물어볼 수 있습니다. 예를 들어:
이 링크를 통해 식별된 문제에 대한 요약을 생성해 주세요: <링크>
- GitLab에서 문제를 보고 있을 때,
현재 문제에 대한 간결한 요약을 생성해 주세요.
-
<링크>
의 설명을 개선하여 독자가 해결해야 할 가치와 문제를 이해할 수 있도록 하는 방법은 무엇인가요?
이슈와 에픽을 효과적으로 사용하여 생산성을 높일 수 있는 GitLab Duo 채팅의 유용한 팁은 GitLab Duo 채팅으로 생산성 향상하기를 참조하세요.
특정 에픽에 대해 문의하기
특정 GitLab 에픽에 관해 물어볼 수 있습니다. 예를 들어:
이 링크를 통해 식별된 에픽에 대한 요약을 생성해 주세요: <링크>
- GitLab에서 에픽을 보고 있을 때,
열린 에픽에 대한 간결한 요약을 생성해 주세요.
-
<링크>
에서 댓글 작성자들이 제기한 독특한 사용 사례는 무엇인가요?
특정 병합 요청에 대해 문의하기
- 17.5에서 소개되었습니다.(소개됨)
보고 있는 병합 요청에 관해 GitLab에 물어볼 수 있습니다. 제목이나 설명, 댓글 및 쓰레드, 변경 탭의 내용, 레이블, 소스 브랜치, 작성자, 마일스톤 등에 관해 물어볼 수 있습니다.
병합 요청 중에 채팅을 열고 질문을 입력하세요. 예를 들면:
.vue 파일이 왜 변경되었나요?
리뷰어들이 이 병합 요청에 대해 어떤 말을 하고 있나요?
이 병합 요청을 어떻게 개선할 수 있을까요?
어떤 파일과 변경 사항을 먼저 검토해야 하나요?
채팅은 파이프라인이나 커밋에 대해서는 알지 못합니다. 하지만 원인 분석으로 파이프라인의 작업에 대한 문제 해결이 가능합니다.
선택한 코드 설명
GitLab Duo Chat에 선택한 코드를 설명하라고 요청할 수 있습니다:
고려해야 할 추가 지침을 추가할 수도 있습니다. 예를 들어:
/성능 설명
/알고리즘에 초점을 맞춰 설명
/이 코드를 사용하여 성능 향상 또는 저하를 설명
-
/객체 상속 설명
(클래스, 객체 지향) -
/여기서 왜 정적 변수를 사용했는지 설명
(C++) -
/이 함수가 왜 세그먼테이션 오류를 발생시키는지 설명
(C) -
/이 문맥에서 동시성이 작동하는 방식 설명
(Go) -
/요청이 어떻게 클라이언트에 도달하는지 설명
(REST API, 데이터베이스)
더 많은 정보는 VS Code에서 GitLab Duo Chat 사용을 참조하세요.
GitLab UI에서도 다음과 같이 코드를 설명할 수 있습니다:
코드에 대해 질문하거나 생성합니다
코드에 대한 질문은 해당 코드를 Duo Chat 창에 붙여 넣어 GitLab Duo Chat에게 물어볼 수 있습니다. 예를 들어:
이 루비 코드를 명확히 설명하십시오: def sum(a, b) a + b end.
이 코드가 하는 일과 작동 방식에 대해 설명하십시오.
또한 Chat에게 코드를 생성하도록 할 수도 있습니다. 예를 들어:
호출 시 'Hello, World!'를 출력하는 루비 함수를 작성하십시오.
두 명의 플레이어 간의 틱택토 게임을 시뮬레이션하는 JavaScript 프로그램을 개발하십시오. 가능한 경우 게임 로직 및 사용자 인터페이스를 제공하십시오.
Python에서 IPv4 및 IPv6 주소를 구문 분석하기 위한 정규 표현식 작성하십시오.
Java에서 syslog 로그 파일을 구문 분석하기 위한 코드 생성하십시오. 가능한 경우 정규 표현식을 사용하고 결과를 해시 맵에 저장하십시오.
C++에서 스레드 및 공유 메모리로 제작자-소비자 예제 작성하십시오. 가능한 경우 원자적 잠금을 사용하십시오.
고성능 gRPC 호출을 위한 Rust 코드 생성하십시오. 서버 및 클라이언트에 대한 소스 코드 예제 제공하십시오.
후속 질문하기
주제나 수행해야 할 작업에 대해 더 자세하고 정확한 답변을 얻기 위해 후속 질문을 할 수 있습니다. 이를 통해 추가 설명, 상세화 또는 추가 지원에 맞춘 좀 더 상세하고 정확한 응답을 얻을 수 있습니다.
예를 들어 호출 시 'Hello, World!'를 출력하는 루비 함수를 작성하십시오
라는 질문에 대한 후속 질문은 다음과 같을 수 있습니다:
일반적인 루비 환경에서 이 루비 함수를 어떻게 호출하고 실행할 수 있는지 설명할 수 있나요?
C# 프로젝트를 시작하는 방법
이라는 질문에 대한 후속 질문은 다음과 같을 수 있습니다:
C#에 .gitignore 및 .gitlab-ci.yml 파일을 추가하는 방법도 설명해 주세요?
오류에 대해 질문하기
소스 코드를 컴파일해야 하는 프로그래밍 언어는 암호화된 오류 메시지를 반환할 수 있습니다. 마찬가지로 스크립트나 웹 애플리케이션은 스택 추적을 반환할 수 있습니다. 예를 들어, 자바에서는 해당 오류 메시지를 설명해 주십시오:
와 같이 복사한 오류 메시지의 앞에 GitLab Duo Chat에게 질문할 수 있습니다. 프로그래밍 언어와 같은 구체적인 맥락을 추가합니다.
이 Java 오류 메시지를 설명해 주십시오: Int 및 system을(를) 타입으로 해석할 수 없습니다
이 C 함수가 왜 세그먼테이션 오류를 발생시키는지 설명해 주십시오: sqlite3_prepare_v2()
Python에서 이 오류가 발생하는 이유에 대해 설명해 주십시오: ValueError: int()에 대한 잘못된 리터럴
VueJS에서 "this"가 정의되지 않은 이유는 무엇인가요? 일반적인 오류 상황을 제공하고 이를 피하는 방법을 설명하세요.
Ruby on Rails 스택 트레이스를 디버깅하는 방법은 무엇인가요? 일반적인 전략과 예외의 예제를 공유하십시오.
IDE에서 코드 리팩터링
- GitLab.com에서 GitLab 16.7에서 도입된 사항입니다(https://gitlab.com/gitlab-org/gitlab/-/issues/429915).
- Self-managed 및 GitLab Dedicated에서 GitLab 16.8에서 도입된 사항입니다(https://gitlab.com/gitlab-org/gitlab/-/issues/429915).
GitLab Duo Chat에게 선택한 코드를 리팩터링하도록 요청할 수 있습니다:
- IDE에서 코드를 선택합니다.
- Duo Chat에서
/refactor
를 입력합니다.
고령을 고려해서 추가 지침을 포함할 수도 있습니다. 예를 들어:
- 특정 코딩 패턴 사용, 예:
/ActiveRecord로 리팩터링
또는/정적 함수를 제공하는 클래스로 리팩터링
. - 특정 라이브러리 사용, 예:
/mysql을 사용하여 리팩터링
. - 특정 함수/알고리즘 사용, 예: C++에서
/여러 줄을 가진 stringstream으로 리팩터링
. - 다른 프로그래밍 언어로 리팩터링, 예: TypeScript로
/리팩터링
. - 성능 개선에 중점을 둠, 예:
/성능 향상에 중점을 둔 리팩터링
. - 잠재적인 취약점에 중점을 둠, 예:
/메모리 누수 및 악용을 피하기 위한 리팩터링
.
IDE에서 코드 수정하기
- GitLab 17.3에 대해 GitLab.com, Self-managed 및 GitLab Dedicated에 도입되었습니다.
IDE에서 선택한 코드를 수정하도록 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 16.7에 대해 GitLab.com에 도입되었습니다.
- GitLab 16.8에 대해 self-managed 및 GitLab Dedicated에 도입되었습니다.
IDE에서 선택한 코드에 대한 테스트를 생성하도록 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 16.7에 대해 GitLab.com에 도입되었습니다.
- GitLab 16.8에 대해 self-managed 및 GitLab Dedicated에 도입되었습니다.
- GitLab 17.2에 대해 Claude 2.1에서 Claude 3 Sonnet으로 업데이트되었습니다.
- GitLab 17.2에 대해 Claude 3 Sonnet에서 Claude 3.5 Sonnet으로 업데이트되었습니다.
GitLab Duo Chat에게 CI/CD 구성을 생성하도록 요청할 수 있습니다:
Ruby on Rails 애플리케이션을 테스트하고 빌드하기 위한 .gitlab-ci.yml 구성 파일을 생성하세요.
Python 애플리케이션을 빌드하고 linting하기 위한 CI/CD 구성을 생성하세요.
Rust 코드를 빌드하고 테스트하기 위한 CI/CD 구성을 생성하세요.
C++을 위한 CI/CD 구성을 생성하세요. 컴파일러로 gcc를 사용하고, 빌드 도구로 cmake를 사용합니다.
VueJS를 위한 CI/CD 구성을 생성하세요. npm을 사용하고, SAST 보안 스캔을 추가하세요.
Java를 위해 최적화된 보안 스캔 파이프라인 구성을 생성하세요.
또한, 에러 메시지를 복사하여 특정 작업의 오류에 대해 설명하도록 요청할 수도 있습니다. 메시지 앞에 <language>에서의 컨텍스트에서 이 CI/CD 작업 오류 메시지를 설명해 주세요:
를 붙입니다.
Go 프로젝트의 컨텍스트에서 이 CI/CD 작업 오류 메시지를 설명해 주세요: build.sh: line 14: go command not found
또는 Root Cause Analysis를 사용하여 실패한 CI/CD 작업을 해결할 수도 있습니다.
실패한 CI/CD 작업에 대한 원인 분석을 통한 문제 해결
- GitLab.com에서는 GitLab 16.2에 실험적으로 도입되었습니다.
- GitLab 17.3에서 일반적으로 사용 가능하게되었으며, GitLab Duo Chat로 이동되었습니다.
로그를 분석하여 실패한 CI/CD 작업의 원인을 파악할 수 있도록 GitLab Duo Chat에 요청할 수 있습니다.
참고: 작업 로그의 마지막 100,000개의 문자가 분석됩니다.
전제 조건:
- CI/CD 작업을 보기 위한 권한이 있어야 합니다.
- 유료 GitLab Duo Enterprise seat이 있어야 합니다.
실패한 CI/CD 작업을 문제 해결하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 빌드 > 작업을 선택합니다.
- 실패한 CI/CD 작업을 선택합니다.
-
작업 로그 페이지에서 다음 작업을 수행합니다:
- 작업 로그 아래에서 문제 해결을 선택합니다.
- GitLab Duo Chat을 열고
/troubleshoot
를 입력합니다.
실패 이유의 분석과 예제 수정이 표시됩니다.
취약점 설명
SAST 취약점 보고서를 보고 있을 때, GitLab Duo Chat에게 취약점을 설명하도록 요청할 수 있습니다.
자세한 정보는 취약점 설명을 참조하십시오.
대화 히스토리 삭제 또는 재설정
모든 대화를 영구적으로 삭제하고 채팅 창을 지우려면:
- 텍스트 상자에
/clear
를 입력하고 Send를 선택합니다.
이전 대화를 보이게 유지하면서 새 대화를 시작하려면:
- 텍스트 상자에
/reset
을 입력하고 Send를 선택합니다.
두 경우 모두 대화 기록은 새 질문을 할 때 고려되지 않을 것입니다. 삭제하거나 재설정하는 것은 관련없는 대화로 이야기할 때 답변을 개선하는 데 도움이 될 수 있습니다.
지원되는 슬래시 명령
Duo Chat에는 각각이 슬래시( /
)로 시작하는 지원되는 명령어 목록이 있습니다.
특정 작업을 빠르게 수행하려면 다음 명령을 사용하십시오.
명령 | 목적 |
---|---|
/clear | 모든 대화를 영구적으로 삭제하고 채팅 창을 지웁니다 |
/reset | 이전 대화를 보이게 하고 새 대화를 시작합니다 |
/tests | 테스트 작성 |
/explain | 코드 설명 |
/vulnerability_explain | 현재 취약점 설명 |
/refactor | 코드 리팩터링 |
/troubleshoot | 루트 원인 분석을 통한 CI/CD 작업 문제 해결 |
/fix | 코드 수정 |
/help | Duo Chat 작동 방식에 대해 자세히 알아보기. |