코드 제안
- GitLab 16.1에서 Google Vertex AI Codey API 지원 추가됨.
- GitLab 16.2에서 GitLab 기본 모델 지원이 제거됨.
- GitLab 16.3에서 코드 생성 지원 추가됨.
- GitLab 16.7에서 일반적으로 사용 가능 해짐.
- 2024년 2월 15일부터 GitLab Duo Pro가 필요한 구독 변경됨.
개발 중에 코드 제안을 통해 코드를 더 효율적으로 작성하세요.
GitLab Duo Code Suggestions을 사용하면 다음과 같은 기능을 제공받을 수 있습니다:
- 현재 입력중인 줄에 대한 완성을 제안하는 코드 완성 기능.
- 자연어 코드 코멘트 블록을 기반으로 코드를 생성하는 코드 생성 기능.
# 여기에 더 입력하세요
와 같은 코멘트를 작성한 후 Enter를 눌러 코멘트와 코드의 컨텍스트를 기반으로 코드를 생성할 수 있습니다.
코드 제안 사용하기
준비 사항:
- 지원되는 IDE 확장 중 하나를 설치해야 합니다.
- 귀하의 조직은 GitLab Duo Pro 애드온을 구매했고 귀하에게 좌석을 할당했어야 합니다.
- Self-managed GitLab을 사용하는 경우 GitLab 16.8 이상이어야 하며 프록시 설정을 구성해야 합니다.
코드 제안을 사용하려면:
-
코드를 작성하세요. 타이핑하는 동안 제안이 표시됩니다. 코드 제안은 현재 커서 위치에 따라 코드 스니펫을 제공하거나 현재 줄을 완성합니다.
-
자연어로 요구 사항을 설명하세요. 코드 제안은 제공된 컨텍스트를 기반으로 함수 및 코드 스니펫을 생성합니다.
- 제안을 수락하려면 Tab을 누르세요. 제안을 거절하려면 Esc를 누르세요.
- 제안을 무시하려면 보통대로 타이핑을 계속하세요.
AI는 결정론적이 아니므로 동일한 입력으로 항상 동일한 제안을 받을 수 없습니다. 품질 좋은 코드를 생성하려면 명확하고 구체적인 작업을 작성하세요.
모범 사례
코드 생성 결과를 최대한 얻으려면 다음을 지키세요:
- 가능한 구체적이면서 간결하게 작성하세요.
- 생성하려는 결과물(예: 함수)을 명시하고 달성하려는 목표에 대한 세부 정보를 제공하세요.
- 사용하고자 하는 프레임워크나 라이브러리와 같은 추가 정보를 추가하세요.
- 각 코멘트 뒤에 공백이나 새 줄을 추가하세요. 이 공백은 코드 생성기에게 지시사항을 완료했음을 알립니다.
예를 들어, 특정 요구 사항을 충족시키며 Python 웹 서비스를 생성하려면 다음과 같이 작성할 수 있습니다:
# 사용자가 로그인하고 보안 검사를 실행하고 검사 결과를 검토할 수 있는 Tornado를 사용한 웹 서비스를 생성하세요.
# 각 작업(로그인, 검사 실행, 결과 검토)은 웹 서비스 내에서 자체 리소스여야 합니다.
...
AI는 결정론적이 아니므로 동일한 입력으로 항상 동일한 제안을 받을 수 없습니다. 품질 좋은 코드를 생성하려면 명확하고 구체적인 작업을 작성하세요.
모범 사례 예시
활용 사례와 모범 사례에 대한 자세한 내용은 GitLab Duo 예제 문서를 참고하세요.
응답 시간
- 코드 완성 제안은 보통 저 대기 시간이 소요됩니다.
- 코드 생성의 경우:
- 알고리즘이나 큰 코드 블록은 10초 이상이 소요될 수 있습니다.
- VS Code에서 코드 생성 응답의 스트리밍은 평균 응답 시간이 빨라집니다. 다른 지원되는 IDE들은 더 느린 응답 시간을 제공하며 생성된 코드를 단일 블록으로 반환합니다.
결과의 정확성
총게적으로 생성된 내용의 정확성에 대해 계속해서 작업 중입니다. 그러나 코드 제안은 다음과 같은 제안을 생성할 수 있습니다:
- 관련성이 없는 경우.
- 불완전한 경우.
- 실패한 파이프라인 결과가 나오는 경우.
- 잠재적으로 불안전한 경우.
- 무례하거나 예민할 수 있는 경우.
코드 제안을 사용할 때는 코드 리뷰 모범 사례가 여전히 적용됩니다.
점진적 개선
이 기능은 개발자 IDE를 위한 점진적 개선으로 설계되었습니다. 코드 제안은 적절한 추천 사항이 제시될 경우 사용자에게 완성을 제안합니다. 연결 문제나 모델 추론 실패가 발생하는 경우, 이 기능은 우아하게 쇠퇴합니다. 코드 제안은 IDE에서 코드를 작성하는 것을 방해하지 않습니다.
코드 제안 비활성화
코드 제안을 비활성화하려면 IDE 편집기 확장에서 해당 기능을 비활성화하세요.
프로젝트용 코드 제안 비활성화
- GitLab 16.10에서 도입됨. 이 기능은 실험입니다.
준비 사항:
- 프로젝트에서 적어도 관리자(Maintainer) 역할이 있어야 합니다.
특정 프로젝트에서 코드 제안을 비활성화할 수 있습니다.
이를 위해 프로젝트의 duoFeaturesEnabled
설정을 GraphQL API를 사용하여 업데이트하세요.
이 설정에 대해 자세히 알아보려면 프로젝트 설정 업데이트(mutaitonprojectsettingsupdate)에 관한 API 문서를 참고하세요.
피드백
코드 제안 경험에 대한 피드백은 이슈 435783을 통해 제공하세요.