단일 리포지토리 내에서 완료되는 수정이라면, 해당 리포지토리에서 세션을 시작하는 것으로 충분합니다. 반면, 여러 리포지토리에 걸친 과제나 여러 번에 나누어 진행하고 싶은 목표가 있다면, '어떤 작업이 어디까지 진행되었는지', '다음으로 무엇을 할 것인지'를 한곳에 모아두고 싶게 됩니다.
GitHub Copilot 앱에 추가된 Projects는 관련 작업을 시간의 흐름에 따라 정리하고, 목표에 맞춰 Copilot과 함께 진행할 수 있는 기능입니다. 단일 세션만으로는 다루기 어려운, 여러 리포지토리에 걸친 문제나 지속적인 작업을 Project라는 단위로 정리할 수 있습니다. 🗂️
이번 글에서는 리포지토리 단위의 세션과의 사용처 차이부터 진행 상황 확인, 자료 공유, 주기적 태스크 설정까지를 정리합니다.
지난 기사에서는 개별 작업을 세션을 통해 진행하고 Pull Request로 연결하는 흐름을 소개했습니다. 이번에는 그 한 단계 위에서 여러 작업을 묶는 Projects에 대해 살펴보겠습니다.
Project는 Copilot에게 지속적인 목표를 전달하고, 관련 작업들을 모아서 진행할 수 있는 공간입니다. 하나 이상의 리포지토리에 걸친 작업뿐만 아니라, 리포지토리가 필요하지 않은 작업에도 사용할 수 있습니다.
목표에 따라 Project 내에서 세션을 시작하거나, 주기적인 자동화를 설정하거나, 결과물을 만들 수도 있습니다. 즉, Project는 '하나의 요청을 실행하는 세션'이라기보다는, 관련된 업무와 그 진행 상황을 모아두는 단위로 생각하면 이해하기 쉽습니다.
| 작업 범위 | 시작 방법 |
|---|
| 특정 리포지토리 내에서 완료되는 태스크 | 해당 리포지토리에서 세션 시작 |
| ... | |
| 작은 수정까지 Project에 모아둘 필요는 없습니다. 반대로, 관련된 작업이 여러 번으로 나뉜다면, Project에 목표나 자료를 두고 진행 상황을 확인하며 계속할 수 있습니다. | |
GitHub Copilot 앱의 사이드바에 있는 Projects에서 새로운 Project를 생성합니다. Project에 사용할 리포지토리는 임의로 추가할 수 있으며, 리포지토리를 등록하지 않고 시작하는 것도 가능합니다.
첫 번째 프롬프트에는 단순히 '조사해 주세요'라고 적는 것이 아니라, Project의 목적, 처음 수행할 태스크, 원하는 결과물, 지켜야 할 제약 조건을 포함해야 합니다. 예를 들어, 여러 리포지토리에 관련된 과제를 정리한다면 다음과 같이 요청할 수 있습니다.
이 Project에서는 여러 리포지토리에 걸친 인증 관련 과제를 정리합니다.
먼저 추가한 리포지토리를 확인하고, 관련된 과제나 현재 대응 상황을 모아주세요.
가장 먼저 조사 결과와, 다음으로 진행할 작업 후보를 제시해 주세요.
...
이 예시처럼, 처음에 기대하는 결과나 제약 조건을 명확히 해두면 Project의 목표와 개별 작업을 연결하기 쉬워집니다. 필요한 자료가 있다면 생성 시 또는 나중에 Library에 추가할 수 있습니다.
Project의 Overview에서는 작업을 Needs input / Open / Working / Done으로 나누어 확인할 수 있습니다. 예를 들어, Copilot의 판단을 기다리는 작업, Pull Request가 열려 있는 작업, 진행 중인 세션, 완료된 작업을 구분할 수 있습니다.
개별 세션을 열면 대화 내용뿐만 아니라 변경 내용이나 Pull Request, 계획도 확인할 수 있습니다. 필요한 정보를 보충하거나, 작업 우선순위를 전달하여 진행 중인 업무에 추가 지시를 내릴 수 있습니다.
큰 목표를 첫 프롬프트에서 완전히 분해하기보다는, 일단 시작하고 Overview에서 상황을 본 후 다음 지시를 추가하는 것. 이 반복 과정이 지속적인 작업을 Project로 다룰 때의 기본 원칙입니다.
Project의 Library에는 사용자가 추가한 자료와 에이전트가 생성한 결과물이 모여 있습니다. 사양서나 조사 대상 자료 등, 작업에서 참조하고 싶은 파일을 추가하고, Copilot에게 어떤 자료를 사용할지 전달할 수도 있습니다.
Project의 목표와 관련 자료를 같은 장소에 두면, 작업을 재개할 때 필요한 맥락을 확인하기 쉽습니다. 자료를 너무 많이 늘리기보다는 Project의 목적과 관련된 것에 한정하는 것도 중요합니다.
주기적으로 하고 싶은 작업은 Project의 대화에서 태스크와 스케줄을 전달하여 설정할 수 있습니다. 예를 들어, Library에 추가된 자료를 매주 확인해서 요점을 정리한다는 식의 사용법입니다.
설정된 자동화는 Automations 탭에서 스케줄이나 다음 실행 예정을 확인할 수 있습니다. 스케줄 편집, 일시 중지, 삭제도 같은 곳에서 할 수 있습니다. 지속적으로 진행되기를 원하는 작업과 반복 빈도, 기대하는 결과를 구체적으로 전달하는 것이 핵심입니다.
GitHub Docs에서는 Projects가 Public Preview (공개 미리보기) 상태라고 안내하고 있습니다. 프리뷰 기간 중에는 기능이나 사양이 변경될 가능성이 있으므로, 실제로 이용할 때는 최신 공식 문서를 확인해 주십시오.
또한, Project를 만들었다고 해서 모든 리포지토리의 작업이 자동으로 진행되는 것은 아닙니다. 사용할 리포지토리와 참고 자료를 선택하고, 목표와 기대하는 결과를 명확히 전달하며, Overview에서 진행 상황을 확인하면서 방향을 설정하는 것이 중요합니다.
GitHub Copilot Projects는 여러 리포지토리에 걸친 과제나 지속적인 목표를 관련 작업, 자료, 진행 상황과 함께 다루기 위한 기능입니다. 리포지토리 내에서 완료되는 업무는 해당 리포지토리에서 세션을 시작하고, 광범위한 목표에는 Project를 사용하는 식으로 활용하는 것이 기본 원칙이 됩니다.
Overview에서 진행 상황을 추적하고, Library에서 자료를 공유하며, 필요하다면 Automations에서 정기 작업을 설정합니다. 일회성 채팅으로 끝나지 않는 업무를 Copilot과 함께 진행할 때, Projects는 그 전체적인 업무를 조망하는 '작업의 그릇'이 되어줄 것 같습니다. 🚀