InfoGrab Docs

코딩 스타일 적용을 위한 Duo Workflow 사용 사례

요약

이 문서는 프롬프트 및 컨텍스트 라이브러리를 포함한 GitLab Duo Workflow 솔루션에 대해 설명합니다. 이 솔루션은 GitLab 이슈를 프롬프트로 제공하고 스타일 가이드를 컨텍스트로 제공합니다. GitLab Duo Workflow에 대한 자세한 내용은 여기 문서를 참조하세요.

시작하기#

솔루션 컴포넌트 다운로드#

  1. 계정 팀으로부터 초대 코드를 받으세요.
  2. 초대 코드를 사용하여 솔루션 컴포넌트 웹 스토어에서 솔루션 컴포넌트를 다운로드하세요.

Duo Workflow 사용 사례: 스타일 가이드로 Java 애플리케이션 개선#

이 문서는 프롬프트 및 컨텍스트 라이브러리를 포함한 GitLab Duo Workflow 솔루션에 대해 설명합니다. 이 솔루션의 목적은 정의된 스타일을 기반으로 애플리케이션 코딩을 개선하는 것입니다.

이 솔루션은 GitLab 이슈를 프롬프트로 제공하고 스타일 가이드를 컨텍스트로 제공합니다. GitLab Duo Workflow를 사용하여 코드베이스에 Java 스타일 가이드라인을 자동화하도록 설계되었습니다. 프롬프트 및 컨텍스트 라이브러리를 통해 Duo Workflow는 다음을 수행할 수 있습니다:

  1. GitLab 리포지터리에 저장된 중앙화된 스타일 가이드 콘텐츠에 접근,
  2. 도메인별 코딩 표준 이해,
  3. 기능을 유지하면서 Java 코드에 일관된 형식 적용.

GitLab Duo Workflow에 대한 자세한 내용은 여기 문서를 참조하세요.

주요 이점#

  • 모든 Java 코드베이스에 일관된 스타일 적용
  • 수동 작업 없이 스타일 적용 자동화
  • 가독성을 높이면서 코드 기능 유지
  • GitLab VS Code와 통합하여 원활한 구현 가능
  • 스타일 문제를 처리하는 데 소비되는 코드 리뷰 시간 단축
  • 개발자가 스타일 가이드라인을 이해하기 위한 학습 도구로 활용

샘플 결과#

적절히 구성되면 이 프롬프트는 코드를 엔터프라이즈 표준에 맞게 변환합니다. 다음 diff에 표시된 변환과 유사합니다:

지침, 작업 분석 및 해결 단계를 보여주는 Duo Workflow 보기

Duo Workflow의 스타일 가이드 변환 후 일관된 형식으로 업데이트된 코드 스니펫

솔루션 프롬프트 및 컨텍스트 라이브러리 구성#

기본 설정#

애플리케이션에 스타일을 검토하고 적용하는 에이전트 워크플로우를 실행하려면 이 사용 사례 프롬프트와 컨텍스트 라이브러리를 설정해야 합니다.

  1. Enterprise Code Quality Standards 프로젝트를 복제하여 프롬프트 및 컨텍스트 라이브러리를 설정합니다
  2. 라이브러리 파일 .gitlab/workflows/java-style-workflow.md의 프롬프트 콘텐츠로 GitLab 이슈 Review and Apply Style만듭니다
  3. 이슈 Review and Apply Style에서 구성 섹션에 자세히 설명된 워크플로우 변수를 구성합니다
  4. 프로젝트 Enterprise Code Quality Standards와 함께 VS Code에서 간단한 워크플로우 프롬프트로 Duo Workflow를 시작합니다
  5. 제안된 계획과 자동화된 작업을 검토하고 필요한 경우 워크플로우에 추가 입력을 제공하여 Duo Workflow와 함께 작업합니다
  6. 스타일이 적용된 코드 변경 사항을 리포지터리에 검토하고 커밋합니다

Duo Workflow 프롬프트 예시#

Follow the instructions in issue <issue_reference_id> for the file <path/file_name.java>. Make sure to access any issues or GitLab projects mentioned in the issue to retrieve all necessary information.

이 간단한 프롬프트는 Duo Workflow에 다음을 지시하기 때문에 강력합니다:

  1. 특정 이슈 ID의 자세한 요구 사항 읽기
  2. 참조된 스타일 가이드 리포지터리 접근
  3. 지정된 파일에 가이드라인 적용
  4. 이슈의 모든 지침 따르기

구성 가이드#

프롬프트는 솔루션 패키지의 .gitlab/workflows/java-style-workflow.md 파일에 정의되어 있습니다. 이 파일은 워크플로우 에이전트가 애플리케이션에 스타일 가이드 검토를 자동화하고 변경 사항을 적용하는 계획을 수립하도록 지시하는 GitLab 이슈를 만들기 위한 템플릿으로 사용됩니다.

.gitlab/workflows/java-style-workflow.md의 첫 번째 섹션에서 프롬프트에 대해 구성해야 하는 변수를 정의합니다.

변수 정의#

변수는 .gitlab/workflows/java-style-workflow.md 파일에 직접 정의됩니다. 이 파일은 AI 어시스턴트에게 지시하는 GitLab 이슈를 만들기 위한 템플릿으로 사용됩니다. 해당 파일에서 변수를 수정한 후 해당 파일의 콘텐츠로 새 이슈를 만드세요.

1. 컨텍스트로서의 스타일 가이드 리포지터리#

프롬프트가 조직의 스타일 가이드 리포지터리를 가리키도록 구성되어야 합니다. java-style-prompt.md 파일에서 다음 변수를 교체하세요:

  • {{GITLAB_INSTANCE}}: GitLab 인스턴스 URL (예: https://gitlab.example.com)
  • {{STYLE_GUIDE_PROJECT_ID}}: Java 스타일 가이드가 포함된 GitLab 프로젝트 ID
  • {{STYLE_GUIDE_PROJECT_NAME}}: 스타일 가이드 프로젝트의 표시 이름
  • {{STYLE_GUIDE_BRANCH}}: 최신 스타일 가이드가 포함된 브랜치 (기본값: main)
  • {{STYLE_GUIDE_PATH}}: 리포지터리 내 스타일 가이드 문서 경로

예시:

GITLAB_INSTANCE=https://gitlab.example.com
STYLE_GUIDE_PROJECT_ID=gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards
STYLE_GUIDE_PROJECT_NAME=Enterprise Java Standards
STYLE_GUIDE_BRANCH=main
STYLE_GUIDE_PATH=coding-style/java/guidelines/java-coding-standards.md

2. 스타일 개선을 적용할 대상 리포지터리#

동일한 java-style-prompt.md 파일에서 스타일 가이드를 적용할 파일을 구성합니다:

  • {{TARGET_PROJECT_ID}}: Java 프로젝트의 GitLab ID
  • {{TARGET_FILES}}: 대상 파일 또는 패턴 (예: "src/main/java/**/*.java")

예시:

TARGET_PROJECT_ID=royal-reserve-bank
TARGET_FILES=asset-management-api/src/main/java/com/royal/reserve/bank/asset/management/api/service/AssetManagementService.java

AI 생성 코드에 대한 중요 참고사항#

⚠️ 중요 면책 조항:

GitLab VS Code는 비결정적인 에이전트 AI를 사용합니다. 즉:

  • 동일한 입력으로도 실행 결과가 달라질 수 있습니다
  • AI 어시스턴트의 스타일 가이드라인 이해 및 적용이 매번 약간씩 다를 수 있습니다
  • 이 문서에서 제공되는 예시는 예시일 뿐이며 실제 결과는 다를 수 있습니다

AI 생성 코드 변경 사항 처리를 위한 모범 사례:

  1. 항상 생성된 코드 검토: 철저한 사람 검토 없이 AI 생성 변경 사항을 머지하지 마세요
  2. 적절한 머지 리퀘스트 프로세스 따르기: 표준 코드 리뷰 절차를 사용하세요
  3. 모든 테스트 실행: 머지하기 전에 모든 단위 및 통합 테스트가 통과하는지 확인하세요
  4. 스타일 준수 확인: 변경 사항이 스타일 가이드 기대치와 일치하는지 확인하세요
  5. 점진적 적용: 처음에는 소수의 파일 세트에 스타일 변경 사항을 적용하는 것을 고려하세요

이 도구는 개발자를 지원하기 위한 것이지 코드 리뷰 프로세스에서 인간의 판단을 대체하기 위한 것이 아님을 기억하세요.

단계별 구현#

  1. 스타일 가이드 이슈 만들기

    • 프로젝트에 새 이슈 만들기 (예: 이슈 #3)

    • 적용할 스타일 가이드라인에 대한 자세한 정보 포함

    • 해당되는 경우 외부 스타일 가이드 리포지터리 참조

    • 다음과 같은 요구 사항 지정:

      Task: Code Style Update
      Description: Apply the enterprise standard Java style guidelines to the codebase.
      Reference Style Guide: Enterprise Java Style Guidelines (https://gitlab.com/gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards/-/blob/main/coding-style/java/guidelines/java-coding-standards.md)
      Constraints:
      - Adhere to Enterprise Standard Java Style Guide
      - Maintain Functionality
      - Implement automated style checks
      
  2. 프롬프트 구성

    • java-style-prompt.md에서 템플릿 복사
    • 모든 구성 변수 입력
    • 프로젝트별 예외 또는 요구 사항 추가
  3. GitLab VS Code를 통해 실행

    • Duo Workflow에 구성된 프롬프트 제출

    • Duo Workflow는 샘플 워크플로우 실행에 표시된 것처럼 다단계 프로세스를 실행합니다:

      • 특정 도구를 사용하여 작업 계획 수립 (run_read_only_git_command, read_file, find_files, edit_file)
      • 참조된 이슈 접근
      • 엔터프라이즈 Java 스타일 가이드 가져오기
      • 현재 코드 구조 분석
      • 지정된 파일에 스타일 가이드라인 적용
      • 변경 사항이 기능을 유지하는지 확인
      • 변경된 내용에 대한 자세한 보고서 제공
  4. 검토 및 구현

    • 제안된 변경 사항 검토
    • 코드베이스에 변경 사항 구현
    • 기능이 유지되는지 테스트 실행
    • GitLab VS Code 인터페이스를 통해 작업 진행 상황 모니터링

샘플 워크플로우 실행#

적절히 구성되면 GitLab VS Code 확장이 스타일 가이드라인 적용을 위한 자세한 계획을 실행합니다. 다음은 워크플로우 실행이 어떻게 보이는지에 대한 샘플입니다:

샘플 워크플로우 계획#

AI 어시스턴트는 먼저 특정 도구를 사용하는 실행 계획을 만듭니다:

  1. run_read_only_git_command를 사용하여 https://gitlab.com/gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards.git에서 coding-style/java/guidelines/java-coding-standards.md 파일을 위해 Enterprise Java Standards 프로젝트에서 콘텐츠를 가져와 Java 스타일 가이드라인에 접근합니다. 지원 도구: run_read_only_git_command

  2. read_file 도구를 사용하여 AssetManagementService.java의 현재 콘텐츠를 읽고 분석하여 구조를 이해하고 스타일 업데이트가 필요한 영역을 식별합니다. 지원 도구: read_file

  3. 관련 서비스 클래스에서 일관된 스타일 적용을 위해 find_files를 사용하여 프로젝트에서 유사한 파일을 검색합니다. 지원 도구: find_files

  4. edit_file 도구를 사용하여 AssetManagementService.java를 편집하여 스타일 가이드라인을 적용합니다. 주요 내용:

    • 패키지 및 임포트 구성
    • 클래스 및 메서드 문서화
    • 코드 들여쓰기 및 간격
    • 어노테이션 배치
    • 메서드 매개 변수 형식 지정. 지원 도구: edit_file
  5. grep_files를 사용하여 코드베이스 전체에서 어노테이션 패턴을 확인하여 모든 Lombok 어노테이션 (@Service, @RequiredArgsConstructor, @Slf4j)이 스타일 가이드에 따라 올바르게 형식화되어 있는지 확인합니다. 지원 도구: grep_files

샘플 분석 출력#

그러면 어시스턴트가 파일과 요구 사항을 분석합니다:

이슈 #3과 AssetManagementService.java 파일을 분석했습니다. 다음은 발견한 내용입니다:

  1. 이슈 #3은 Royal Banking 코드베이스에 엔터프라이즈 표준 Java 스타일 가이드라인을 적용하는 것입니다.

  2. AssetManagementService.java 파일은 asset-management-api 모듈에 있습니다.

  3. 스타일 가이드라인은 gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards의 별도 GitLab 프로젝트에 저장되어 있습니다.

  4. 현재 AssetManagementService.java 파일에는 다음이 포함되어 있습니다:

    1. 패키지 및 임포트 구문
    2. Spring 어노테이션이 있는 서비스 클래스
    3. 자산 가용성 확인을 위한 하나의 public 메서드
    4. Lombok 어노테이션
    5. Javadoc 댓글

이슈에서 다음이 요구됩니다:

  1. 엔터프라이즈 표준 Java 스타일 가이드라인에 따른 형식 지정
  2. 자동화된 스타일 검사 구현
  3. 기존 기능 유지
  4. 스타일 업데이트 후 모든 테스트 통과 보장

구현을 진행하려면 다음이 필요합니다:

  1. Enterprise Java Standards 프로젝트에서 Java 스타일 가이드라인 접근
  2. AssetManagementService.java에 스타일 가이드라인 적용
  3. 변경 사항이 기능에 영향을 미치지 않는지 확인
  4. 업데이트 후 모든 테스트 통과 보장

샘플 구현 결과#

실행 후 어시스턴트는 변환된 코드와 함께 다음을 포함한 변경 사항에 대한 설명을 제공합니다:

  1. 적용된 스타일 가이드라인 요약
  2. 적절한 형식의 변환된 코드
  3. 주요 스타일 변경 사항에 대한 설명
  4. 자동화된 스타일 적용에 대한 권장 사항

변경 사항에는 일반적으로 다음이 포함됩니다:

  • 표준화된 임포트 순서
  • 연산자 주변의 일관된 간격
  • 적절한 Javadoc 형식
  • 표준화된 메서드 매개 변수 정렬
  • 일관된 중괄호 배치

원래 기능을 유지하면서 이 모든 것이 이루어집니다.

샘플 튜토리얼 사용 사례: Royal Reserve Bank Java 프로젝트#

이 리포지터리에는 실제 시나리오에서 스타일 가이드 적용이 어떻게 작동하는지 보여주기 위한 뱅킹 튜토리얼 예시가 포함되어 있습니다. Royal Reserve Bank 프로젝트는 여러 Java 서비스를 가진 마이크로서비스 아키텍처를 따릅니다:

  • Account API
  • Asset Management API
  • Transaction API
  • Notification API
  • API Gateway
  • Config Server
  • Discovery Server

샘플 예시는 AssetManagementService.java 클래스에 엔터프라이즈 스타일 가이드라인을 적용하며 다음에 대한 적절한 형식을 보여줍니다:

  1. 임포트 구성
  2. Javadoc 표준
  3. 메서드 매개 변수 정렬
  4. 변수 이름 규칙
  5. 예외 처리 패턴

조직에 맞게 사용자 지정#

조직의 요구 사항에 맞게 이 프롬프트를 조정하려면:

  1. 스타일 가이드 교체

    • 조직의 스타일 가이드 리포지터리를 가리키도록 변경
    • 특정 스타일 가이드 문서 참조
  2. 대상 파일 선택

    • 스타일 가이드를 적용할 특정 파일 또는 패턴 선택
    • 초기 구현을 위해 가시성이 높은 코드 파일 우선 순위 지정
  3. 추가 검증

    • 사용자 정의 검증 요구 사항 추가
    • 표준 스타일 규칙에 대한 예외 지정
  4. CI/CD와 통합

    • CI/CD 파이프라인의 일부로 프롬프트를 실행하도록 구성
    • 지속적인 준수를 위한 자동화된 스타일 검사 설정

문제 해결#

일반적인 문제 및 해결 방법:

  • 접근 거부: AI 에이전트가 두 리포지터리에 모두 접근할 적절한 권한이 있는지 확인하세요
  • 스타일 가이드 없음: 스타일 가이드 경로와 브랜치가 올바른지 확인하세요
  • 기능 변경: 스타일 변경 사항을 적용한 후 기능을 확인하기 위해 모든 테스트를 실행하세요

기여#

다음을 통해 이 프롬프트를 개선해 주세요:

  • 더 많은 스타일 규칙 설명 추가
  • 다양한 Java 프로젝트 유형에 대한 예시 만들기
  • 검증 워크플로우 개선
  • 추가 정적 분석 도구와의 통합 추가

코딩 스타일 적용을 위한 Duo Workflow 사용 사례

Tier: Ultimate with GitLab Duo Workflow
Offering: GitLab.com
원문 보기
요약

이 문서는 프롬프트 및 컨텍스트 라이브러리를 포함한 GitLab Duo Workflow 솔루션에 대해 설명합니다. 이 솔루션은 GitLab 이슈를 프롬프트로 제공하고 스타일 가이드를 컨텍스트로 제공합니다. GitLab Duo Workflow에 대한 자세한 내용은 여기 문서를 참조하세요.

시작하기#

솔루션 컴포넌트 다운로드#

  1. 계정 팀으로부터 초대 코드를 받으세요.
  2. 초대 코드를 사용하여 솔루션 컴포넌트 웹 스토어에서 솔루션 컴포넌트를 다운로드하세요.

Duo Workflow 사용 사례: 스타일 가이드로 Java 애플리케이션 개선#

이 문서는 프롬프트 및 컨텍스트 라이브러리를 포함한 GitLab Duo Workflow 솔루션에 대해 설명합니다. 이 솔루션의 목적은 정의된 스타일을 기반으로 애플리케이션 코딩을 개선하는 것입니다.

이 솔루션은 GitLab 이슈를 프롬프트로 제공하고 스타일 가이드를 컨텍스트로 제공합니다. GitLab Duo Workflow를 사용하여 코드베이스에 Java 스타일 가이드라인을 자동화하도록 설계되었습니다. 프롬프트 및 컨텍스트 라이브러리를 통해 Duo Workflow는 다음을 수행할 수 있습니다:

  1. GitLab 리포지터리에 저장된 중앙화된 스타일 가이드 콘텐츠에 접근,
  2. 도메인별 코딩 표준 이해,
  3. 기능을 유지하면서 Java 코드에 일관된 형식 적용.

GitLab Duo Workflow에 대한 자세한 내용은 여기 문서를 참조하세요.

주요 이점#

  • 모든 Java 코드베이스에 일관된 스타일 적용
  • 수동 작업 없이 스타일 적용 자동화
  • 가독성을 높이면서 코드 기능 유지
  • GitLab VS Code와 통합하여 원활한 구현 가능
  • 스타일 문제를 처리하는 데 소비되는 코드 리뷰 시간 단축
  • 개발자가 스타일 가이드라인을 이해하기 위한 학습 도구로 활용

샘플 결과#

적절히 구성되면 이 프롬프트는 코드를 엔터프라이즈 표준에 맞게 변환합니다. 다음 diff에 표시된 변환과 유사합니다:

지침, 작업 분석 및 해결 단계를 보여주는 Duo Workflow 보기

Duo Workflow의 스타일 가이드 변환 후 일관된 형식으로 업데이트된 코드 스니펫

솔루션 프롬프트 및 컨텍스트 라이브러리 구성#

기본 설정#

애플리케이션에 스타일을 검토하고 적용하는 에이전트 워크플로우를 실행하려면 이 사용 사례 프롬프트와 컨텍스트 라이브러리를 설정해야 합니다.

  1. Enterprise Code Quality Standards 프로젝트를 복제하여 프롬프트 및 컨텍스트 라이브러리를 설정합니다
  2. 라이브러리 파일 .gitlab/workflows/java-style-workflow.md의 프롬프트 콘텐츠로 GitLab 이슈 Review and Apply Style만듭니다
  3. 이슈 Review and Apply Style에서 구성 섹션에 자세히 설명된 워크플로우 변수를 구성합니다
  4. 프로젝트 Enterprise Code Quality Standards와 함께 VS Code에서 간단한 워크플로우 프롬프트로 Duo Workflow를 시작합니다
  5. 제안된 계획과 자동화된 작업을 검토하고 필요한 경우 워크플로우에 추가 입력을 제공하여 Duo Workflow와 함께 작업합니다
  6. 스타일이 적용된 코드 변경 사항을 리포지터리에 검토하고 커밋합니다

Duo Workflow 프롬프트 예시#

Follow the instructions in issue <issue_reference_id> for the file <path/file_name.java>. Make sure to access any issues or GitLab projects mentioned in the issue to retrieve all necessary information.

이 간단한 프롬프트는 Duo Workflow에 다음을 지시하기 때문에 강력합니다:

  1. 특정 이슈 ID의 자세한 요구 사항 읽기
  2. 참조된 스타일 가이드 리포지터리 접근
  3. 지정된 파일에 가이드라인 적용
  4. 이슈의 모든 지침 따르기

구성 가이드#

프롬프트는 솔루션 패키지의 .gitlab/workflows/java-style-workflow.md 파일에 정의되어 있습니다. 이 파일은 워크플로우 에이전트가 애플리케이션에 스타일 가이드 검토를 자동화하고 변경 사항을 적용하는 계획을 수립하도록 지시하는 GitLab 이슈를 만들기 위한 템플릿으로 사용됩니다.

.gitlab/workflows/java-style-workflow.md의 첫 번째 섹션에서 프롬프트에 대해 구성해야 하는 변수를 정의합니다.

변수 정의#

변수는 .gitlab/workflows/java-style-workflow.md 파일에 직접 정의됩니다. 이 파일은 AI 어시스턴트에게 지시하는 GitLab 이슈를 만들기 위한 템플릿으로 사용됩니다. 해당 파일에서 변수를 수정한 후 해당 파일의 콘텐츠로 새 이슈를 만드세요.

1. 컨텍스트로서의 스타일 가이드 리포지터리#

프롬프트가 조직의 스타일 가이드 리포지터리를 가리키도록 구성되어야 합니다. java-style-prompt.md 파일에서 다음 변수를 교체하세요:

  • {{GITLAB_INSTANCE}}: GitLab 인스턴스 URL (예: https://gitlab.example.com)
  • {{STYLE_GUIDE_PROJECT_ID}}: Java 스타일 가이드가 포함된 GitLab 프로젝트 ID
  • {{STYLE_GUIDE_PROJECT_NAME}}: 스타일 가이드 프로젝트의 표시 이름
  • {{STYLE_GUIDE_BRANCH}}: 최신 스타일 가이드가 포함된 브랜치 (기본값: main)
  • {{STYLE_GUIDE_PATH}}: 리포지터리 내 스타일 가이드 문서 경로

예시:

GITLAB_INSTANCE=https://gitlab.example.com
STYLE_GUIDE_PROJECT_ID=gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards
STYLE_GUIDE_PROJECT_NAME=Enterprise Java Standards
STYLE_GUIDE_BRANCH=main
STYLE_GUIDE_PATH=coding-style/java/guidelines/java-coding-standards.md

2. 스타일 개선을 적용할 대상 리포지터리#

동일한 java-style-prompt.md 파일에서 스타일 가이드를 적용할 파일을 구성합니다:

  • {{TARGET_PROJECT_ID}}: Java 프로젝트의 GitLab ID
  • {{TARGET_FILES}}: 대상 파일 또는 패턴 (예: "src/main/java/**/*.java")

예시:

TARGET_PROJECT_ID=royal-reserve-bank
TARGET_FILES=asset-management-api/src/main/java/com/royal/reserve/bank/asset/management/api/service/AssetManagementService.java

AI 생성 코드에 대한 중요 참고사항#

⚠️ 중요 면책 조항:

GitLab VS Code는 비결정적인 에이전트 AI를 사용합니다. 즉:

  • 동일한 입력으로도 실행 결과가 달라질 수 있습니다
  • AI 어시스턴트의 스타일 가이드라인 이해 및 적용이 매번 약간씩 다를 수 있습니다
  • 이 문서에서 제공되는 예시는 예시일 뿐이며 실제 결과는 다를 수 있습니다

AI 생성 코드 변경 사항 처리를 위한 모범 사례:

  1. 항상 생성된 코드 검토: 철저한 사람 검토 없이 AI 생성 변경 사항을 머지하지 마세요
  2. 적절한 머지 리퀘스트 프로세스 따르기: 표준 코드 리뷰 절차를 사용하세요
  3. 모든 테스트 실행: 머지하기 전에 모든 단위 및 통합 테스트가 통과하는지 확인하세요
  4. 스타일 준수 확인: 변경 사항이 스타일 가이드 기대치와 일치하는지 확인하세요
  5. 점진적 적용: 처음에는 소수의 파일 세트에 스타일 변경 사항을 적용하는 것을 고려하세요

이 도구는 개발자를 지원하기 위한 것이지 코드 리뷰 프로세스에서 인간의 판단을 대체하기 위한 것이 아님을 기억하세요.

단계별 구현#

  1. 스타일 가이드 이슈 만들기

    • 프로젝트에 새 이슈 만들기 (예: 이슈 #3)

    • 적용할 스타일 가이드라인에 대한 자세한 정보 포함

    • 해당되는 경우 외부 스타일 가이드 리포지터리 참조

    • 다음과 같은 요구 사항 지정:

      Task: Code Style Update
      Description: Apply the enterprise standard Java style guidelines to the codebase.
      Reference Style Guide: Enterprise Java Style Guidelines (https://gitlab.com/gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards/-/blob/main/coding-style/java/guidelines/java-coding-standards.md)
      Constraints:
      - Adhere to Enterprise Standard Java Style Guide
      - Maintain Functionality
      - Implement automated style checks
      
  2. 프롬프트 구성

    • java-style-prompt.md에서 템플릿 복사
    • 모든 구성 변수 입력
    • 프로젝트별 예외 또는 요구 사항 추가
  3. GitLab VS Code를 통해 실행

    • Duo Workflow에 구성된 프롬프트 제출

    • Duo Workflow는 샘플 워크플로우 실행에 표시된 것처럼 다단계 프로세스를 실행합니다:

      • 특정 도구를 사용하여 작업 계획 수립 (run_read_only_git_command, read_file, find_files, edit_file)
      • 참조된 이슈 접근
      • 엔터프라이즈 Java 스타일 가이드 가져오기
      • 현재 코드 구조 분석
      • 지정된 파일에 스타일 가이드라인 적용
      • 변경 사항이 기능을 유지하는지 확인
      • 변경된 내용에 대한 자세한 보고서 제공
  4. 검토 및 구현

    • 제안된 변경 사항 검토
    • 코드베이스에 변경 사항 구현
    • 기능이 유지되는지 테스트 실행
    • GitLab VS Code 인터페이스를 통해 작업 진행 상황 모니터링

샘플 워크플로우 실행#

적절히 구성되면 GitLab VS Code 확장이 스타일 가이드라인 적용을 위한 자세한 계획을 실행합니다. 다음은 워크플로우 실행이 어떻게 보이는지에 대한 샘플입니다:

샘플 워크플로우 계획#

AI 어시스턴트는 먼저 특정 도구를 사용하는 실행 계획을 만듭니다:

  1. run_read_only_git_command를 사용하여 https://gitlab.com/gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards.git에서 coding-style/java/guidelines/java-coding-standards.md 파일을 위해 Enterprise Java Standards 프로젝트에서 콘텐츠를 가져와 Java 스타일 가이드라인에 접근합니다. 지원 도구: run_read_only_git_command

  2. read_file 도구를 사용하여 AssetManagementService.java의 현재 콘텐츠를 읽고 분석하여 구조를 이해하고 스타일 업데이트가 필요한 영역을 식별합니다. 지원 도구: read_file

  3. 관련 서비스 클래스에서 일관된 스타일 적용을 위해 find_files를 사용하여 프로젝트에서 유사한 파일을 검색합니다. 지원 도구: find_files

  4. edit_file 도구를 사용하여 AssetManagementService.java를 편집하여 스타일 가이드라인을 적용합니다. 주요 내용:

    • 패키지 및 임포트 구성
    • 클래스 및 메서드 문서화
    • 코드 들여쓰기 및 간격
    • 어노테이션 배치
    • 메서드 매개 변수 형식 지정. 지원 도구: edit_file
  5. grep_files를 사용하여 코드베이스 전체에서 어노테이션 패턴을 확인하여 모든 Lombok 어노테이션 (@Service, @RequiredArgsConstructor, @Slf4j)이 스타일 가이드에 따라 올바르게 형식화되어 있는지 확인합니다. 지원 도구: grep_files

샘플 분석 출력#

그러면 어시스턴트가 파일과 요구 사항을 분석합니다:

이슈 #3과 AssetManagementService.java 파일을 분석했습니다. 다음은 발견한 내용입니다:

  1. 이슈 #3은 Royal Banking 코드베이스에 엔터프라이즈 표준 Java 스타일 가이드라인을 적용하는 것입니다.

  2. AssetManagementService.java 파일은 asset-management-api 모듈에 있습니다.

  3. 스타일 가이드라인은 gl-demo-ultimate-zhenderson/sandbox/enterprise-java-standards의 별도 GitLab 프로젝트에 저장되어 있습니다.

  4. 현재 AssetManagementService.java 파일에는 다음이 포함되어 있습니다:

    1. 패키지 및 임포트 구문
    2. Spring 어노테이션이 있는 서비스 클래스
    3. 자산 가용성 확인을 위한 하나의 public 메서드
    4. Lombok 어노테이션
    5. Javadoc 댓글

이슈에서 다음이 요구됩니다:

  1. 엔터프라이즈 표준 Java 스타일 가이드라인에 따른 형식 지정
  2. 자동화된 스타일 검사 구현
  3. 기존 기능 유지
  4. 스타일 업데이트 후 모든 테스트 통과 보장

구현을 진행하려면 다음이 필요합니다:

  1. Enterprise Java Standards 프로젝트에서 Java 스타일 가이드라인 접근
  2. AssetManagementService.java에 스타일 가이드라인 적용
  3. 변경 사항이 기능에 영향을 미치지 않는지 확인
  4. 업데이트 후 모든 테스트 통과 보장

샘플 구현 결과#

실행 후 어시스턴트는 변환된 코드와 함께 다음을 포함한 변경 사항에 대한 설명을 제공합니다:

  1. 적용된 스타일 가이드라인 요약
  2. 적절한 형식의 변환된 코드
  3. 주요 스타일 변경 사항에 대한 설명
  4. 자동화된 스타일 적용에 대한 권장 사항

변경 사항에는 일반적으로 다음이 포함됩니다:

  • 표준화된 임포트 순서
  • 연산자 주변의 일관된 간격
  • 적절한 Javadoc 형식
  • 표준화된 메서드 매개 변수 정렬
  • 일관된 중괄호 배치

원래 기능을 유지하면서 이 모든 것이 이루어집니다.

샘플 튜토리얼 사용 사례: Royal Reserve Bank Java 프로젝트#

이 리포지터리에는 실제 시나리오에서 스타일 가이드 적용이 어떻게 작동하는지 보여주기 위한 뱅킹 튜토리얼 예시가 포함되어 있습니다. Royal Reserve Bank 프로젝트는 여러 Java 서비스를 가진 마이크로서비스 아키텍처를 따릅니다:

  • Account API
  • Asset Management API
  • Transaction API
  • Notification API
  • API Gateway
  • Config Server
  • Discovery Server

샘플 예시는 AssetManagementService.java 클래스에 엔터프라이즈 스타일 가이드라인을 적용하며 다음에 대한 적절한 형식을 보여줍니다:

  1. 임포트 구성
  2. Javadoc 표준
  3. 메서드 매개 변수 정렬
  4. 변수 이름 규칙
  5. 예외 처리 패턴

조직에 맞게 사용자 지정#

조직의 요구 사항에 맞게 이 프롬프트를 조정하려면:

  1. 스타일 가이드 교체

    • 조직의 스타일 가이드 리포지터리를 가리키도록 변경
    • 특정 스타일 가이드 문서 참조
  2. 대상 파일 선택

    • 스타일 가이드를 적용할 특정 파일 또는 패턴 선택
    • 초기 구현을 위해 가시성이 높은 코드 파일 우선 순위 지정
  3. 추가 검증

    • 사용자 정의 검증 요구 사항 추가
    • 표준 스타일 규칙에 대한 예외 지정
  4. CI/CD와 통합

    • CI/CD 파이프라인의 일부로 프롬프트를 실행하도록 구성
    • 지속적인 준수를 위한 자동화된 스타일 검사 설정

문제 해결#

일반적인 문제 및 해결 방법:

  • 접근 거부: AI 에이전트가 두 리포지터리에 모두 접근할 적절한 권한이 있는지 확인하세요
  • 스타일 가이드 없음: 스타일 가이드 경로와 브랜치가 올바른지 확인하세요
  • 기능 변경: 스타일 변경 사항을 적용한 후 기능을 확인하기 위해 모든 테스트를 실행하세요

기여#

다음을 통해 이 프롬프트를 개선해 주세요:

  • 더 많은 스타일 규칙 설명 추가
  • 다양한 Java 프로젝트 유형에 대한 예시 만들기
  • 검증 워크플로우 개선
  • 추가 정적 분석 도구와의 통합 추가