GitHub Copilot, ChatGPT 또는 기타 코딩 에이전트와 같은 AI 도구에서 생성된 코드를 검토하는 것은 최신 개발자 워크플로의 필수적인 부분이 되고 있습니다. 이 가이드에서는 실제 기술을 제공하고, 인간 감독 및 테스트의 중요성을 강조하며, AI가 검토 프로세스에 어떻게 도움이 되는지 보여 주는 예제 프롬프트를 포함합니다.
특히 레거시 코드베이스와 더 큰 끌어오기 요청의 경우 철저한 검토 프로세스가 중요합니다. 인간의 전문 지식을 자동화된 도구와 결합하면 AI 생성 코드가 품질 표준을 충족하고 프로젝트 목표에 부합하며 모범 사례를 준수할 수 있습니다.
Copilot를 사용하면 검토 프로세스를 간소화하고 AI 생성 코드에서 잠재적인 문제를 식별하는 기능을 향상시킬 수 있습니다.
1. 기능 검사 시작
항상 자동화된 테스트 및 정적 분석 도구를 먼저 실행합니다.
- 코드가 컴파일되고 모든 테스트가 통과하는지 확인합니다. 새 경고 또는 오류를 확인합니다.
- CodeQL 및Dependabot와 같은 도구를 사용하여 취약점 및 종속성 문제를 파악하세요.
- 단위 테스트 생성 및웹 페이지에 대한 엔드 투 엔드 테스트 만들기을 참조하여 Copilot을(를) 사용한 코드 확인 예제를 확인하세요.
예시 프롬프트
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 쿡북 을 참조하고 팀 문서에서 유용한 레시피를 공유합니다.
추가 읽기
- GitHub 리소스의최신 코드 검토에 대한 사용자 감독