개요
AI 도구의 사용은 점점 소프트웨어 개발자의 일상 워크플로에서 기본적인 부분이 되고 있습니다. 직업 시장에서 경쟁력을 갖기 위해서는 개발자로서 직면하는 각 작업에 사용할 AI 도구를 알고 있어야 합니다.
GitHub의 AI 도구는 SDLC(소프트웨어 개발 수명 주기)의 모든 단계를 지원합니다.
- 계획:
- Copilot Chat 은 사용자가 브레인스토밍을 수행하고 프로젝트에 가장 적합한 기술을 식별하는 데 도움이 될 수 있습니다.
- Copilot Chat 은 아이디어를 추적하는 데 도움이 되는 이슈를 만들 수 있습니다.
- 코드 만들기:
- Copilot 코드 완성 기능은 사용자가 입력할 때 코드를 추가하는 데 도움을 줍니다.
- 다음 편집 제안(공개 미리 보기)는 가능한 다음 편집 작업을 예측하고 완성을 제안합니다.
- Copilot Chat 은 대화형 환경에서 질문에 답변하고 제안을 제공할 수 있습니다.
- Copilot 코딩 에이전트 를 오픈 이슈에 할당할 수 있으며 이 경우 필요한 변경 내용을 처리하기 위해 끌어오기 요청을 자동으로 발생시킵니다.
- 검토:
- Copilot 코드 검토 는 사용자 피드백을 즐겨 찾는 IDE에서 제공하거나 GitHub에 대한 끌어오기 요청 검토로 제공합니다.
- 테스트:
- Copilot Chat 은 테스트를 작성하고 디버그하는 데 도움이 될 수 있습니다.
- 배포:
- Copilot Chat 은 CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인을 구성하는 데 도움이 될 수 있습니다.
- Operation:
- Copilot 코딩 에이전트(공개 미리 보기)는 오픈 이슈에 대한 끌어오기 요청을 발생시킬 수 있습니다.
- Copilot Chat 은 사용자가 직접 처리 중인 작업에 도움을 줄 수 있습니다.
계획
계획 단계에서는 프로젝트의 목표, 범위 및 요구 사항을 정의하고, 빌드해야 하는 항목과 달성 방법을 요약하여 개발 방향을 설정합니다.
GitHub에서 Copilot-powered issue creation (공개 미리 보기)을 사용하여 아이디어 추적을 간소화합니다. 짧은 자연어 프롬프트를 제공(또는 이미지 업로드)하면 Copilot에서 구조화된 이슈를 생성합니다.
해결할 이슈를 선택하면 Copilot Chat 이 프로젝트에 대한 아이디어를 브레인스토밍하고 필요한 다양한 도구, 라이브러리 및 리소스를 알아보는 데 도움을 줄 수 있습니다. 향후 작업 방향에 대한 제안을 얻기 위해 Copilot Chat에 구상 중인 프로젝트에 대해 일반화된 질문을 할 수 있습니다. 예시:
I'd like to build an web app that helps users track their daily habits and provides personalized recommendations. Can you suggest features and technologies I could use?
만들기
만들기 단계에서는 애플리케이션에 대한 코드를 작성하고 구체화합니다. 여기서는 기능을 구현하고, 버그를 수정하고, 코드베이스를 반복하여 프로젝트를 구현할 수 있습니다.
Copilot은 즐겨 찾는 IDE 또는 GitHub에서 코딩할 때 자동 완성 스타일 코딩 제안을 제공하므로 코드를 더 빠르게 작성하고 구체화할 수 있습니다. IDE에서 댓글을 사용하여 코드를 직접 작성하거나 자연어로 의도를 설명할 수 있으며 Copilot에서 관련 제안을 생성합니다.
다음 편집 제안(공개 미리 보기)을 사용하여 Copilot은 현재 변경한 내용을 기준으로 관련 편집 내용을 예측합니다. 예를 들어 변수의 이름을 바꾸거나 함수의 매개 변수를 업데이트하는 경우 코드 전체에서 해당 업데이트를 제안합니다. 이렇게 하면 일관성을 유지하는 데 도움이 되고 오류 발생 가능성을 줄일 수 있습니다.
질문 모드에서 Copilot Chat 사용
질문 모드에서 Copilot Chat을 보조 프로그래머로 사용하여 코딩 작업에 대한 도움을 받고, 까다로운 개념을 이해하고, 코드를 개선할 수 있습니다. 질문을 하거나, 설명을 보거나, 실시간으로 제안을 요청할 수 있습니다.
-
Can you explain what this JavaScript function does? I'm not sure why it uses a forEach loop instead of a for loop.
-
What’s the difference between let, const, and var in JavaScript? When should I use each one?
편집 모드에서 Copilot Chat 사용
Copilot에서 제안하는 편집 내용을 보다 세부적으로 제어하려면 편집 모드에서 Copilot Chat을 사용합니다. 편집 모드에서는 Copilot이 변경할 수 있는 파일을 선택하고, 반복할 때마다 Copilot에 컨텍스트를 제공하고, 제안된 편집 내용을 수락할지 여부를 결정합니다.
-
Refactor the calculateTotal function to improve readability and efficiency.
-
The login function is not working as expected. Can you debug it?
-
Format this code to follow Python’s PEP 8 style guide.
에이전트 모드에서 Copilot Chat 사용
에이전트 모드에서 Copilot Chat은 반복적인 작업을 자동화하고 프로젝트 내에서 직접 워크플로를 관리하는 데 도움이 될 수 있습니다. 코드를 변경한 후 끌어오기 요청을 만드는 데 사용합니다. 프로젝트를 진행하는 동안 백그라운드에서 테스트 및 Linter를 실행하는 데 사용할 수도 있습니다.
-
Create a pull request for the recent changes in the user-auth module and include a summary of the updates.
-
Run all tests and linters for the payment-processing module and provide a summary of any issues or errors found.
리뷰
검토 단계는 코드의 품질과 안정성을 보장합니다. 이 단계에는 변경 내용을 분석하고, 잠재적인 이슈를 식별하고, 코드베이스의 전반적인 구조와 기능을 개선하는 작업이 포함됩니다.
IDE에서 코딩하는 동안 Copilot에 다음을 요청합니다.
- 선택한 변경 내용 검토: 코드의 특정 부분을 강조 표시하고 초기 검토를 위해 Copilot에 문의하세요. 이 방식은 더 작은 편집에 대한 빠른 피드백을 얻는 데 적합합니다.
- 모든 변경 내용 검토: 파일 또는 프로젝트의 모든 변경 내용에 대한 심층 검토를 요청합니다. Copilot은 작업을 분석하고 개선 사항을 제안합니다.
GitHub 웹 사이트에서 다른 사용자의 피드백을 받을 준비가 되면 먼저 끌어오기 요청에서 Copilot을 검토자로 할당합니다. 사용자가 검토하기 전에 코드 품질을 개선하거나 잠재적인 버그를 식별할 수 있는 영역을 강조 표시하는 댓글이 자동으로 추가됩니다.
테스트
테스트 단계에서는 애플리케이션이 의도한 대로 작동하는지 확인합니다. 이 단계에서는 버그를 잡아내고, 기능을 보장하며, 배포 전에 코드 품질을 유지하기 위한 테스트를 작성하고 실행하는 작업이 포함됩니다.
Copilot Chat 은 단위 및 통합 테스트를 생성하고, 오류를 디버깅하고, 포괄적인 검사를 보장하기 위해 추가 테스트 사례를 제안하여 지원할 수 있습니다. 다음은 몇 가지 프롬프트 예제입니다.
-
Write unit tests for this function to calculate the factorial of a number. Include edge cases like 0 and negative numbers.
-
How do I run these tests using Python's unittest framework?
-
Write integration tests for the deposit function in the BankAccount class. Use mocks to simulate the NotificationSystem.
-
What additional tests should I include to ensure full coverage for this module?
배포
배포 단계에는 프로덕션을 위해 코드를 준비하고 원활한 릴리스를 보장하는 작업이 포함됩니다.
Copilot Chat 은 배포 스크립트를 구성하고, CI/CD 파이프라인을 설정하고, 이슈를 해결하는 데 도움이 될 수 있습니다. 다음은 몇 가지 프롬프트 예제입니다.
-
Write a deployment script for a Node.js application using GitHub Actions to deploy to an AWS EC2 instance.
-
Set up a GitHub Actions workflow to build, test, and deploy a Python application to Heroku.
-
Analyze this deployment log and suggest why the deployment failed.
연산
작업 단계에서는 애플리케이션이 원활하게 실행되고 사용자 기대치를 충족하는지 확인하기 위해 프로덕션 환경에서 애플리케이션을 유지 관리하고 모니터링하는 데 중점을 둡니다. 이 단계에는 종종 프로덕션 이슈 디버깅, 성능 최적화 및 시스템 안정성 보장과 같은 작업이 포함됩니다.
Copilot 코딩 에이전트(공개 미리 보기)를 프로덕션 환경에서 애플리케이션을 유지 관리하고 개선하는 데 도움이 되는 자율 에이전트로 사용할 수 있습니다. GitHub 이슈를 Copilot에 할당하고, 리포지토리를 자율적으로 탐색하고, 잠재적인 수정 사항을 식별하고, 제안된 변경 내용으로 끌어오기 요청을 만듭니다. 그러면 자동으로 사용자에게 검토가 요청됩니다.
직접 해결하려는 이슈의 경우 Copilot Chat 에서 로그 분석, 이슈 디버깅, 최적화를 제안하는 데 도움을 받을 수 있습니다. 예시:
-
Analyze this error log and suggest possible causes for the issue.
-
Write a script to monitor the memory usage of this application and alert when it exceeds a threshold.
-
How can I optimize the database queries in this code to improve performance?
다음 단계
다음 작업을 시작하기 전에 잠시 시간을 내어 작업을 더 빠르고 효율적으로 만들기 위한 올바른 도구를 식별합니다.