GitHub Copilot 완전 정복: VS Code에서 AI 페어 프로그래밍 제대로 쓰는 법
솔직히 말하면, 처음 GitHub Copilot을 써봤을 때 별로 감흥이 없었습니다. “아, 자동완성이 좀 더 똑똑해졌구나” 정도? 근데 반년쯤 쓰다 보니 이게 없으면 코딩이 정말 불편하더라고요. 마치 스마트폰 없던 시절로 돌아가는 느낌이랄까요.
지금은 Copilot 없이는 코딩하기 싫을 정도가 됐는데, 이 경지(?)에 오르기까지 꽤 많은 시행착오가 있었습니다. 처음에 그냥 탭키만 눌러대다가 쓰레기 코드를 수두룩 받아 쓴 경험도 있고, 반대로 Copilot이 내놓은 답이 너무 완벽해서 소름 돋은 적도 있고요.
이 글에서는 제가 겪은 시행착오를 바탕으로, GitHub Copilot을 정말 제대로 쓰는 방법을 공유해 드릴게요. 단순히 기능 나열이 아니라, “이렇게 쓰면 진짜 생산성이 올라가더라”는 실전 경험 위주로 써봤습니다.
GitHub Copilot이 뭔지는 알겠는데, 제대로 쓰는 사람이 드물더라
GitHub Copilot은 OpenAI와 GitHub이 협력해서 만든 AI 코딩 어시스턴트입니다. VS Code, JetBrains IDE, Neovim 등 주요 에디터에서 사용할 수 있고, 2021년 베타 출시 이후 지금은 수백만 명의 개발자가 쓰고 있는 메이저 도구가 됐죠.
근데 주변에 Copilot 쓰는 개발자들 보면 대부분 이렇게 씁니다:
- 코드 타이핑 시작
- Copilot 제안 뜨면 탭 누름
- 이상하면 다시 지우고 직접 씀
- 끝
이게 잘못됐다는 게 아니라, Copilot에는 이것 말고도 엄청난 기능들이 더 있거든요. 채팅 기능, 인라인 채팅, 에이전트 모드, 코드 리뷰… 이걸 다 활용하면 진짜 다른 세상이 열립니다.
시작 전에: 플랜 선택과 설치
요금제 정리
- Copilot Free: 월 2,000번 코드 완성, 50번 채팅 요청. 가볍게 체험하기 좋음
- Copilot Pro: 월 $10. 개인 개발자라면 이게 기본
- Copilot Pro+: 월 $19. 더 강력한 모델(GPT-4o, Claude 3.5 Sonnet 등) 선택 가능
- Copilot Business/Enterprise: 팀/기업용, 관리자 기능 포함
저는 Pro+를 쓰는데, 특히 모델 선택 기능 때문입니다. 상황에 따라 Claude를 쓸지 GPT를 쓸지 골라 쓸 수 있어서 꽤 유용하더라고요.
VS Code 설치
- VS Code 확장에서 “GitHub Copilot” 검색해서 설치
- GitHub 계정으로 로그인
- “GitHub Copilot Chat” 확장도 같이 설치 (필수!)
설치하면 하단 상태바에 Copilot 아이콘이 뜨고, 왼쪽 사이드바에 채팅 아이콘이 추가됩니다.
기능 1: 코드 자동완성 — 잘 쓰는 방법이 따로 있다
자동완성은 Copilot의 기본 기능이지만, 이걸 제대로 활용하려면 몇 가지 요령이 있습니다.
주석을 적극 활용하라
Copilot은 주석을 보고 코드를 생성합니다. 그러니까 주석을 잘 쓸수록 더 좋은 코드가 나와요.
# 사용자 이메일 목록을 받아서 유효하지 않은 이메일 필터링 후 반환
# 이메일 유효성 검사는 정규식 사용, 대소문자 무시
def filter_valid_emails(emails: list[str]) -> list[str]:
이렇게 주석을 달면 Copilot이 정규식까지 포함한 완성도 높은 함수를 제안해 줍니다. 그냥 def filter_emails만 쓰는 것과 결과물 퀄리티가 천지 차이예요.
여러 제안 중에서 고르기
Copilot이 제안한 코드가 맘에 안 들면 다른 제안을 볼 수 있습니다:
Alt + ](또는Option + ]): 다음 제안Alt + [(또는Option + [): 이전 제안Ctrl + Enter: 패널에서 여러 제안 한꺼번에 보기
10개까지 제안을 보여주는데, 가끔 5번째 제안이 1번째보다 훨씬 나은 경우가 있습니다. 귀찮더라도 몇 개 더 살펴보는 습관을 들이면 좋아요.
부분적으로 받아들이기
탭을 누르면 전체 제안을 받아들이는데, 단어 단위로만 받고 싶을 때는:
- Mac:
Cmd + → - Windows:
Ctrl + →
이렇게 하면 제안된 코드를 한 단어씩 가져올 수 있습니다.
기능 2: Copilot Chat — 진짜 AI 개발 파트너
이게 제가 생각하는 Copilot의 핵심 기능입니다. 단순 자동완성을 넘어서 코드에 대해 대화할 수 있거든요.
채팅 열기
Ctrl + Alt + I(Windows/Linux)Cmd + Shift + I(Mac)- 또는 왼쪽 사이드바의 Copilot 아이콘 클릭
실전에서 자주 쓰는 채팅 패턴
1. 코드 설명 요청
이 함수가 정확히 뭘 하는지 설명해줘. 특히 재귀 부분이 어떻게 동작하는지.
레거시 코드나 다른 사람이 짠 코드를 이해할 때 최고입니다. 주석 없는 200줄짜리 함수도 30초면 파악할 수 있어요.
2. 버그 찾기
이 코드에서 왜 NullPointerException이 발생할 수 있는지 찾아줘.
3. 리팩토링 제안
이 코드를 더 pythonic하게 개선해줘. 가독성 위주로.
4. 테스트 코드 생성
이 함수에 대한 단위 테스트를 Jest로 작성해줘. 엣지 케이스도 포함해서.
테스트 코드는 Copilot이 정말 잘 씁니다. 직접 짜는 것보다 훨씬 빠르고, 생각 못 했던 엣지 케이스도 잡아주더라고요.
컨텍스트 참조하기 — # 명령어
채팅할 때 특정 파일이나 코드를 참조하려면 #을 씁니다:
#file:utils.ts— 특정 파일 참조#selection— 현재 선택한 코드 참조#codebase— 전체 코드베이스 참조 (느리지만 강력)
예를 들어:
#file:auth.service.ts 이 파일의 JWT 토큰 검증 로직에 보안 취약점이 있는지 검토해줘.
이런 식으로 쓰면 파일을 일일이 복사해서 붙여넣을 필요가 없어요.
기능 3: 인라인 채팅 — 코드 중간에서 바로 대화
에디터에서 코드를 보다가 바로 질문하거나 수정 요청을 할 수 있는 기능입니다.
단축키: Ctrl + I (Windows/Linux) / Cmd + I (Mac)
코드를 선택하고 단축키를 누르면 그 자리에서 채팅 입력창이 뜹니다.
자주 쓰는 인라인 채팅 활용
/fix 이 코드의 버그를 수정해줘
/explain 이 부분이 어떻게 동작하는지 설명해줘
/tests 이 함수에 대한 테스트 작성해줘
/doc 주석 추가해줘
슬래시 명령어를 쓰면 Copilot이 컨텍스트를 더 잘 이해하고 정확한 답을 줍니다.
제가 가장 많이 쓰는 건 /fix인데요, 빨간줄 뜬 코드 선택하고 /fix만 입력하면 대부분 해결됩니다. 에러 메시지 복사해서 구글링할 시간이 확 줄었어요.
기능 4: Copilot Edits (에디트 모드) — 여러 파일 한 번에 수정
이게 상대적으로 새로 생긴 기능인데, 저는 꽤 애용합니다.
일반 채팅은 코드 제안을 해주는 수준이라면, Edits 모드는 실제로 파일을 직접 수정해 줍니다. 여러 파일에 걸친 변경 작업을 할 때 특히 유용해요.
사용법
- 채팅 패널 상단에서 “Copilot Edits” 탭 클릭 (또는
Ctrl+Shift+I) - 수정할 파일들을 “Working Set”에 추가 (파일 드래그 or 클릭)
- 원하는 작업 설명
예를 들어:
모든 API 엔드포인트에 에러 핸들링 미들웨어를 추가해줘.
routes/ 폴더 안의 모든 파일에 적용해야 해.
그러면 여러 파일을 자동으로 수정하고 diff를 보여줘서 Accept/Reject를 결정할 수 있습니다.
주의할 점
Edits 모드는 강력한 만큼 실수하면 여러 파일이 동시에 망가질 수 있습니다. 쓰기 전에 반드시 git commit을 해두세요. 저도 한번 Edits 모드로 대규모 리팩토링했다가 엉망이 돼서 git reset 한 적 있거든요.
기능 5: Copilot Agent 모드 — 자율적으로 작업하는 AI
가장 최근에 추가된 기능이자, 가장 강력한 기능입니다. 에이전트 모드에서는 Copilot이 단순히 코드를 제안하는 게 아니라:
- 터미널 명령어 실행
- 파일 생성/수정/삭제
- 여러 단계의 작업을 자율적으로 수행
- 오류가 나면 스스로 수정 시도
이 정도 수준의 자율성을 가집니다.
에이전트 모드 사용법
채팅 패널에서 모드를 “Agent”로 변경하고 작업을 설명합니다:
React로 Todo 앱을 만들어줘.
- TypeScript 사용
- localStorage로 데이터 저장
- 추가/삭제/완료 표시 기능
- Tailwind CSS로 스타일링
이렇게 입력하면 Copilot이 혼자서 파일을 만들고, 패키지를 설치하고, 코드를 작성합니다. 중간에 오류가 나면 스스로 수정도 시도하고요.
실제로 써봤을 때 간단한 기능은 정말 혼자서 뚝딱 만들어내더라고요. 물론 복잡한 비즈니스 로직은 여전히 사람이 관여해야 하지만, 보일러플레이트 코드 작성 시간이 엄청나게 줄었습니다.
Copilot을 더 잘 쓰기 위한 실전 팁
팁 1: .github/copilot-instructions.md 파일 만들기
프로젝트 루트에 이 파일을 만들면 Copilot에게 프로젝트 컨텍스트를 미리 알려줄 수 있습니다:
# Copilot Instructions
## 프로젝트 개요
- Node.js + TypeScript 백엔드 API
- PostgreSQL 데이터베이스, Prisma ORM 사용
- 인증은 JWT 기반
## 코딩 컨벤션
- 함수는 화살표 함수 사용 금지, 일반 function 선언 사용
- 에러는 반드시 커스텀 AppError 클래스로 처리
- 모든 async 함수에 try-catch 필수
## 주의사항
- raw SQL 쿼리 사용 금지, 반드시 Prisma 사용
- console.log 대신 winston logger 사용
이렇게 해두면 Copilot이 프로젝트 스타일에 맞는 코드를 생성합니다. 매번 “우리 프로젝트는 이런 방식으로 해줘”라고 설명할 필요가 없어져요.
팁 2: 구체적으로 요청할수록 결과가 좋다
애매한 요청:
로그인 기능 만들어줘
구체적인 요청:
JWT 기반 로그인 API 엔드포인트 만들어줘.
- POST /api/auth/login
- body: { email, password }
- bcrypt로 비밀번호 검증
- 성공 시 accessToken(1시간), refreshToken(7일) 발급
- 실패 시 401 에러와 명확한 메시지 반환
- TypeScript, Express, Prisma 사용
두 번째가 훨씬 원하는 결과에 가까운 코드를 줍니다.
팁 3: 제안을 비판적으로 검토하라
Copilot이 내놓는 코드가 항상 옳은 건 아닙니다. 특히:
- 보안 관련 코드: SQL 인젝션, XSS 등 취약점이 있을 수 있음
- 비즈니스 로직: 도메인 지식이 없어서 틀릴 수 있음
- 최신 API: 학습 데이터가 오래됐으면 deprecated된 방법 쓸 수 있음
저도 처음에 Copilot 코드를 너무 믿다가 프로덕션에 보안 이슈 있는 코드 올릴 뻔한 적 있습니다. 항상 리뷰하는 습관을 들이세요.
팁 4: 채팅 기록 활용하기
같은 세션 내에서 이전 대화가 컨텍스트로 유지됩니다. 그래서 이런 흐름이 가능합니다:
1. "이 함수 설명해줘"
2. "그럼 이 함수에 캐싱 추가하는 방법은?"
3. "Redis 대신 메모리 캐시로 구현한다면?"
연속된 질문에서 매번 컨텍스트를 재설명할 필요가 없어요.
다른 AI 코딩 도구와 비교하면?
저는 Cursor, Windsurf, Claude Code도 써봤는데, 각각 장단점이 있더라고요.
GitHub Copilot의 강점:
- GitHub 생태계와의 완벽한 통합 (PR 리뷰, 이슈 연동)
- VS Code에서의 안정성 (공식 확장이라 호환성 문제 없음)
- 기업 환경에서 신뢰도 (GitHub/Microsoft 브랜드)
- 다양한 모델 선택 (Pro+에서 GPT-4o, Claude 3.5 Sonnet 등)
아쉬운 점:
- Cursor나 Windsurf에 비해 에이전트 기능이 아직은 약간 덜 성숙
- 컨텍스트 윈도우가 경쟁사보다 작은 편
- 가격 대비 성능은 Cursor가 약간 앞서는 느낌
결론적으로 “VS Code를 주로 쓰는 개발자”라면 Copilot이 가장 자연스러운 선택입니다. 에디터 자체를 바꾸기 싫은 분들에게는 최고의 옵션이에요.
GitHub 관련 기능: Copilot이 더 강력해지는 지점
VS Code 밖에서도 Copilot을 활용할 수 있습니다.
Pull Request 코드 리뷰
GitHub PR 페이지에서 Copilot이 자동으로 변경 사항을 리뷰해 줍니다. 설정만 해두면 PR 생성 시마다 자동으로 리뷰 코멘트가 달려요.
Settings → Copilot → Automatic PR review 활성화
팀 프로젝트에서 쓰면 진짜 유용합니다. 사람 리뷰어가 미처 못 잡은 버그나 개선점을 Copilot이 잡아주는 경우가 꽤 있거든요.
GitHub.com에서 채팅
github.com에서도 Copilot 채팅을 쓸 수 있습니다. 레포지토리 페이지에서 바로 “이 레포 어떤 프로젝트야?”, “기여하려면 어디서 시작해야 해?” 같은 질문을 할 수 있어요.
오픈소스 프로젝트 분석할 때 꽤 편리합니다.
처음 시작하는 분들을 위한 1주일 적응 플랜
1~2일차: 자동완성에 익숙해지기
- 그냥 평소처럼 코딩하면서 Copilot 제안 탭으로 받아보기
- 맘에 안 드는 제안은
Esc로 무시 - 여러 제안 보는 방법(
Alt + ]) 연습
3~4일차: 인라인 채팅 써보기
- 이해 안 되는 코드 선택 후
Cmd+I→/explain - 에러 나는 코드 선택 후
Cmd+I→/fix
5~6일차: Copilot Chat 채팅 패널 활용
- 새 기능 구현할 때 채팅으로 먼저 물어보기
- 테스트 코드 생성 시켜보기
7일차: .github/copilot-instructions.md 파일 만들기
- 프로젝트 컨텍스트 정리해서 추가
이 정도만 해도 생산성이 눈에 띄게 올라갈 겁니다.
마무리: AI가 개발자를 대체한다는 말, 사실일까?
GitHub Copilot을 깊이 쓰다 보면 이런 생각이 드실 수 있어요. “이 정도면 개발자 필요 없겠는데?”
솔직히 말하면, 아직은 아닙니다. Copilot이 코드를 잘 써준다고 해서 코드가 왜 그렇게 동작하는지, 전체 아키텍처가 어때야 하는지, 비즈니스 요구사항을 어떻게 코드로 번역해야 하는지는 여전히 사람의 영역입니다.
다만 확실한 건, Copilot을 잘 쓰는 개발자와 못 쓰는 개발자 사이의 생산성 격차는 점점 벌어지고 있다는 거예요. 도구를 잘 다루는 목수와 못 다루는 목수의 차이랄까요.
Copilot은 당신을 대체하는 게 아니라, 당신의 능력을 증폭시켜 주는 도구입니다. 이 도구를 잘 다루는 법을 익히면, 같은 시간에 훨씬 더 많은 걸 할 수 있게 됩니다.
자, 이제 한번 제대로 써볼 시간입니다. 아직 Free 플랜도 있으니까 일단 시작해 보세요.
관련 글도 읽어보세요: