개요
AI 도구의 사용은 점점 소프트웨어 개발자의 일상 워크플로에서 기본적인 부분이 되고 있습니다. 직업 시장에서 경쟁력을 갖기 위해서는 개발자로서 직면하는 각 작업에 사용할 AI 도구를 알고 있어야 합니다.
GitHub의 AI 도구는 SDLC(소프트웨어 개발 수명 주기)의 모든 단계를 지원합니다.
- 계획:
- Copilot은 아이디어를 추적하는 데 도움이 되는 이슈를 만들 수 있습니다.
- Copilot 채팅은 사용자가 브레인스토밍을 수행하고 프로젝트에 가장 적합한 기술을 식별하는 데 도움이 될 수 있습니다.
- 코드 만들기:
- Copilot 코드 완성 기능은 사용자가 입력할 때 코드를 추가하는 데 도움을 줍니다.
- 다음 편집 제안 (공개 미리 보기)는 가능한 다음 편집 작업을 예측하고 완성을 제안합니다.
- Copilot 채팅은 대화형 환경에서 질문에 답변하고 제안을 제공할 수 있습니다.
- Copilot 코딩 에이전트를 오픈 이슈에 할당할 수 있으며 이 경우 필요한 변경 내용을 처리하기 위해 끌어오기 요청을 자동으로 발생시킵니다.
- 검토:
- Copilot 코드 검토는 사용자 피드백을 즐겨 찾는 IDE에서 제공하거나 GitHub에 대한 끌어오기 요청 검토로 제공합니다.
- 테스트:
- Copilot 채팅은 테스트를 작성하고 디버그하는 데 도움이 될 수 있습니다.
- 배포:
- Copilot 채팅은 CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인을 구성하는 데 도움이 될 수 있습니다.
- Operation:
- Copilot 코딩 에이전트(공개 미리 보기)는 오픈 이슈에 대한 끌어오기 요청을 발생시킬 수 있습니다.
- Copilot 채팅은 사용자가 직접 처리 중인 작업에 도움을 줄 수 있습니다.
계획
계획 단계에서는 프로젝트의 목표, 범위 및 요구 사항을 정의하고, 빌드해야 하는 항목과 달성 방법을 요약하여 개발 방향을 설정합니다.
GitHub에서 Copilot-powered issue creation (공개 미리 보기)을 사용하여 아이디어 추적을 간소화합니다. 짧은 자연어 프롬프트를 제공(또는 이미지 업로드)하면 Copilot에서 구조화된 이슈를 생성합니다.
해결할 이슈를 선택하면 Copilot 채팅 이 프로젝트에 대한 아이디어를 브레인스토밍하고 필요한 다양한 도구, 라이브러리 및 리소스를 알아보는 데 도움을 줄 수 있습니다. 향후 작업 방향에 대한 제안을 얻기 위해 Copilot 채팅에 구상 중인 프로젝트에 대해 일반화된 질문을 할 수 있습니다. 예시:
사용자가 본인의 일상적인 습관을 추적하도록 도와주고 개인 설정된 권장 사항을 제공하는 웹앱을 빌드하고 싶습니다. 사용할 수 있는 기능과 기술을 제안할 수 있나요?
만들기
만들기 단계에서는 애플리케이션에 대한 코드를 작성하고 구체화합니다. 여기서는 기능을 구현하고, 버그를 수정하고, 코드베이스를 반복하여 프로젝트를 구현할 수 있습니다.
Copilot은 즐겨 찾는 IDE 또는 GitHub에서 코딩할 때 자동 완성 스타일 코딩 제안을 제공하므로 코드를 더 빠르게 작성하고 구체화할 수 있습니다. IDE에서 댓글을 사용하여 코드를 직접 작성하거나 자연어로 의도를 설명할 수 있으며 Copilot에서 관련 제안을 생성합니다.
다음 편집 제안(공개 미리 보기)을 사용하여 Copilot은 현재 변경한 내용을 기준으로 관련 편집 내용을 예측합니다. 예를 들어 변수의 이름을 바꾸거나 함수의 매개 변수를 업데이트하는 경우 코드 전체에서 해당 업데이트를 제안합니다. 이렇게 하면 일관성을 유지하는 데 도움이 되고 오류 발생 가능성을 줄일 수 있습니다.
질문 모드에서 Copilot 채팅 사용
질문 모드에서 Copilot 채팅을 보조 프로그래머로 사용하여 코딩 작업에 대한 도움을 받고, 까다로운 개념을 이해하고, 코드를 개선할 수 있습니다. 질문을 하거나, 설명을 보거나, 실시간으로 제안을 요청할 수 있습니다.
이 JavaScript 함수가 수행하는 작업을 설명할 수 있나요?
for
루프 대신forEach
루프를 사용하는 이유를 잘 모르겠습니다.
JavaScript의
let
,const
및var
간의 차이점은 무엇인가요? 각 명령어를 언제 사용해야 하나요?
편집 모드에서 Copilot 채팅 사용
Copilot에서 제안하는 편집 내용을 보다 세부적으로 제어하려면 편집 모드에서 Copilot 채팅을 사용합니다. 편집 모드에서는 Copilot이 변경할 수 있는 파일을 선택하고, 반복할 때마다 Copilot에 컨텍스트를 제공하고, 제안된 편집 내용을 수락할지 여부를 결정합니다.
가독성 및 효율성을 향상시키기 위해
calculateTotal
함수를 리팩터링합니다.
login 함수가 예상대로 작동하지 않습니다. 디버그할 수 있나요?
Python의 PEP 8 스타일 가이드를 따르도록 이 코드의 서식을 지정합니다.
에이전트 모드에서 Copilot 채팅 사용
에이전트 모드에서 Copilot 채팅은 반복적인 작업을 자동화하고 프로젝트 내에서 직접 워크플로를 관리하는 데 도움이 될 수 있습니다. 코드를 변경한 후 끌어오기 요청을 만드는 데 사용합니다. 프로젝트를 진행하는 동안 백그라운드에서 테스트 및 Linter를 실행하는 데 사용할 수도 있습니다.
user-auth
모듈의 최근 변경 내용에 대한 끌어오기 요청을 만들고 업데이트 요약을 포함합니다.
payment-processing
모듈에 대한 모든 테스트 및 Linter를 실행하고 발견된 이슈 또는 오류에 대한 요약을 제공합니다.
리뷰
검토 단계는 코드의 품질과 안정성을 보장합니다. 이 단계에는 변경 내용을 분석하고, 잠재적인 이슈를 식별하고, 코드베이스의 전반적인 구조와 기능을 개선하는 작업이 포함됩니다.
IDE에서 코딩하는 동안 Copilot에 다음을 요청합니다.
- 선택한 변경 내용 검토: 코드의 특정 부분을 강조 표시하고 초기 검토를 위해 Copilot에 문의하세요. 이 방식은 더 작은 편집에 대한 빠른 피드백을 얻는 데 적합합니다.
- 모든 변경 내용 검토: 파일 또는 프로젝트의 모든 변경 내용에 대한 심층 검토를 요청합니다. Copilot은 작업을 분석하고 개선 사항을 제안합니다.
GitHub 웹 사이트에서 다른 사용자의 피드백을 받을 준비가 되면 먼저 끌어오기 요청에서 Copilot을 검토자로 할당합니다. 사용자가 검토하기 전에 코드 품질을 개선하거나 잠재적인 버그를 식별할 수 있는 영역을 강조 표시하는 댓글이 자동으로 추가됩니다.
테스트
테스트 단계에서는 애플리케이션이 의도한 대로 작동하는지 확인합니다. 이 단계에서는 버그를 잡아내고, 기능을 보장하며, 배포 전에 코드 품질을 유지하기 위한 테스트를 작성하고 실행하는 작업이 포함됩니다.
Copilot 채팅 은 단위 및 통합 테스트를 생성하고, 오류를 디버깅하고, 포괄적인 검사를 보장하기 위해 추가 테스트 사례를 제안하여 지원할 수 있습니다. 다음은 몇 가지 프롬프트 예제입니다.
이 함수에 대한 단위 테스트를 작성하여 숫자의 팩토리얼을 계산합니다. 0 및 음수와 같은 경계 사례를 포함합니다.
Python의 unittest 프레임워크를 사용하여 이러한 테스트를 실행하려면 어떻게 해야 하나요?
BankAccount 클래스의
deposit
함수에 대한 통합 테스트를 작성합니다. 모의 개체를 사용하여 NotificationSystem을 시뮬레이트합니다.
이 모듈에 대한 전체 검사를 보장하기 위해 포함해야 하는 추가 테스트는 무엇인가요?
배포
배포 단계에는 프로덕션을 위해 코드를 준비하고 원활한 릴리스를 보장하는 작업이 포함됩니다.
Copilot 채팅 은 배포 스크립트를 구성하고, CI/CD 파이프라인을 설정하고, 이슈를 해결하는 데 도움이 될 수 있습니다. 다음은 몇 가지 프롬프트 예제입니다.
GitHub Actions를 사용하여 AWS EC2 인스턴스에 배포하는 Node.js 애플리케이션에 대한 배포 스크립트를 작성합니다.
Python 애플리케이션을 빌드, 테스트 및 Heroku에 배포하는 GitHub Actions 워크플로를 설정합니다.
이 배포 로그를 분석하고 배포가 실패한 이유를 제안합니다.
연산
작업 단계에서는 애플리케이션이 원활하게 실행되고 사용자 기대치를 충족하는지 확인하기 위해 프로덕션 환경에서 애플리케이션을 유지 관리하고 모니터링하는 데 중점을 둡니다. 이 단계에는 종종 프로덕션 이슈 디버깅, 성능 최적화 및 시스템 안정성 보장과 같은 작업이 포함됩니다.
Copilot 코딩 에이전트(공개 미리 보기)를 프로덕션 환경에서 애플리케이션을 유지 관리하고 개선하는 데 도움이 되는 자율 에이전트로 사용할 수 있습니다. GitHub 이슈를 Copilot에 할당하고, 리포지토리를 자율적으로 탐색하고, 잠재적인 수정 사항을 식별하고, 제안된 변경 내용으로 끌어오기 요청을 만듭니다. 그러면 자동으로 사용자에게 검토가 요청됩니다.
직접 해결하려는 이슈의 경우 Copilot 채팅 에서 로그 분석, 이슈 디버깅, 최적화를 제안하는 데 도움을 받을 수 있습니다. 예시:
이 오류 로그를 분석하고 이슈의 가능한 원인을 제안합니다.
이 애플리케이션의 메모리 사용량을 모니터링하고 임계값을 초과하는 경우 경고하는 스크립트를 작성합니다.
이 코드에서 데이터베이스 쿼리를 최적화하여 성능을 향상하려면 어떻게 해야 하나요?
다음 단계
다음 작업을 시작하기 전에 잠시 시간을 내어 작업을 더 빠르고 효율적으로 만들기 위한 올바른 도구를 식별합니다.