명령줄용 GitHub Copilot
GitHub Copilot는 IDE(통합 개발 환경)만을 위한 것이 아니라 이제 터미널에서 강력한 도우미가 되었습니다. GitHub Copilot CLI 는 명령을 설명하고, 자연어의 셸 명령을 제안하며, 파일 및 프로젝트로 안전하고 대화형으로 작업하는 데 도움이 되는 명령줄에 Copilot를 직접 제공합니다.
Copilot CLI는 GitHub 인증을 사용하며 기존 자격 증명을 사용하지만 GitHub CLI와 독립적으로 실행됩니다. 코필로트 CLI는 명령줄을 접하는 개발자든 경험이 풍부한 개발자이든 추측 작업을 줄이고 일상적인 워크플로의 속도를 향상시킵니다.
이 단원에서 다루는 내용은 다음과 같습니다.
- GitHub Copilot CLI 설치 및 실행
- 터미널의 대화형 세션
- 슬래시 명령 및 자연어 입력
- 구성 및 옵션
Copilot CLI 설치 및 시작
macOS 및 Linux에서 Homebrew 를 통해 설치합니다.
brew install copilot-cli
또는 공식 설치 스크립트를 사용합니다.
curl -fsSL https://gh.io/copilot-install | bash
대화형 모드에서 Copilot CLI를 시작합니다.
copilot
환영 배너와 프롬프트가 표시됩니다.
처음 시작할 때 Copilot는 현재 폴더의 파일을 신뢰할 수 있는지 묻습니다. 코필로트는 세션 중에 이 디렉터리의 파일을 읽거나 수정하거나 실행할 수 있으므로 신뢰할 수 있는 위치에서만 진행합니다.
이 옵션을 사용하여 @ 컨텍스트로 작업하려는 특정 파일을 선택할 수 있습니다.
대화형 세션 내에서 다음을 수행할 수 있습니다.
-
슬래시 명령(
/command)을 사용하여 세션을 제어하고 Copilot CLI를 구성합니다. - 명령을 설명, 제안 또는 수정할 자연어 프롬프트 를 입력합니다.
전체 대화형 모드를 입력하지 않고 원샷 프롬프트 의 경우:
copilot -i "explain brew install git"
copilot -i "suggest find large files and delete them"
일반 슬래시 명령
슬래시 명령은 명시적 세션 제어 명령입니다. 가장 일반적인 항목은 다음과 같습니다.
| 슬래시 명령 | Description |
|---|---|
/help |
사용 가능한 명령 및 옵션 표시 |
/explain <command> |
모든 셸 명령을 설명하도록 Copilot에 요청 |
/suggest <task> |
부조종사에게 작업에 대한 셸 명령을 제안하도록 요청 |
/revise |
지침에 따라 마지막 제안 수정 |
/feedback |
응답 또는 제안에 대한 피드백 제출 |
/exit |
대화형 모드 종료 |
/model <model> |
사용할 AI 모델 선택 |
/theme [auto|dark|light] |
터미널 테마 변경 |
/skills |
향상된 기능을 위한 기술 관리 |
/mcp |
MCP 서버 구성 관리 |
/list-dirs |
파일 작업에 허용되는 디렉터리 표시 |
/reset-allowed-tools |
허용되는 도구 목록 다시 설정 |
슬래시 명령은 자연어 프롬프트로 바꿀 수 없습니다. 세션 설정 및 구성을 제어하는 유일한 방법입니다.
예제 워크플로
1. 명령 설명
> Explain what `git reset --hard HEAD` does
코필로트는 자세한 설명을 제공합니다.
2. 명령 제안
> Find and delete all .log files in my home folder
부조종사에서 명령 제안을 생성하고 제안에 만족하면 실행하라는 메시지를 표시합니다.
3. 제안 수정
제안을 받은 후 후속 프롬프트를 입력하여 제안된 명령을 수정할 수 있습니다.
> Include only files modified in the last 7 days
4. 피드백 제공
응답 또는 제안 후:
> /feedback
코파일럿은 여러분에게 보내고자 하는 피드백 유형을 선택하라는 메시지를 제공한 다음, 피드백을 완료할 수 있도록 적절한 피드백 양식으로 안내합니다.
5. 대화형 모드 종료
> /exit
구성 옵션
코필로트 CLI에서 구성은 다음을 통해 처리됩니다.
대화형 모드에서의 슬래시 명령
-
/modelAI 모델 선택 -
/theme터미널 테마 변경 -
/skills향상된 기능 관리 -
/reset-allowed-tools도구 재설정 -
/list-dirs허용된 디렉터리 보기 -
/mcpMCP 서버 설정
-
코필로트 CLI 구성 (비대화형 모드)
Copilot CLI 구성은 권한 프롬프트, 명령줄 플래그 및 로컬 구성 파일을 통해 관리됩니다. 이러한 설정은 Copilot가 사용자 대신 액세스하고 수행할 수 있는 작업을 제어합니다.
일반적인 구성 옵션은 다음과 같습니다.
- 신뢰할 수 있는 디렉터리 – Copilot가 파일을 읽고 편집하고 실행할 수 있는 위치를 제어합니다.
- 도구 권한 – 코필로트가 셸 명령을 실행하거나 플래그를
--allow-tool사용하여 파일을 수정할 수 있도록 허용하거나 제한합니다--deny-tool. - 경로 권한 – Copilot가 액세스할 수 있는 디렉터리를 제어합니다.
- URL 권한 – Copilot가 연결할 수 있는 외부 도메인을 관리합니다.
전체 구성 옵션은 공식 GitHub Copilot CLI 설명서를 참조하세요.
샌드박스 실행 환경
GitHub Copilot CLI는 시스템을 보호하는 데 도움이 되면서도 Copilot이 사용자를 대신해 작업을 수행할 수 있도록 하는 샌드박스 실행 환경을 지원합니다.
샌드박싱은 명령, 파일 작업 및 기타 활동을 기본 개발 환경에서 격리합니다. 워크플로에 따라 로컬 샌드박싱 과 클라우드 샌드박싱 중에서 선택할 수 있습니다.
로컬 샌드박싱
로컬 샌드박싱을 사용하면 Copilot 컴퓨터의 제한된 환경 내에서 명령을 실행할 수 있습니다.
사용하도록 설정하면 파일 시스템, 네트워크 연결 및 운영 체제 기능에 대한 Copilot 액세스가 제한되므로 의도하지 않은 변경 위험을 줄이는 동시에 에이전트 지원 워크플로의 이점을 활용할 수 있습니다.
대화형 세션 중에 로컬 샌드박싱을 사용하도록 설정하려면 다음을 수행합니다.
/sandbox enable
샌드박싱을 사용하도록 설정한 후 Copilot 실행한 명령은 호스트 시스템에서 직접 실행되지 않고 샌드박스가 적용된 환경 내에서 실행됩니다.
로컬 샌드박싱의 이점
| Benefit | Description |
|---|---|
| 향상된 보안 | 중요한 시스템 리소스에 대한 액세스를 제한합니다. |
| 더 안전한 실험 | 위험을 줄여 에이전트 기반 워크플로를 테스트할 수 있습니다. |
| 로컬 실행 | 클라우드 인프라를 요구하지 않고 컴퓨터의 리소스를 사용합니다. |
| 더 큰 제어 | 자율 에이전트를 사용하는 동안 추가 보호 기능을 제공합니다. |
클라우드 샌드박싱
클라우드 샌드박싱을 사용하면 Copilot CLI 세션을 GitHub 호스팅하는 완전히 격리된 Linux 환경 내에서 실행할 수 있습니다.
로컬 샌드박스 세션과 달리 클라우드 샌드박스 세션은 GitHub 호스팅 인프라에서 완전히 실행되며 로컬 머신 및 다른 샌드박스 세션과는 별도로 유지됩니다.
클라우드 샌드박싱은 인증, 거버넌스, 정책 적용 및 청구 통합을 제공하는 GitHub Azure Container Apps 샌드박스를 기반으로 합니다.
클라우드 샌드박스 세션을 시작하려면 다음을 수행합니다.
copilot --cloud
시작되면 Copilot 명령을 실행하고, 파일을 수정하고, 테스트를 실행하고, 로컬 디바이스가 아닌 클라우드 환경 내에서 개발 작업을 수행할 수 있습니다.
클라우드 샌드박싱의 이점
| Benefit | Description |
|---|---|
| 강력한 격리 | 워크로드는 로컬 컴퓨터와 별도로 실행됩니다. |
| 디바이스 유연성 | 다른 디바이스에서 세션을 다시 시작합니다. |
| 리소스 오프로드 | 로컬 CPU 및 메모리 대신 클라우드 리소스를 사용합니다. |
| 병렬 실행 | 여러 에이전트 기반 작업을 동시에 실행합니다. |
디바이스에서 세션 계속
클라우드 샌드박스 세션은 GitHub 호스팅 인프라에서 실행되므로 작업이 특정 컴퓨터에 연결되지 않습니다.
이렇게 하면 다음을 수행할 수 있습니다.
- 한 디바이스에서 세션 시작
- 다른 디바이스에서 동일한 세션 다시 시작
- 수동으로 파일을 전송하거나 환경을 다시 만들지 않고 작업을 계속합니다.
이러한 유연성은 여러 컴퓨터 또는 위치에서 작업하는 개발자에게 특히 유용합니다.
클라우드 샌드박스 세션 수명 주기
클라우드 샌드박스 세션은 다음 세 가지 상태로 존재할 수 있습니다.
| 시스템 상태 | Description |
|---|---|
| 활성 | 세션이 실행 중이며 상호 작용에 사용할 수 있습니다. |
| 중지 | 세션이 일시 중지되지만 나중에 사용할 수 있는 상태가 유지됩니다. |
| 삭제됨 | 세션 및 저장된 모든 상태는 영구적으로 제거됩니다. |
세션이 중지되면 GitHub 파일, 환경 변수 및 진행 중인 작업을 포함하여 환경의 스냅샷을 저장합니다. 세션을 다시 시작하면 저장된 상태가 복원되므로 중단된 위치에서 계속할 수 있습니다.
인증 및 액세스
클라우드 샌드박스는 GitHub Copilot CLI와 동일한 인증 모델을 사용합니다.
GITHUB COPILOT CLI에 인증하고 GitHub Copilot 액세스할 수 있는 경우 추가 클라우드 공급자 구성이 필요하지 않습니다.
다음을 수행할 필요가 없습니다.
- API 키를 관리합니다.
- 클라우드 인프라 구성
- 가상 머신 배포
- 컨테이너 환경 유지 관리
메모
조직 또는 엔터프라이즈 관리자는 클라우드 샌드박스 액세스 정책을 사용하도록 설정해야 구성원이 클라우드 샌드박스 환경을 사용할 수 있습니다.
로컬 및 클라우드 샌드박싱
| 특징 | 로컬 샌드박스 | 클라우드 샌드박스 |
|---|---|---|
| 실행 위치 | 로컬 컴퓨터 | GitHub 호스팅 환경 |
| 리소스 사용량 | 로컬 리소스 | 클라우드 리소스 |
| 격리 수준 | 제한된 로컬 환경 | 완전히 격리된 클라우드 환경 |
| 디바이스 독립성 | No | 예 |
| 병렬 워크로드 | 로컬 하드웨어에 의해 제한됨 | 쉽게 확장 가능 |
샌드박싱은 언제 사용해야 하나요?
다음과 같은 경우 샌드박싱을 사용하는 것이 좋습니다.
- 익숙하지 않은 리포지토리로 작업하기
- 에이전트 생성 명령 테스트
- 자율 워크플로 실행
- 잠재적으로 파괴적인 작업 수행
- 여러 디바이스에서 작업
- 연산 집약적인 개발 작업 분산
샌드박싱은 보안 및 유연성의 추가 계층을 제공하므로 GitHub Copilot CLI의 에이전트 기능을 안전하게 활용할 수 있습니다.
Copilot CLI를 효과적으로 사용하기 위한 팁
- 예비 작업에 대화형 모드(
copilot) 를 사용합니다. - 빠른 답변을 위해 원샷 모드(
copilot -i) 를 사용합니다. - 자연어 입력이 작동합니다. 슬래시 명령이 항상 필요한 것은 아닙니다.
- 실행 전에 항상 명령을 검토합니다.
- 리포지토리 및 문제 관리를 위해 GitHub CLI(
gh)와 Copilot CLI를 결합합니다. - 구조화된 작업 또는 피드백을 원하는 경우 슬래시 명령을 사용합니다.