GitLab Duo Chat

Tier: Premium, Ultimate 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
특정 epic에 대해 질문하기 해당 epic을 요약하고 싶습니다. 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이 어떻게 작동하는지에 대해 질문할 수 있습니다. 아래와 같은 내용입니다:

  • 간결한 방식으로 'fork'의 개념을 설명해주세요.
  • 사용자 비밀번호를 재설정하는 단계별 지침을 제공해주세요.
note
이 기능은 현재 Self-managed 인스턴스에서 지원되지 않습니다. 자세한 내용은 이 epic에서 확인하세요.

특정 이슈에 대해 질문하기

특정 GitLab 이슈에 대해 질문할 수 있습니다. 예를 들어:

  • 이 링크를 통해 식별된 이슈에 대한 요약을 생성해주세요: <이슈 링크>
  • GitLab에서 이슈를 보고 있는 경우 현재 이슈에 대한 간결한 요약을 생성해주세요.
  • <이슈 링크>의 설명을 어떻게 개선할 수 있어서 독자들이 가치와 해결해야 할 문제를 이해할 수 있도록 할까요?`

특정 epic에 대해 질문하기

특정 GitLab epic에 대해 질문할 수 있습니다. 예를 들어:

  • 이 링크를 통해 식별된 epic에 대한 요약을 생성해주세요: <epic 링크>
  • GitLab에서 epic을 보고 있는 경우 열린 epic에 대한 간결한 요약을 생성해주세요.
  • <epic 링크>에서 댓글러들이 제기한 고유한 사용 사례는 무엇인가요?`

코드에 대해 문의

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

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

그리고 코드를 설명하도록 요청할 수도 있습니다:

  • 다음 Ruby 코드에 대한 명확한 설명을 제공해주세요: def sum(a, b) a + b end. 이 코드가 하는 일과 작동 방식을 설명해주세요.

또는 IDE에서 코드를 설명하는 것도 가능합니다.

자세한 예는 GitLab Duo examples을 참조하세요.

오류에 대해 문의

소스 코드를 컴파일하는 것이 필요한 프로그래밍 언어는 암호화된 오류 메시지를 던질 수 있습니다. 마찬가지로 스크립트나 웹 애플리케이션도 스택 트레이스를 던질 수 있습니다. GitLab Duo Chat에게 그런 경우에 대한 설명을 요청할 수 있습니다. 예를 들어, 다음 오류 메시지를 설명해주세요: 라는 접두어와 프로그래밍 언어와 관련된 구체적인 맥락을 추가하세요.

  • Java에서 다음 오류 메시지를 설명해주세요: Int and system cannot be resolved to a type
  • C 함수가 세그멘테이션 오류를 발생시킬 때 설명해주세요: sqlite3_prepare_v2()
  • Python에서 다음 오류의 원인을 설명해주세요: ValueError: invalid literal for int()
  • VueJS에서 "this"가 정의되지 않은 이유를 설명해주세요. 일반적인 오류 사례를 제공하고 피하는 방법을 설명해주세요.
  • Ruby on Rails 스택 트레이스를 디버그하는 방법을 설명해주세요. 일반적인 전략과 예외 사례를 공유하세요.

자세한 예는 GitLab Duo examples를 참조하세요.

CI/CD에 대해 문의

GitLab Duo Chat에게 CI/CD 구성을 생성하도록 요청할 수 있습니다:

  • Ruby on Rails 애플리케이션을 테스트하고 빌드하기 위한 .gitlab-ci.yml 구성 파일을 작성해주세요. GitLab CI/CD 파이프라인을 위한.
  • Python 애플리케이션의 빌드 및 린팅을 위한 CI/CD 구성 작성하기.
  • Rust 코드를 빌드하고 테스트하기 위한 CI/CD 구성 작성하기.
  • C++에 대한 CI/CD 구성 작성하기. 컴파일러로 gcc를 사용하고 빌드 도구로 cmake를 사용하세요.
  • VueJS에 대한 CI/CD 구성 작성하기. npm을 사용하고 SAST 보안 스캔을 추가하세요.
  • Java를 위한 최적화된 보안 스캔 파이프라인 구성 생성하세요.

특정 작업 오류를 설명해달라고 요청할 수도 있습니다. 이때는 오류 메시지를 복사하여 접두어로 이 CI/CD 작업 오류 메시지를 <언어>의 맥락에서 설명해주세요: 를 추가하세요:

  • 이 Go 프로젝트의 맥락에서 이 CI/CD 작업 오류 메시지를 설명해주세요: build.sh: line 14: go command not found

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

자세한 예는 GitLab Duo examples를 참조하세요.

IDE에서 코드 설명

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

/explain은 선택한 코드를 IDE에서 설명하는 특별한 명령입니다. 또한 고려해야 할 추가 지침을 추가할 수도 있습니다. 예를 들어: /성능을 설명해주세요 자세한 내용은 VS Code에서 GitLab Duo Chat 사용하기를 참조하세요.

  • /알고리즘에 초점을 맞추어 설명해주세요
  • /이 코드를 사용하여 성능 향상 또는 저하를 설명해주세요
  • /객체 상속을 설명해주세요 (클래스, 객체 지향)
  • /정적 변수가 여기서 사용된 이유를 설명해주세요 (C++)
  • /이 함수가 왜 세그멘테이션 오류를 발생시키는지 설명해주세요 (C)
  • /이 맥락에서 동시성이 작동하는 방식을 설명해주세요 (Go)
  • /요청이 클라이언트에 도달하는 방식을 설명해주세요 (REST API, 데이터베이스)

자세한 예는 GitLab Duo examples를 참조하세요.

IDE에서 코드 리팩터링

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

/refactor는 선택한 코드에 대한 리팩터링 제안을 IDE에서 생성하는 특별한 명령입니다. 고려해야 할 추가 지침을 추가할 수도 있습니다. 예를 들어:

  • 특정 코딩 패턴 사용, 예: /ActiveRecord를 사용하여 리팩터링 또는 /정적 함수를 제공하는 클래스로 리팩터링
  • 특정 라이브러리 사용, 예: /mysql을 사용하여 리팩터링
  • 특정 함수/알고리즘 사용, 예: /여러 줄의 stringstream으로 리팩터링 (C++)
  • 다른 프로그래밍 언어로 리팩터링, 예: /TypeScript로 리팩터링
  • 성능에 중점을 두어 리팩터링, 예: /성능 향상을 위해 리팩터링
  • 잠재적인 취약점에 중점을 두어 리팩터링, 예: /메모리 누수 및 악용을 피하기 위해 리팩터링

자세한 예는 GitLab Duo examples를 참조하세요.

IDE에서 테스트 작성

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

편집기에서 선택한 코드에 대한 테스트 제안을 생성하는 특별한 명령어 /tests가 있습니다. 예를 들어, 추가 지침을 추가할 수도 있습니다. 예: /tests using the Boost.Test framework 자세한 내용은 VS Code에서 GitLab Duo 채팅 사용을 참조하세요.

  • 특정한 테스트 프레임워크를 사용하세요. 예: /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.

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

후속 질문하기

주제나 수행할 작업에 대해 더 깊이 파고들기 위해 후속 질문을 할 수 있습니다. 이를 통해 귀하는 보다 자세하고 정확한 응답을 얻을 수 있으며 귀하의 특정한 요구에 맞게 맞춤화된 응답을 받을 수 있습니다. 다음을 위한 추가 설명, 세부 정보 또는 추가 지원인지 여부와 같은 것입니다.

'Hello, World!'를 출력하는 Ruby 함수를 작성해주세요라는 질문에 대한 후속 질문은:

  • 일반적인 Ruby 환경(예: 명령줄)에서 이 Ruby 함수를 호출하고 실행하는 방법도 설명해주시겠어요?

C# 프로젝트를 시작하는 방법?이라는 질문에 대한 후속 질문은:

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

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

GitLab Duo 채팅 활성화

SaaS 사용자를 위해

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

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

채팅 액세스 문제 해결

예상하지 못한 채팅 응답에 액세스하는 경우, 실험 및 베타 기능 사용 설정이 활성화된 그룹에 속해있을 수 있습니다. 사용자의 그룹 디렉터리을 검토하고 액세스할 수 있는 그룹을 확인하세요.

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

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

이 기능을 활성화한 경우 그룹 리소스에 대해 구체적으로 질문할 수 있습니다.

Self-managed 사용자를 위해

note
GitLab Duo 채팅 사용은 GitLab 테스팅 계약에 따라 사용됩니다. GitLab Duo 채팅 사용 시 데이터 사용에 대해 알아보세요.

필수 조건:

  • GitLab 버전 16.8 이상을 사용합니다.
  • GitLab 인스턴스에 Premium 또는 Ultimate 라이선스가 활성화되어 있습니다.
  • 방화벽 및 HTTP 프록시 서버가 cloud.gitlab.com로의 외부 연결을 허용합니다. HTTP 프록시를 사용하려면 gitLab_workhorsegitLab_rails에 필요한 웹 프록시 환경 변수가 설정되어 있어야 합니다.
  • 인스턴스의 모든 사용자가 최신 버전의 IDE 확장 프로그램을 사용합니다.
  • 관리자 권한을 가지고 있습니다.

Self-managed GitLab 인스턴스에서 GitLab Duo 채팅을 활성화하려면:

  1. 왼쪽 사이드바에서 아래 쪽에 있는 Admin Area를 선택하세요.
  2. Settings > General을 선택합니다.
  3. AI 기반 기능을 확장하고 실험 및 베타 AI 기반 기능 활성화를 선택하세요.
  4. 변경 사항 저장을 선택하세요.
  5. GitLab Duo 채팅이 즉시 작동하도록 하려면 구독을 매뉴얼으로 동기화해야 합니다.

구독을 매뉴얼으로 동기화

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

  • Premium 또는 Ultimate 티어를 구매했으며 GitLab 16.8로 업그레이드했습니다.
  • 이미 Premium 또는 Ultimate 티어의 구독이 있고 GitLab 16.8로 업그레이드했습니다.

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

GitLab UI에서 GitLab Duo 채팅 사용

  1. 왼쪽 하단에서 도움말 아이콘을 선택하세요. 새로운 왼쪽 사이드바를 활성화해야 합니다.
  2. GitLab Duo 채팅을 선택하세요. 화면 오른쪽에 드로어(Drawer)이 엽니다.
  3. 채팅 입력 상자에 귀하의 질문을 입력하고 Enter를 누르거나 Send를 선택하세요. 대화형 AI 채팅이 답변을 제공하는 데 몇 초가 걸릴 수 있습니다.
  4. 후속 질문을 할 수 있습니다.
  5. 이전 대화와 관련 없는 새로운 질문을 하려면 입력 상자에 /reset을 입력하고 Send를 선택하여 컨텍스트를 지우면 더 나은 답변을 받을 수 있습니다.
note
채팅 기록에는 최신 50개 메시지만 유지됩니다. 마지막 사용 후 3일이 지난 후에는 채팅 기록이 만료됩니다.

모든 대화 삭제

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

  1. 텍스트 상자에 /clean을 입력하고 Send를 선택하세요.

Web IDE에서 GitLab Duo 채팅 사용

Tier: Premium, Ultimate Status: 실험

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

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

편집기에서 코드를 선택한 경우 이 선택은 귀하의 질문과 함께 AI에게 전송됩니다. 이 방법으로 이 코드에 대한 질문을 할 수 있습니다. 예를 들어 이것을 간단하게 할 수 있을까요?.

note
GitLab Duo 채팅은 Self-managed의 Web IDE에서 사용할 수 없습니다.

VS Code에서 GitLab Duo Chat 사용하기

Tier: Premium, Ultimate Status: Experiment
  • GitLab 16.6에서 Experiment로 소개되었습니다.

GitLab Workflow 확장 프로그램을 사용하여 VS Code에서 GitLab Duo Chat를 사용하려면:

  1. VS Code에 Workflow 확장 프로그램을 설치하고 설정합니다:
    1. VS Code에서 GitLab Workflow extension for VS Code을 다운로드하고 설치합니다.
    2. GitLab Workflow extension을 구성합니다.
  2. VS Code에서 파일을 엽니다. 파일은 꼭 Git 리포지터리에 있는 파일일 필요는 없습니다.
  3. 다음 중 하나의 방법을 사용하여 채팅을 엽니다:
    • 왼쪽 사이드바에서 GitLab Duo Chat을 선택합니다.
    • 에디터에서 열린 파일에서 코드를 선택합니다.
      1. 마우스 오른쪽 버튼을 클릭한 다음 GitLab Duo Chat을 선택합니다.
      2. 선택한 코드 설명 또는 테스트 생성을 선택합니다.
    • 키보드 단축키를 사용합니다: ALT+d (Windows 및 Linux) 또는 Option+d (Mac)
  4. 메시지 상자에 질문을 입력한 다음 Enter를 누르거나 Send를 선택합니다.

에디터에서 코드를 선택한 경우 해당 선택이 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 assistant 활성화 확인란을 지웁니다.

피드백 제공

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

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