Skip to main content

AI 생성 코드 검토

AI 생성 코드를 확인하고 유효성을 검사하는 기술과 부조종사 채팅가 어떻게 도움이 될 수 있는지 알아봅니다.

GitHub Copilot, ChatGPT 또는 기타 코딩 에이전트와 같은 AI 도구에서 생성된 코드를 검토하는 것은 최신 개발자 워크플로의 필수적인 부분이 되고 있습니다. 이 가이드에서는 실제 기술을 제공하고, 인간 감독 및 테스트의 중요성을 강조하며, AI가 검토 프로세스에 어떻게 도움이 되는지 보여 주는 예제 프롬프트를 포함합니다.

특히 레거시 코드베이스와 더 큰 끌어오기 요청의 경우 철저한 검토 프로세스가 중요합니다. 인간의 전문 지식을 자동화된 도구와 결합하면 AI 생성 코드가 품질 표준을 충족하고 프로젝트 목표에 부합하며 모범 사례를 준수할 수 있습니다.

Copilot를 사용하면 검토 프로세스를 간소화하고 AI 생성 코드에서 잠재적인 문제를 식별하는 기능을 향상시킬 수 있습니다.

1. 기능 검사 시작

항상 자동화된 테스트 및 정적 분석 도구를 먼저 실행합니다.

예시 프롬프트

  • What functional tests to validate this code change do not exist or are missing?
  • What possible vulnerabilities or security issues could this code introduce?

2. 컨텍스트 및 의도 확인

AI 생성 코드가 프로젝트의 목적과 아키텍처에 맞는지 확인합니다.

  • 요구 사항 및 디자인 패턴에 맞게 AI 출력을 검토합니다.
  • "이 코드가 올바른 문제를 해결하나요? 그것은 우리의 규칙을 따르는가?"
  • README, 문서, 그리고 최근 풀 리퀘스트를 AI의 컨텍스트를 위한 시작점으로 사용하세요. AI에 신뢰할 수 있는 원본, 사용하지 않을 원본을 알려주고 사용하기에 좋은 예제를 제공합니다.
  • 연구 종합을 시도하여 Copilot에서 설명서와 연구를 통해 코드 생성을 수행하는 방법을 확인해 보세요.
  • AI에 연구 및 계획 작업을 수행하도록 요청할 때는 AI 출력을 구조화된 아티팩트로 증류한 다음 코드 생성과 같은 향후 AI 작업의 컨텍스트가 되는 것이 좋습니다.

예시 프롬프트

  • How does this refactored code section align with our project architecture?
  • What similar features or established design patterns did you identify and model your code after?
  • When examining this code, what assumptions about business logic, design preferences, or user behaviors have been made?
  • What are the potential issues or limitations with this approach?

3. 코드 품질 평가

인간의 표준은 여전히 중요합니다.

  • 가독성, 유지 관리 효율성 및 명확한 이름 지정을 찾습니다.
  • 따르기 어렵거나 리팩터링하는 데 다시 작성하는 것보다 더 오래 걸리는 코드를 수락하지 마세요.
  • 잘 문서화되고 명확한 주석이 포함된 코드를 선호합니다.
  • 코드 가독성 및 유지 관리 기능 향상에서 생성된 코드를 검토하고 리팩터링하는 방법에 대한 프롬프트 및 팁을 확인합니다.

예시 프롬프트

  • What are some readability and maintainability issues in this code?
  • How can this code be improved for clarity and simplicity? Suggest an alternative structure or variable names to enhance clarity.
  • How could this code be broken down into smaller, testable units?

4. 종속성 조사

새 패키지 및 라이브러리에 주의하세요.

  • 제안된 종속성이 존재하고 적극적으로 유지 관리되는지 확인합니다. 새로운 종속성의 원본 및 기여자를 고려하여 경쟁적이지 않은 평판이 좋은 원본에서 제공되는지 확인합니다.
  • 라이선스를 검토합니다. 프로젝트의 라이선스와 호환되지 않는 코드 또는 종속성을 도입하지 마세요(예: MIT 라이선스 프로젝트의 AGPL-3.0 또는 선언된 라이선스가 없는 종속성).
  • 환각되거나 의심스러운 패키지(예: 실제로 존재하지 않는 패키지) 또는 slopsquatting(가짜 또는 악성 패키지를 사용하는 LLM에 대한 이론적 공격)을 조심하세요.
  • 템플릿 만들기 은 Copilot가 종속성 설정을 지원하는 방법을 보여주지만, 제안된 패키지를 항상 직접 확인하는 것이 좋은 습관입니다.
  • GitHub Copilot 코드 참조을 사용하여 공개적으로 사용 가능한 코드와 일치 항목을 검토합니다.

예시 프롬프트

  • Analyze the attached package.json file and list all dependencies with their respective licenses.
  • Are each of the dependencies listed in this package.json file actively maintained (that is, not archived and have recent maintainer activity)?

5. AI 관련 문제 발견

AI 도구는 고유한 실수를 할 수 있습니다.

  • 환각된 API, 무시된 제약 조건 또는 잘못된 논리를 찾습니다.
  • 수정되지 않고 대신 삭제되거나 건너뛴 테스트를 관찰하세요.
  • "올바르게 보이지만 의도와 일치하지 않는" 코드에 회의적이어야 합니다.
  • 잘못된 JSON 디버깅을 예로 들어, Copilot을(를) 사용하여 미묘한 오류를 찾아내고 디버깅하는 방법을 확인하세요.

예시 프롬프트

  • What was the reasoning behind the code change to delete the failing test? Suggest some alternatives that would fix the test instead of deleting it.
  • What potential complexities, edge cases, or scenarios are there that this code might not handle correctly?
  • What specific technical questions does this code raise that require human judgment or domain expertise to evaluate properly?

6. 공동 검토 사용

페어링 및 팀 입력은 미묘한 문제를 해결하는 데 도움이 됩니다.

  • 팀 동료에게 복잡하거나 중요한 변경 내용을 검토하도록 요청합니다.
  • 검사 목록을 사용하여 모든 주요 검토 지점(기능, 보안, 유지 관리 기능)이 적용되도록 합니다.
  • 팀 전체에서 AI 사용에 대한 성공적인 프롬프트 및 패턴을 공유합니다.
  • Copilot 공동 작업 및 문서 결과를 사용하는 방법에 대한 예제는효과적인 커뮤니케이션 을 참조하세요.

7. 수행할 수 있는 기능 자동화

도구에서 반복적인 작업을 처리할 수 있도록 합니다.

  • 스타일, Linting 및 보안에 대한 CI 검사를 설정합니다.
  • 경고 및 종속성 업데이트에 데이터 변수 {product.prodname_dependabot}를 사용합니다.
  • 정적 분석을 위해 CodeQL 또는 유사한 스캐너를 사용합니다.
  • GitHub Copilot 제안과 일치하는 공용 코드 찾기 은 Copilot가 코드 패턴을 추적하고 검색 작업을 자동화하는 데 어떻게 도움이 되는지 보여줍니다.
  • 추론 기능이 있는 AI 에이전트가 검토 프로세스의 일부를 자동화하는 데 도움이 될 수 있는지 고려합니다. 예를 들어 사용자 검토를 요청_하기 전에_ 표준에 대한 초안 끌어오기 요청을 평가하고 정확도, 적절한 어조 및 비즈니스 논리를 확인하는 자체 검토 에이전트를 빌드합니다.

8. 워크플로 계속 개선

새로운 AI 도구와 기술을 수용하면 워크플로를 더욱 효과적으로 만들 수 있습니다.

  • AI 생성 코드를 검토하기 위한 모범 사례를 문서화합니다.
  • 팀의 "AI 챔피언"이 팁과 워크플로를 공유하도록 장려합니다.
  • AI 검토 기술 및 리소스를 포함하도록 온보딩 및 기여 가이드를 업데이트합니다. 리포지토리의CONTRIBUTING.md 파일을 사용하여 AI에서 생성된 소스 코드 및 콘텐츠에 대한 기대치를 문서화합니다.리포지토리 기여자에 대한 지침 설정을 참조하세요.
  • 영감을 얻기 위해GitHub Copilot Chat 쿡북 을 참조하고 팀 문서에서 유용한 레시피를 공유합니다.

추가 읽기