Software Development Flow
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
Software Development Flow는 소프트웨어 개발 수명 주기 전반의 작업에 대해 AI가 생성한 솔루션을 만들도록 돕습니다. 이 플로는 VS Code, Visual Studio, JetBrains에서 사용할 수 있습니다.
Model information
- LLM: Anthropic Claude Sonnet 4
- 자체 호스팅 모델을 사용하는 GitLab Duo에서 사용할 수 있습니다
히스토리
- GitLab 17.4에서
duo_workflow라는 기능 플래그와 함께 비공개 베타로 도입되었습니다. GitLab 팀 구성원에게만 활성화되었습니다. - GitLab 18.2에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에서 활성화되고 베타로 변경되었습니다.
- GitLab 18.8에서 정식 출시되었습니다. 기능 플래그
duo_workflow가 제거되었습니다. - GitLab 18.10에서 GitLab.com의 Free 티어에서 GitLab Credits와 함께 사용할 수 있게 되었습니다.
Software Development Flow는 소프트웨어 개발 수명 주기 전반의 작업에 대해 AI가 생성한 솔루션을 만들도록 돕습니다. 이전에 GitLab Duo Workflow로 불렸던 이 플로는 다음과 같은 특징이 있습니다.
- IDE에서 실행되므로 컨텍스트나 도구를 전환할 필요가 없습니다.
- 프롬프트에 따라 계획을 만들고 그 계획을 차례로 수행합니다.
- 제안된 변경 사항을 프로젝트의 리포지터리에 스테이징합니다. 제안을 수락, 수정, 거부하는 시점은 사용자가 정합니다.
- 프로젝트 구조, 코드베이스, 히스토리의 컨텍스트를 이해합니다. 관련 GitLab 이슈나 머지 리퀘스트 같은 자신만의 컨텍스트를 추가할 수도 있습니다.
이 플로는 VS Code, Visual Studio, JetBrains에서 사용할 수 있습니다.
사전 요구 사항#
- GitLab Duo Agent Platform의 사전 요구 사항을 충족해야 합니다.
- IDE용 편집기 확장을 설치하고 구성합니다.
- GitLab for VS Code 6.85.0 이상
- JetBrains IDE용 GitLab Duo 플러그인 3.40.0 이상
- GitLab for Visual Studio 0.79.0 이상
플로와 Chat 비교#
Software Development Flow와 GitLab Duo Chat은 모두 IDE의 서로 다른 탭에서 사용할 수 있습니다.
복잡한 개발 작업에는 Software Development Flow를 사용합니다.
- 이 플로는 포괄적인 컨텍스트를 수집하고, 검토할 수 있는 상세한 계획을 만들며, 작업을 체계적으로 수행합니다.
- 이 플로는 큰 컨텍스트 창이 필요한 더 길고 깊은 세션에 이상적인 구조화된 접근 방식을 사용하며, 반복이 필요한 코드 생성에서 더 나은 결과를 냅니다.
- 각 플로에는 시작과 끝이 있습니다. 새 플로를 시작하면 컨텍스트를 다시 수집하고 프로젝트의 현재 상태를 기반으로 새 계획을 만듭니다.
사용자가 방향을 이끄는 대화형 상호작용에는 GitLab Duo Chat을 사용합니다.
- Chat은 질문에 답하기 위해 정보를 수집하고, 제안을 제공하며, 프롬프트에 따라 사용자를 대신해 자율적으로 작업을 수행할 수 있습니다.
- Chat은 대화를 계속 이어 가므로 진행 중인 어떤 논의로든 돌아가 중단한 지점에서 이어서 진행할 수 있습니다.
둘 다 비슷한 작업을 도울 수 있지만 작동 방식은 다릅니다. 플로는 포괄적인 컨텍스트를 먼저 수집하고 사람의 개입을 최소화한 채 실행됩니다. Chat은 사용자와 끊임없이 피드백을 주고받는 방식으로 작동하며 대화 중 필요할 때 컨텍스트를 수집합니다. 예를 들어 플로는 접근 방식을 제안하기 전에 여러 솔루션을 고려하지만, Chat은 빠른 결과를 주기 위해 처음 찾은 실행 가능한 경로로 바로 갑니다.
Software Development Flow 사용#
플로를 사용하려면 다음을 수행합니다.
-
IDE에서 GitLab Duo Agent Platform([duo-agentic-chat])을 선택합니다.
-
Flows 탭을 선택합니다.
-
텍스트 상자에 코드 작업을 자세히 지정합니다.
-
플로는 프로젝트 브랜치에서 Git이 사용할 수 있는 모든 파일을 인식합니다.
-
Chat에 추가 컨텍스트를 제공할 수 있습니다.
-
플로는 외부 소스나 웹에 접근할 수 없습니다.
-
예를 들면 다음과 같습니다.
I have a large Ruby class that is used in a few places and I want to break it down. Analyze this class and see what sub-methods or properties can be delegated to a separate class. Then, propose a transition plan to implement this new sub-class and update all of the required tests.
-
-
Start를 선택합니다.
작업을 설명하면 플로가 계획을 생성하고 실행합니다. 플로를 일시 중지하거나 계획을 조정하도록 요청할 수 있습니다.
지원하는 언어#
Software Development Flow는 다음 언어를 공식 지원합니다.
- CSS
- Go
- HTML
- Java
- JavaScript
- Markdown
- Python
- Ruby
- TypeScript
플로가 접근할 수 있는 API#
솔루션을 만들고 문제의 컨텍스트를 이해하기 위해 플로는 여러 GitLab API에 접근합니다.
구체적으로 ai_workflows 범위가 있는 OAuth 토큰은
다음 API에 접근할 수 있습니다.
- Projects API
- Search API
- CI Pipelines API
- CI Jobs API
- Job Artifacts API
- Deployments API
- Merge Requests API
- Epics API
- Issues API
- Notes API
- Usage Data API
- Metadata API(더 이상 사용되지 않는
/version엔드포인트 포함)
감사 로그#
Software Development Flow는 API 요청마다 감사 이벤트를 생성합니다. GitLab Self-Managed 인스턴스에서는 인스턴스 감사 이벤트 페이지에서 이 이벤트를 볼 수 있습니다.
위험#
Software Development Flow는 GitLab 계정을 사용해 작업을 수행할 수 있는 AI 에이전트를 사용합니다. 대규모 언어 모델 기반 AI 도구는 예측할 수 없을 수 있습니다. 사용하기 전에 잠재적 위험을 검토합니다.
VS Code, JetBrains IDE, Visual Studio의 Software Development Flow는 로컬 워크스테이션에서 워크플로를 실행합니다. 이 제품을 활성화하기 전에 문서화된 모든 위험을 고려합니다. 주요 위험은 다음과 같습니다.
- Software Development Flow는 Git이 추적하지 않거나
.gitignore에서 제외된 파일을 포함해 프로젝트의 로컬 파일 시스템에 있는 파일에 접근할 수 있습니다. 여기에는.env파일의 자격 증명 같은 민감한 정보가 포함될 수 있습니다. - Software Development Flow에는 사용자 신원에 연결된, 유효 기간이 제한된
ai_workflows범위의 GitLab OAuth 토큰이 부여됩니다. 이 토큰은 워크플로 기간 동안 지정된 GitLab API에 대한 접근을 허용합니다. 기본적으로 명시적 승인 없이는 읽기 작업만 수행되지만, 사용자의 권한에 따라 쓰기 작업도 가능합니다. - Software Development Flow에 추가 자격 증명이나 시크릿(예: 메시지나 목표에 포함)을 제공하지 않습니다. 의도하지 않게 사용되거나 코드 또는 API 호출에 노출될 수 있기 때문입니다.