GitHub Copilot VS Code 완벽 설정 가이드: 워크스페이스 설정, 언어별 규칙, 키바인딩, Chat 슬래시 명령어 구성
GitHub Copilot VS Code 완벽 설정 가이드
GitHub Copilot은 AI 기반 코드 자동완성 도구로, VS Code에서 올바르게 설정하면 개발 생산성을 극적으로 향상시킬 수 있습니다. 이 가이드에서는 워크스페이스 레벨 설정, 언어별 활성화/비활성화 규칙, 커스텀 키바인딩, 그리고 Copilot Chat 슬래시 명령어를 활용한 테스트 생성 워크플로우까지 실무 중심으로 안내합니다.
1단계: GitHub Copilot 설치 및 인증
- VS Code 확장 설치 — VS Code를 열고 확장 마켓플레이스에서 다음 두 확장을 설치합니다:
code —install-extension GitHub.copilot code —install-extension GitHub.copilot-chat- GitHub 계정 인증 — VS Code 좌측 하단의 계정 아이콘을 클릭하고 Sign in with GitHub을 선택합니다. 브라우저에서 GitHub OAuth 인증을 완료하면 VS Code로 자동 리디렉션됩니다.- 구독 상태 확인 — 상태 표시줄에 Copilot 아이콘이 활성화되어 있는지 확인합니다. 비활성 상태라면 GitHub 설정에서 Copilot 구독(Individual, Business, 또는 Enterprise)이 활성화되어 있는지 점검합니다.- 설치 검증 — 아무 파일에서 코드를 입력해 인라인 제안이 나타나는지 확인합니다.
2단계: 워크스페이스 레벨 설정 구성
프로젝트별로 Copilot 동작을 다르게 제어하려면 워크스페이스 설정 파일을 사용합니다. 프로젝트 루트에 .vscode/settings.json을 생성하거나 편집합니다:
{
"github.copilot.enable": {
"*": true,
"plaintext": false,
"markdown": true,
"yaml": false,
"json": false
},
"github.copilot.chat.localeOverride": "ko",
"github.copilot.selectedCompletionModel": "gpt-4o",
"github.copilot.chat.welcomeMessage": "always",
"editor.inlineSuggest.enabled": true,
"editor.inlineSuggest.showToolbar": "onHover"
}
이 설정은 해당 워크스페이스에서만 적용되며, 사용자 전역 설정(settings.json)보다 우선합니다.
3단계: 언어별 활성화/비활성화 규칙
민감한 파일 형식에서 Copilot을 비활성화하거나, 특정 언어에서만 활성화하는 것이 보안과 효율 면에서 중요합니다.
| 언어/파일 유형 | 설정값 | 설명 |
|---|---|---|
* (전체) | true | 기본적으로 모든 언어에서 활성화 |
python | true | Python 코드 작성 시 제안 활성화 |
typescript | true | TypeScript 프로젝트에서 활성화 |
yaml | false | CI/CD 설정 파일에서 비활성화(보안) |
dotenv | false | .env 파일 보호(API 키 노출 방지) |
json | false | 설정 파일에서 불필요한 제안 차단 |
github.copilot.enable 객체 안에 언어 식별자를 키로 사용하여 적용합니다:
"github.copilot.enable": {
"*": true,
"python": true,
"typescript": true,
"yaml": false,
"dotenv": false,
"json": false,
"ini": false
}
## 4단계: 커스텀 키바인딩 설정
keybindings.json 파일을 열어(Ctrl+Shift+P → *Preferences: Open Keyboard Shortcuts (JSON)*) 다음 키바인딩을 추가합니다:
[
{
"key": "alt+]",
"command": "editor.action.inlineSuggest.showNext",
"when": "inlineSuggestionVisible"
},
{
"key": "alt+[",
"command": "editor.action.inlineSuggest.showPrevious",
"when": "inlineSuggestionVisible"
},
{
"key": "ctrl+shift+a",
"command": "editor.action.inlineSuggest.acceptNextWord",
"when": "inlineSuggestionVisible"
},
{
"key": "ctrl+shift+space",
"command": "github.copilot.generate",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+i",
"command": "workbench.action.chat.open"
},
{
"key": "ctrl+alt+t",
"command": "github.copilot.chat.generateTests"
}
]
## 5단계: Copilot Chat 슬래시 명령어로 테스트 생성 워크플로우 구성
Copilot Chat 패널에서 슬래시 명령어를 활용하면 테스트 코드를 체계적으로 생성할 수 있습니다.
테스트 생성 워크플로우
- 대상 파일 선택 — 테스트를 작성할 소스 파일을 에디터에서 엽니다.- Chat 패널 열기 — Ctrl+Shift+I로 Copilot Chat을 엽니다.- 슬래시 명령어 실행:
/tests 이 파일의 주요 함수에 대한 단위 테스트를 Jest로 작성해줘- 컨텍스트 추가 명령어 활용:
- 생성된 테스트 검토 및 삽입 — Chat 응답에서 코드 블록 위의 삽입 버튼으로 파일에 직접 적용합니다.#file:src/utils/calculate.ts 이 파일의 edge case를 포함한 테스트 생성
유용한 슬래시 명령어 정리
| 명령어 | 기능 |
|---|---|
/tests | 선택한 코드 또는 파일에 대한 테스트 생성 |
/fix | 선택한 코드의 버그 수정 제안 |
/explain | 코드 로직 설명 |
/doc | JSDoc/docstring 자동 생성 |
@workspace | 전체 워크스페이스 컨텍스트 참조 |
// .github/copilot-instructions.md (프로젝트 루트에 생성)
테스트 코드 생성 시 다음 규칙을 따르세요:
- 테스트 프레임워크: Jest + @testing-library/react
- describe/it 패턴 사용
- 각 테스트에 한글 설명 포함
- AAA(Arrange-Act-Assert) 패턴 적용
mock은 mocks 디렉토리에 분리
Pro Tips: 파워 유저를 위한 고급 설정
- 컨텍스트 최적화 —
.github/copilot-instructions.md파일에 프로젝트 규칙을 명시하면 Copilot이 프로젝트 컨벤션에 맞는 코드를 생성합니다.- 단어 단위 수락 — Ctrl+Shift+A로 제안의 다음 단어만 수락하면 원하는 부분만 선택적으로 적용할 수 있습니다.- 인라인 Chat 활용 — 코드 블록을 선택한 후 Ctrl+I를 누르면 에디터 내에서 바로 리팩토링이나 테스트 요청이 가능합니다.- 멀티파일 컨텍스트 — Chat에서#file:경로를 여러 번 사용하면 여러 파일을 동시에 참조하여 통합 테스트를 생성할 수 있습니다.- CLI에서 Copilot 활용:gh copilot suggest “git에서 최근 3일간 변경된 파일 목록” gh copilot explain “git log —oneline —graph —all”
Troubleshooting: 자주 발생하는 오류 해결
| 문제 | 원인 | 해결 방법 |
|---|---|---|
| Copilot 아이콘이 비활성화 상태 | 인증 만료 또는 구독 미활성 | VS Code에서 로그아웃 후 재인증. Ctrl+Shift+P → *GitHub Copilot: Sign Out* 실행 후 재로그인 |
| 제안이 전혀 나오지 않음 | 해당 언어가 비활성화됨 | settings.json에서 github.copilot.enable의 해당 언어 값을 true로 변경 |
| Chat에서 응답이 없음 | 네트워크 또는 프록시 문제 | settings.json에 "github.copilot.advanced": {"authProvider": "github"} 추가. 프록시 환경이라면 http.proxy 설정 확인 |
| 제안 속도가 매우 느림 | 확장 충돌 또는 대용량 파일 | 다른 AI 코드 어시스턴트 확장 비활성화. 파일이 5000줄 이상이면 분할 고려 |
/tests 명령이 부정확한 결과 반환 | 컨텍스트 부족 | #file:로 관련 파일을 명시적으로 참조하고, 테스트 프레임워크를 지정 |
Q1: GitHub Copilot 무료 플랜으로도 Chat과 슬래시 명령어를 사용할 수 있나요?
네, GitHub Copilot Free 플랜에서도 Copilot Chat과 기본 슬래시 명령어(/tests, /fix, /explain, /doc)를 사용할 수 있습니다. 다만 월별 사용 횟수에 제한이 있으며(Chat 메시지 50회, 코드 완성 2000회), Pro 플랜부터 무제한으로 사용 가능합니다. 워크스페이스 레벨 설정과 커스텀 키바인딩은 플랜에 관계없이 모두 지원됩니다.
Q2: 팀 프로젝트에서 워크스페이스 Copilot 설정을 공유하려면 어떻게 해야 하나요?
.vscode/settings.json 파일을 Git 저장소에 커밋하면 팀원 모두 동일한 Copilot 설정을 사용하게 됩니다. 추가로 .github/copilot-instructions.md 파일에 프로젝트의 코딩 규칙과 테스트 컨벤션을 작성하면, Copilot Chat이 팀의 표준에 맞는 코드를 생성합니다. 키바인딩은 개인 설정이므로 README에 권장 키바인딩을 문서화하는 것을 추천합니다.
Q3: 특정 파일이나 디렉토리를 Copilot의 컨텍스트에서 완전히 제외할 수 있나요?
GitHub Copilot Business 또는 Enterprise 플랜에서는 조직 관리자가 Content Exclusion 기능을 통해 특정 파일 경로 패턴을 Copilot 컨텍스트에서 제외할 수 있습니다. 조직의 GitHub 설정 → Copilot → Content exclusion에서 /.env, /secrets/** 같은 glob 패턴을 추가합니다. 개인 플랜에서는 github.copilot.enable에서 해당 파일 타입을 false로 설정하여 제안을 비활성화하는 방법을 사용합니다.