GitLab Duo Chat

Tier: 프리미엄, 얼티메이트 Offering: GitLab.com, Self-managed, GitLab Dedicated Status: 베타

GitLab Duo Chat는 개인용 AI 파워드 어시스턴트로, 생산성을 높이는 데 도움이 됩니다. AI가 생성한 콘텐츠로 여러 가지 업무를 지원할 수 있습니다. 다음은 사용 예시입니다.

기능 사용 사례 예시 지원 인터페이스 지원 배포
GitLab에 관해 질문하기 GitLab에서 이슈를 생성하는 방법을 알고 싶어요. GitLab, VS Code, Web IDE 1 GitLab.com
특정 이슈에 관해 질문하기 이 이슈를 요약하고 싶어요. GitLab, VS Code, Web IDE 1 GitLab.com, Self-managed, GitLab Dedicated
특정 에픽에 관해 질문하기 이 에픽을 요약하고 싶어요. GitLab, VS Code, Web IDE 1 GitLab.com, Self-managed, GitLab Dedicated
코드에 관해 질문하기 이 코드가 어떻게 작동하는 지 이해하고 싶어요. GitLab, VS Code, Web IDE 1 GitLab.com, Self-managed, GitLab Dedicated
CI/CD에 관해 질문하기 새로운 CI/CD 파이프라인 구성을 만들고 싶어요. GitLab, VS Code, Web IDE 1 GitLab.com, Self-managed, GitLab Dedicated
IDE에서 코드 설명 이 코드가 어떻게 작동하는 지 이해하고 싶어요. VS Code, Web IDE 1 GitLab.com, Self-managed, GitLab Dedicated
IDE에서 코드 리팩터링 이 코드를 리팩터링하고 싶어요. VS Code, Web IDE 1 GitLab.com, Self-managed, GitLab Dedicated
IDE에서 테스트 작성 이 코드에 대한 테스트를 작성하고 싶어요. VS Code, Web IDE 1 GitLab.com, Self-managed, GitLab Dedicated
각주:
  1. GitLab Duo Chat는 Self-managed의 Web IDE에서 사용할 수 없습니다.
note
이것은 베타 기능입니다. 계속해서 응답의 기능과 신뢰성을 확장하고 있습니다.

데모 시청

GitLab Duo Chat가 도와드릴 수 있는 점

GitLab Duo Chat는 다양한 영역에서 도움을 줄 수 있습니다.

GitLab에 관해 질문하기

GitLab 작동 방식에 관해 질문할 수 있습니다. 다음과 같은 내용을 포함합니다:

  • '포크'의 개념을 간결하게 설명해 주세요.
  • 사용자의 암호를 재설정하는 단계별 지침을 제공해 주세요.
note
현재 이 기능은 Self-managed 인스턴스에서 지원되지 않습니다. 자세한 내용은 이 에픽을 참조하세요.

특정 이슈에 관한 문의

  • 소개 : GitLab 16.0에서 SaaS용으로 도입됨.
  • 소개 : GitLab 16.8에서 Self-Managed용으로 도입됨.

특정 GitLab 이슈에 관해 문의할 수 있습니다. 예:

  • 이 링크를 통해 식별된 이슈에 대한 요약 생성: <이슈 링크>
  • GitLab에서 이슈를 보고 있을 때, 현재 이슈에 대한 간결한 요약 생성.
  • 값과 해결해야 할 문제를 이해할 수 있도록 <이슈 링크>의 설명을 어떻게 개선할 수 있을까?

특정 Epic에 대한 문의

  • 소개 : GitLab 16.3에서 SaaS용으로 도입됨.
  • 소개 : GitLab 16.8에서 Self-Managed용으로 도입됨.

특정 GitLab Epic에 관해 질문할 수 있습니다. 예:

  • 이 링크를 통해 식별된 Epic에 대한 요약 생성: <에픽 링크>
  • GitLab에서 에픽을 보고 있을 때, 열린 Epic에 대한 간결한 요약 생성.
  • <에픽 링크>에서 댓글 작성자가 제기한 고유한 사용 사례는 무엇인가?

코드에 관한 문의

  • 소개 : GitLab 16.1에서 SaaS용으로 도입됨.
  • 소개 : GitLab 16.8에서 Self-Managed용으로 도입됨.

또한 GitLab Duo Chat에게 코드를 생성하도록 요청할 수 있습니다:

  • 호출할 때 'Hello, World!'를 출력하는 Ruby 함수를 작성하십시오.
  • 두 명의 플레이어가 참여하는 틱택토 게임을 시뮬레이션하는 JavaScript 프로그램을 개발하십시오. 적용 가능한 경우 게임 로직과 사용자 인터페이스 모두 제공해 주십시오.
  • Python에서 IPv4 및 IPv6 주소를 구문 분석하기 위한 정규 표현식을 작성하십시오.
  • Java에서 syslog 로그 파일을 구문 분석하는 코드를 생성하십시오. 가능한 경우 정규 표현식을 사용하고 결과를 해시 맵에 저장하십시오.
  • C++에서 스레드와 공유 메모리를 사용한 생산자-소비자 예제를 작성하십시오. 가능한 경우 원자적 락을 사용하십시오.
  • 고성능 gRPC 호출을 위한 Rust 코드를 생성하십시오. 서버 및 클라이언트의 소스 코드 예제를 제공하십시오.

또한 코드를 설명할 것을 요청할 수 있으며, 이때는 해당 코드와 함께 다음 Ruby 코드에 대해 명확하게 설명해 주십시오: def sum(a, b) a + b end. 이 코드가 하는 일과 작동 방식에 대해 설명해 주십시오.와 같이 전치사를 사용할 수 있습니다.

또는 에디터에서 코드를 설명하려면 /explain 명령어를 사용할 수 있습니다.

더 많은 실제 예제는 GitLab Duo 예제를 참조하세요.

오류에 관한 문의

소스 코드를 컴파일해야 하는 프로그래밍 언어는 암호화된 오류 메시지를 반환할 수 있습니다. 마찬가지로 스크립트나 웹 응용 프로그램은 스택 추적을 반환할 수 있습니다. 예를들면 이 오류 메시지를 설명해 주십시오:와 같은 문맥적인 내용과 함께 복사한 오류 메시지 앞에 GitLab Duo Chat에게 질문할 수 있습니다.

  • Java의 경우 이 오류 메시지를 설명해 주십시오: Int 및 시스템을 타입으로 해석할 수 없음
  • C 함수가 'sqlite3_prepare_v2()'로 세그멘테이션 오류를 일으킬 때의 원인을 설명해 주십시오.
  • Python에서 이 오류의 원인을 설명해 주십시오: ValueError: 정수에 대한 잘못된 리터럴
  • VueJS에서 "this"가 정의되지 않는 이유는 무엇인가요? 일반적인 오류 케이스를 제공하고 피하는 방법에 대해 설명해 주십시오.
  • Ruby on Rails 스택 추적을 디버깅하는 방법은 무엇인가요? 일반적인 전략과 예외의 예제를 공유해 주십시오.

더 많은 실제 예제는 GitLab Duo 예제를 참조하세요.

CI/CD에 관한 문의

  • 소개 : GitLab 16.7에서 SaaS용으로 도입됨.
  • 소개 : GitLab 16.8에서 Self-Managed용으로 도입됨.

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에 최적화된 보안 스캔 파이프라인 구성을 생성하십시오.

또한 특정 작업 오류를 설명해 달라고 요청할 수 있으며, 이때는 해당 오류 메시지를 복사하여 <언어>의 컨텍스트에서 이 CI/CD 작업 오류 메시지를 설명해 주십시오:와 같이 전치사를 사용합니다.

또는 CI/CD의 근본 원인 분석을 사용할 수 있습니다.

더 많은 실제 예제는 GitLab Duo 예제를 참조하세요.

IDE에서 코드 설명

참고: 이 기능은 VS Code 및 Web IDE에서만 사용할 수 있습니다.

/explain은 편집기에서 선택한 코드를 설명하는 특수 명령어입니다. 예를 들어 다음과 같이 추가 지침을 추가할 수 있습니다: /explain the performance 더 많은 정보는 VS Code에서 GitLab Duo Chat 사용을 참조하십시오.

  • /explain 알고리즘에 집중
  • /explain 이 코드를 사용하여 성능 향상 또는 저하
  • /explain 객체 상속 (클래스, 객체 지향)
  • /explain 여기서 왜 정적 변수를 사용하는지 (C++)
  • /explain 이 함수가 왜 세그먼테이션 오류를 일으키는지 (C)
  • /explain 병행성이 이 문맥에서 어떻게 작동하는지 (Go)
  • /explain 요청이 클라이언트에 도달하는 방식 (REST API, 데이터베이스)

더 많은 실제 예제는 GitLab Duo 예제를 참조하십시오.

IDE에서 코드 리팩터링

참고: 이 기능은 VS Code 및 Web IDE에서만 사용할 수 있습니다.

/refactor은 편집기에서 선택한 코드에 대한 리팩터링 제안을 생성하는 특수 명령어입니다. 고려할 추가 지침을 포함할 수 있습니다. 예를 들어:

  • 특정 코딩 패턴 사용, 예: /refactor with ActiveRecord 또는 /refactor into a class providing static functions.
  • 특정 라이브러리 사용, 예: /refactor using mysql.
  • 특정 함수/알고리즘 사용, 예: C++에서 /refactor into a stringstream with multiple lines.
  • 다른 프로그래밍 언어로 리팩터링, 예: /refactor to TypeScript.
  • 성능에 중점을 둔다, 예: /refactor improving performance.
  • 잠재적인 취약점에 중점을 둔다, 예: /refactor avoiding memory leaks and exploits.

더 많은 정보는 VS Code에서 GitLab Duo Chat 사용을 참조하십시오.

더 많은 실제 예제는 GitLab Duo 예제를 참조하십시오.

IDE에서 테스트 작성

참고: 이 기능은 VS Code 및 Web IDE에서만 사용할 수 있습니다.

/tests은 편집기에서 선택한 코드에 대한 테스트 제안을 생성하는 특수 명령어입니다. 고려할 추가 지침을 포함할 수 있습니다. 예를 들어: /tests using the Boost.Test framework 더 많은 정보는 VS Code에서 GitLab Duo Chat 사용을 참조하십시오.

  • 특정 테스트 프레임워크 사용, 예: C++에서 /tests using the Boost.test framework 또는 JavaScript에서 /tests using Jest.
  • 극단적인 테스트 케이스에 중점을 둔다, 예: /tests focus on extreme cases, force regression testing.
  • 성능에 중점을 둔다, 예: /tests focus on performance.
  • 회귀 및 잠재적인 취약점에 중점을 둔다, 예: /tests focus on regressions and potential exploits.

더 많은 실제 예제는 GitLab Duo 예제를 참조하십시오.

후속 질문하기

주제 또는 진행 중인 작업에 대해 더 심층적으로 탐구하는 후속 질문을 할 수 있습니다. 이것은 귀하의 구체적인 필요에 맞게 조정된 더 자세하고 정확한 응답을 얻도록 도와줍니다.

예를 들어 호출했을 때 'Hello, World!'를 인쇄하는 Ruby 함수를 작성하세요라는 질문에 대한 후속 질문은 다음과 같을 수 있습니다:

  • 일반적인 Ruby 환경에서 이 Ruby 함수를 호출하고 실행하는 방법도 설명할 수 있나요?

C# 프로젝트를 시작하는 방법은 무엇인가요?라는 질문에 대한 후속 질문은 다음과 같을 수 있습니다:

  • C#을 위해 .gitignore 및 .gitlab-ci.yml 파일을 추가하는 방법도 설명해주시겠어요?

더 많은 실제 예제는 GitLab Duo 예제를 참조하십시오.

GitLab Duo 채팅 활성화

SaaS 사용자를 위한

이 기능을 사용하려면 소속된 그룹 중 하나가 실험 및 베타 기능 설정이 활성화되어 있어야 합니다.

이 설정이 활성화된 그룹에 속한 리소스에 대한 질문을 할 수 있습니다.

Chat 접속 문제 해결

만약 예상치 못한 대화 응답에 액세스할 수 있다면, 아마도 “실험 및 베타 기능 사용” 설정이 활성화된 그룹의 일부일 수 있습니다. 자신이 액세스할 수 있는 그룹 목록을 확인하고 확인하세요.

GitLab.com 관리자는 Rails 콘솔에서 다음 스니펫을 실행하여 액세스를 확인할 수 있습니다.

u = User.find_by_username($USERNAME)
u.member_namespaces.namespace_settings_with_ai_features_enabled.with_ai_supported_plan(:ai_chat)

이 기능이 활성화되어 있는 경우 특정 그룹 리소스(예: “이 문제 요약하기”)에 대한 특정 질문을 할 수 있습니다.

자체 관리 사용자를 위한

참고: GitLab Duo Chat 사용은 GitLab 테스트 계약에 따릅니다. GitLab Duo Chat 사용 시 데이터 사용에 대해 알아보세요.

사전 요구 사항:

  • GitLab 버전 16.8 이상을 사용하고 있어야 합니다.
  • 귀하의 GitLab 인스턴스에서 프리미엄 또는 얼티메이트 라이선스가 클라우드 라이선싱을 사용하여 활성화되어 있어야 합니다.
  • 귀하의 방화벽 및 HTTP 프록시 서버가 cloud.gitlab.com으로의 아웃바운드 연결을 허용해야 합니다. HTTP 프록시를 사용하려면, gitLab _workhorsegitLab_rails가 필요한 웹 프록시 환경 변수를 설정해야 합니다.
  • 인스턴스의 모든 사용자가 자신의 IDE 확장 프로그램의 최신 버전을 사용하고 있어야 합니다.
  • 관리자여야 합니다.

자체 관리 GitLab 인스턴스에서 GitLab Duo Chat을 활성화하려면:

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리자 영역을 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. AI 기능을 확장한 다음 실험 및 베타 AI 기능 사용을 선택합니다.
  4. 변경 사항 저장을 선택합니다.
  5. 즉시 GitLab Duo Chat이 작동하도록 하려면, 구독을 수동으로 동기화해야 합니다.

구독을 수동으로 동기화

다음 중 하나에 해당하는 경우 구독을 수동으로 동기화해야 합니다:

  • 프리미엄 또는 얼티메이트 티어를 구매하고 GitLab 16.8로 업그레이드한 경우
  • 이미 프리미엄 또는 얼티메이트 티어의 구독이 있고 GitLab 16.8로 업그레이드한 경우

수동 동기화를 수행하지 않으면 인스턴스에서 GitLab Duo Chat을 활성화하는 데 최대 24시간이 걸릴 수 있습니다.

GitLab UI에서 GitLab Duo Chat 사용

  1. 왼쪽 하단에서 도움말 아이콘을 선택합니다. 새로운 왼쪽 사이드바가 활성화되어 있어야 합니다.
  2. GitLab Duo Chat을 선택합니다. 화면 오른쪽에 서랍이 엽니다.
  3. 채팅 입력 상자에 질문을 입력하고 Enter를 누르거나 보내기를 선택합니다. 대화형 AI 채팅이 답변을 생성하는 데 몇 초가 소요될 수 있습니다.
  4. 후속 질문을 할 수 있습니다.
  5. 이전 대화와 관련이 없는 새 질문을 하려면, 입력 상자에 /reset을 입력하고 보내기를 선택하여 컨텍스트를 지우면 더 나은 답변을 받을 수 있습니다.

참고: 대화 기록에는 마지막 50개의 메시지만 보관됩니다. 대화 기록은 마지막 사용 후 3일이 지나면 만료됩니다.

모든 대화 삭제

이전 대화를 모두 삭제하려면:

  1. 텍스트 상자에 /clean을 입력하고 보내기를 선택합니다.

Web IDE에서 GitLab Duo Chat 사용

Tier: 프리미엄, 얼티메이트 Status: 실험

GitLab의 Web IDE에서 GitLab Duo Chat을 사용하려면:

  1. Web IDE를 엽니다:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
    2. 파일을 선택한 후, 오른쪽 상단에서 편집 > Web IDE로 열기를 선택합니다.
  2. 그런 다음 다음 방법 중 하나를 사용하여 Chat을 엽니다:
    • 왼쪽 사이드바에서 GitLab Duo Chat을 선택합니다.
    • 에디터에서 열고 있는 파일에서 코드를 선택합니다.
      1. 마우스 오른쪽 단추를 클릭하고 GitLab Duo Chat을 선택합니다.
      2. 선택된 코드 설명 또는 테스트 생성을 선택합니다.
    • 키보드 단축키를 사용합니다: ALT+d(Windows 및 Linux) 또는 Option+d(Mac)
  3. 메시지 상자에 질문을 입력하고 Enter를 누르거나 보내기를 선택합니다.

에디터에서 코드를 선택한 경우, 이 선택은 질문과 함께 AI로 전송됩니다. 이렇게 하면 해당 코드에 대한 질문을 할 수 있습니다. 예를 들어 이것을 단순화할 수 있을까요?.

참고: 자체 관리 시 Web IDE에서는 GitLab Duo Chat을 사용할 수 없습니다.

VS Code에서 GitLab Duo Chat 사용하기

Tier: 프리미엄, 얼티밋 Status: 실험
  • 실험으로 소개된 기능으로 GitLab 16.6에서 처음 도입되었습니다.

VS Code용 GitLab Workflow 확장을 사용하여 GitLab Duo Chat를 사용하려면:

  1. VS Code에 Workflow 확장을 설치하고 설정하십시오:
    1. VS Code에서 GitLab Workflow 확장을 다운로드하고 설치하십시오.
    2. GitLab Workflow 확장을 구성하십시오.
  2. VS Code에서 파일을 엽니다. 해당 파일은 깃 저장소에 있는 파일일 필요는 없습니다.
  3. 다음 중 하나의 방법으로 채팅창을 열십시오:
    • 왼쪽 사이드바에서 GitLab Duo Chat을 선택하십시오.
    • 에디터에서 열린 파일에서 코드를 선택하십시오.
      1. 우클릭한 후 GitLab Duo Chat을 선택하십시오.
      2. 선택한 코드 설명 또는 테스트 생성을 선택하십시오.
    • 키보드 단축키를 사용하십시오: ALT+d (Windows 및 Linux의 경우) 또는 Option+d (Mac의 경우)
  4. 메시지 상자에 질문을 입력하고 Enter를 누르거나 전송(선택)을 선택하십시오.

에디터에서 코드를 선택한 경우, 해당 선택이 AI로 전송되어 질문할 수 있습니다. 이렇게 하면 해당 코드 선택에 관해 질문할 수 있습니다. 예를 들어, 이걸 간단히 할 수 있을까요?.

컨텍스트 메뉴를 사용하거나 슬래시 명령을 통해 IDE에서 표준 작업 수행하기

코드를 설명하거나 리팩터링하거나 코드에 대한 테스트를 생성하려면 다음을 수행하십시오:

  1. VS Code의 에디터 또는 Web IDE에서 코드를 선택하십시오.
  2. 채팅 필드에 다음 슬래시 명령 중 하나를 입력하십시오: /explain, /refactor 또는 /tests. 또는 컨텍스트 메뉴를 사용하여 이러한 작업을 수행할 수 있습니다.

슬래시 명령 중 하나를 사용하는 경우 추가 지시 사항을 추가하여 고려할 수도 있습니다. 예를 들어: /tests using the Boost.Test framework

VS Code에서 채팅 비활성화하기

VS Code에서 GitLab Duo Chat를 비활성화하려면:

  1. 설정 > 확장 > GitLab Workflow (GitLab VS Code Extension)로 이동하십시오.
  2. GitLab Duo Chat 어시스턴트 사용 확인란을 선택을 해제하십시오.

피드백 제공

귀하의 피드백은 GitLab Duo Chat 경험을 지속적으로 향상시키는 데 중요합니다. 피드백을 남기면 당사는 채팅을 귀하의 요구에 맞게 사용자 정의하고 모든 사람을 위해 성능을 향상시킬 수 있습니다.

특정 응답에 대한 피드백을 제공하려면 응답 메시지에 있는 피드백 버튼을 사용하십시오. 또는 피드백 이슈에 댓글을 추가할 수도 있습니다.