프롤로그 - AI 코딩 도구는 과대광고일 거라 생각했다
솔직히 처음엔 회의적이었다. "AI가 코딩을 도와준다고? 결국 내가 다 고쳐야 할 텐데." 이런 생각으로 GitHub Copilot을 처음 써봤을 때, 기대치는 바닥이었다. 그런데 첫 자동완성이 뜨는 순간, 뭔가 달랐다. 내가 쓰려던 함수명을 정확히 맞췄고, 심지어 로직까지 80% 맞아떨어졌다.
그 후 몇 달간 세 가지 도구를 실제로 써봤다. GitHub Copilot, Claude Code, Cursor. 각각 완전히 다른 철학과 워크플로우를 가지고 있었다. 마치 연필, 만년필, 키보드의 차이처럼 - 모두 글을 쓰는 도구지만, 쓰임새가 완전히 다르다는 걸 깨달았다.
이제 이 도구들 없이 코딩한다는 건 상상하기 힘들다. 하지만 각 도구마다 빛나는 순간과 답답한 순간이 명확히 갈렸다. 실제 사용 경험을 바탕으로, 어떤 상황에 어떤 도구를 써야 하는지 정리해봤다.
Aha! 순간 - 각 도구의 정체성을 이해하다
세 도구를 쓰면서 가장 중요한 걸 깨달았다. 이들은 같은 문제를 해결하는 게 아니다. 표면적으로는 모두 "AI 코딩 어시스턴트"지만, 실제로는 완전히 다른 시나리오를 타겟으로 한다.
GitHub Copilot은 조수다. 내가 코딩하는 동안 옆에서 "이거 아니에요?" 하고 제안하는 역할. 주도권은 완전히 나한테 있고, Copilot은 내 타이핑 속도를 2배로 올려주는 도구다.
Claude Code는 동료 개발자다. "이 기능 구현해줘"라고 말하면, 알아서 여러 파일을 넘나들며 작업한다. 내가 코드를 직접 쓰는 게 아니라, 코드 리뷰하는 사람처럼 결과물을 확인하고 피드백한다.
Cursor는 둘의 하이브리드다. IDE 안에서 Copilot처럼 인라인 제안도 하고, Claude처럼 복잡한 멀티파일 작업도 처리한다. 하나의 환경에서 두 가지 모드를 전환할 수 있는 스위스 아미 나이프 같은 느낌.
이 정체성 차이를 이해하니까, "어떤 게 최고?"라는 질문 자체가 잘못됐다는 걸 알게 됐다. 차라리 "지금 내 작업에는 뭐가 맞아?"가 맞는 질문이다.
각 도구의 활용법 자세히 살펴보기
GitHub Copilot: 빠른 타이핑의 마법
Copilot의 핵심은 인라인 자동완성이다. 코드를 쓰다가 Tab 키 한 번으로 3~4줄이 한 번에 완성되는 경험은 중독성이 있다.
강점 - 반복 패턴과 보일러플레이트
// 내가 이렇게 시작하면...
interface User {
id: string;
name: string;
email: string;
}
// Copilot이 자동으로 이렇게 완성해준다
interface UserRepository {
findById(id: string): Promise<User | null>;
findByEmail(email: string): Promise<User | null>;
create(user: Omit<User, 'id'>): Promise<User>;
update(id: string, data: Partial<User>): Promise<User>;
delete(id: string): Promise<void>;
}
테스트 코드 작성할 때 특히 강력하다. 첫 번째 테스트를 쓰면, 나머지 엣지 케이스들을 자동으로 제안해준다. "아, 이 케이스도 테스트해야 했구나" 싶은 것들을 일깨워주는 역할도 한다.
약점 - 복잡한 비즈니스 로직
하지만 복잡한 상태 관리나 비즈니스 로직에선 한계가 명확했다. 제안은 하는데, 미묘하게 틀렸다. 예를 들어 결제 로직에서 환불 처리를 구현할 때, 제안된 코드가 엣지 케이스를 놓쳤다. 부분 환불, 환율 계산, 수수료 처리 같은 도메인 지식이 필요한 부분은 여전히 내가 직접 써야 했다.
채팅 기능 - 보조 역할
Copilot의 채팅 기능도 있긴 한데, 정직하게 말하면 잘 안 쓴다. VS Code 사이드바에 있어서 접근성은 좋은데, 컨텍스트 이해가 약하다. 멀티파일 리팩토링을 요청하면 제안만 해주지 직접 실행은 안 해서, 결국 내가 복붙하고 수정해야 한다.
가격: $10/월 (개인), $19/월 (비즈니스) 모델: OpenAI Codex (GPT-4 기반) 최고의 순간: 반복적인 CRUD 코드, API 엔드포인트 작성, 테스트 케이스 생성
Claude Code: 에이전틱 코딩의 신세계
Claude Code는 완전히 다른 접근법이다. CLI 기반이고, 내가 자연어로 지시하면 알아서 파일을 읽고 쓰고 수정한다.
강점 - 멀티파일 리팩토링
가장 인상적이었던 건 대규모 리팩토링이다. "이 컴포넌트를 Composition API에서 <script setup> 문법으로 바꿔줘"라고 하면, 10개 파일을 순회하며 일관되게 수정한다.
# Claude Code 사용 예시
$ claude-code
> 모든 Vue 컴포넌트에서 Options API를 Composition API로 변경해줘.
> props, emits, computed 모두 마이그레이션하고,
> 타입스크립트 타입도 업데이트해.
# Claude가 자동으로:
# 1. 모든 .vue 파일 찾기
# 2. 각 파일의 구조 분석
# 3. 순차적으로 변환
# 4. import 문 정리
# 5. 타입 정의 업데이트
이런 작업을 손으로 하면 2~3시간 걸릴 텐데, Claude Code는 5분 안에 끝낸다. 물론 내가 코드 리뷰는 해야 하지만, 80%는 그대로 쓸 수 있는 수준이었다.
도구 사용의 지능
Claude Code의 진짜 강점은 도구 사용이다. 파일을 읽고, grep으로 검색하고, git 히스토리를 확인하고, 심지어 npm install도 스스로 한다. 마치 주니어 개발자한테 "이 버그 고쳐봐"라고 맡겼을 때, 혼자서 파일 뒤지고 구글링하면서 해결하는 모습을 보는 것 같다.
약점 - 실시간성과 피드백 루프
단점은 즉각적인 피드백이 없다는 것. IDE에 통합된 게 아니라서, 작업이 끝나고 나서야 결과를 본다. 중간에 "아, 이거 말고 저렇게 해줘"라고 방향을 틀기 어렵다. 그리고 가끔 너무 많은 걸 한 번에 바꿔서, diff를 보는 게 오히려 더 힘들 때가 있다.
또 하나, 컨텍스트 윈도우 소진이 빠르다. 큰 프로젝트에서 여러 파일을 읽다 보면 토큰이 금방 차서, "죄송하지만 컨텍스트가 너무 커서..."라는 메시지를 보게 된다. 이럴 땐 작업을 쪼개서 다시 시작해야 한다.
가격: Claude Pro 구독 ($20/월) 또는 API 사용료 모델: Claude 3.7 Sonnet / Opus 4.6 최고의 순간: 대규모 리팩토링, 새 기능 추가, 버그 수정, 프로젝트 셋업
Cursor: 올인원 IDE 경험
Cursor는 VS Code 포크에 AI를 깊숙이 통합한 제품이다. UI/UX는 VS Code와 거의 같지만, AI 기능이 네이티브로 들어가 있다.
Tab 자동완성 - Copilot과 비슷하지만 더 빠르다
Cursor의 Tab 완성은 Copilot과 느낌이 비슷한데, 체감상 조금 더 빠르고 정확했다. 특히 최근 작성한 코드 패턴을 더 잘 학습하는 느낌. 같은 파일 내에서 비슷한 함수를 3개 쯤 쓰면, 4번째부터는 거의 100% 정확도로 제안한다.
Composer: Claude Code의 IDE 버전
Cursor의 킬러 피처는 Composer다. Cmd+I로 열면, 자연어로 멀티파일 작업을 지시할 수 있다. Claude Code처럼 작동하는데, IDE 안에서 실시간으로 변경사항을 보여준다.
// Composer에게 이렇게 요청:
// "User 인터페이스에 role 필드를 추가하고,
// 모든 관련 컴포넌트와 API 호출을 업데이트해줘"
// Cursor가 자동으로:
// 1. types/user.ts 업데이트
interface User {
id: string;
name: string;
email: string;
role: 'admin' | 'user' | 'guest'; // 추가됨
}
// 2. components/UserCard.tsx 수정
export function UserCard({ user }: { user: User }) {
return (
<div>
<h3>{user.name}</h3>
<span>{user.role}</span> {/* 추가됨 */}
</div>
);
}
// 3. api/users.ts 수정
// 4. 테스트 파일 업데이트
변경사항을 실시간으로 diff로 보여주고, 각 파일마다 Accept/Reject 할 수 있다. 이게 Claude Code보다 훨씬 편하다. 잘못된 부분만 콕 찍어서 거부하고, 나머지만 적용할 수 있다.
채팅 - 컨텍스트 이해가 강력하다
Cursor의 채팅은 현재 열린 파일, 선택한 코드, 최근 변경사항을 자동으로 컨텍스트에 포함한다. "여기서 왜 에러가 나?"라고 물으면, 바로 해당 코드 블록을 분석해서 답한다. Copilot 채팅보다 훨씬 문맥을 잘 파악한다.
약점 - 가격과 안정성
Cursor의 단점은 가격이다. Pro 플랜이 $20/월인데, 무제한이 아니라 월 500회 요청 제한이 있다. 빡세게 쓰면 금방 소진된다. 추가 요청은 별도 결제해야 하는데, 이게 은근히 부담스럽다.
또 가끔 불안정하다. 베타 기능이 많아서인지, Composer가 멈추거나 응답이 안 올 때가 있다. VS Code는 안정성이 생명인데, 이 부분에서 아쉬움이 있다.
가격: $20/월 (Pro, 500회 제한), $40/월 (비즈니스) 모델: GPT-4, Claude 3.7 Sonnet (선택 가능) 최고의 순간: 빠른 프로토타이핑, 복잡한 리팩토링, 코드베이스 탐색
실제 워크플로우 - 언제 뭘 써야 할까?
시나리오 1 - 새로운 기능 추가
새 REST API 엔드포인트 + DB 스키마 + 프론트엔드 통합
- 1단계 (Claude Code): "유저 프로필 이미지 업로드 기능 만들어줘. S3 연동, 썸네일 생성, DB 저장 포함"
- 2단계 (Cursor Composer): Claude가 생성한 코드를 보면서 세부 조정. "에러 핸들링 강화해줘", "로딩 상태 추가해줘"
- 3단계 (Copilot): 엣지 케이스 테스트 코드 작성할 때 자동완성 활용
이렇게 3단계로 나누니까 생산성이 눈에 띄게 올랐다. 각 도구의 강점만 쓰는 셈이다.
시나리오 2 - 버그 수정
프로덕션 버그: "특정 조건에서 결제가 실패한다"
- 1단계 (Cursor): 에러 로그를 채팅에 붙여넣고 "왜 이런 에러가 나?" 물어본다
- 2단계 (Claude Code): 원인을 찾으면 "이 버그 고쳐줘. 연관된 모든 파일 확인하고 테스트도 추가해줘"
- 3단계 (Copilot): 수정된 코드 리뷰하면서, 놓친 엣지 케이스가 있는지 확인
버그 수정엔 Claude Code가 가장 강력했다. git blame도 확인하고, 관련 커밋 히스토리도 읽으면서 컨텍스트를 파악하는 모습이 인상적이었다.
시나리오 3 - 레거시 코드 리팩토링
10개 파일에 걸친 클래스 기반 코드를 함수형으로 전환
- 1단계 (Claude Code): 전체 구조를 파악시키고 마이그레이션 요청. "이 폴더 전체를 함수형으로 바꾸되, 기존 API는 유지해줘"
- 2단계 (Cursor): Composer로 diff 확인하며 파일별로 Accept/Reject
- 3단계 (Copilot): 새로운 함수형 패턴으로 추가 유틸 함수 작성할 때 자동완성
리팩토링엔 Claude Code + Cursor 조합이 최고다. Claude의 넓은 시야와 Cursor의 세밀한 컨트롤이 완벽하게 맞아떨어진다.
비교 정리 - 어떤 도구를 선택할까?
| 기준 | GitHub Copilot | Claude Code | Cursor |
|---|---|---|---|
| 가격 | $10/월 | $20/월 (Pro) | $20/월 (500회) |
| 모델 | GPT-4 Codex | Claude 3.7/Opus | GPT-4/Claude |
| 자동완성 | ⭐⭐⭐⭐⭐ | ❌ | ⭐⭐⭐⭐⭐ |
| 멀티파일 작업 | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 컨텍스트 이해 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 속도 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| IDE 통합 | VS Code 네이티브 | CLI (별도) | 전용 IDE |
| 학습 곡선 | 낮음 | 중간 | 낮음 |
추천 시나리오
GitHub Copilot을 선택해야 할 때:
- 이미 VS Code를 주력으로 쓰는 경우
- 빠른 타이핑과 자동완성이 최우선
- 예산이 제한적 ($10/월)
- 단일 파일 작업이 대부분
Claude Code를 선택해야 할 때:
- 대규모 리팩토링이 잦은 경우
- AI에게 큰 단위 작업을 맡기고 싶을 때
- 여러 파일을 동시에 수정해야 할 때
- CLI 워크플로우가 익숙한 경우
Cursor를 선택해야 할 때:
- 올인원 솔루션을 원하는 경우
- IDE 전환이 부담스럽지 않은 경우
- 실시간 피드백이 중요한 경우
- 예산이 충분한 경우 ($20/월 + 추가 요청)
더 나은 결과를 얻는 팁
세 도구 모두에 적용되는 원칙이 있다. 좋은 질문이 좋은 코드를 만든다.
구체적으로 요청하라
❌ "이 코드 개선해줘" ✅ "이 함수에 에러 핸들링 추가하고, 타입 가드로 안전성 강화해줘"
❌ "버튼 만들어줘" ✅ "로딩 상태를 보여주는 primary 버튼 컴포넌트 만들어줘. disabled 상태, 아이콘 지원, Tailwind 사용"
컨텍스트를 충분히 제공하라
채팅이나 Composer에 요청할 때, 관련 파일을 미리 열어두거나 코드 블록을 포함시켜라. AI는 텔레파시를 못 쓴다. 너의 코드베이스 구조, 네이밍 컨벤션, 기술 스택을 명시적으로 알려줘야 한다.
단계적으로 접근하라
"회원가입 기능 전부 만들어줘"보다는:
- "User 모델과 스키마부터 만들어줘"
- "이제 회원가입 API 엔드포인트 만들어줘"
- "프론트엔드 폼 추가해줘"
이렇게 단계별로 진행하면, 각 단계에서 피드백하고 방향을 조정할 수 있다.
결과를 맹신하지 마라
AI가 생성한 코드는 항상 리뷰해야 한다. 보안 이슈, 성능 문제, 엣지 케이스 누락이 흔하다. AI는 조수지 대체재가 아니다. 특히 인증, 결제, 개인정보 처리 같은 민감한 부분은 두 번 세 번 확인하라.
인디 개발자를 위한 비용-효과 분석
나는 혼자서 여러 프로젝트를 굴리는 인디 개발자다. AI 도구에 월 $20~40을 쓰는 게 과연 가치가 있을까?
결론부터 말하면, 완전히 가치 있다. 특히 내가 디자이너, 마케터, PM 역할까지 해야 하는 상황에서, 코딩 속도가 2배 빨라진다는 건 프로젝트를 2개 더 할 수 있다는 뜻이다.
구체적으로 계산해보면:
- 시간당 $50 프리랜서 레이트 기준
- AI 도구로 하루 1시간 절약
- 월 20일 작업 = 20시간 절약
- 월 $1,000 가치
월 $20 내고 $1,000 효과를 얻는 셈이다. ROI가 50배다. 물론 실제로는 모든 작업이 2배 빨라지진 않는다. 하지만 보일러플레이트, 테스트 코드, 리팩토링 같은 "생각은 끝났는데 타이핑이 귀찮은" 작업에서 확실히 시간을 아낀다.
내 선택 - 하이브리드 전략
결국 나는 세 가지를 다 구독했다. 비용은 월 $50 정도.
- Copilot: 기본으로 켜놓고 자동완성 활용
- Claude Code: 주 1~2회, 큰 리팩토링이나 새 기능 개발할 때
- Cursor: 빠른 프로토타이핑, 실험적 프로젝트
이게 과한 것 같지만, 내 시간의 가치를 생각하면 충분히 합리적이다. 도구에 돈을 아끼느라 시간을 낭비하는 건 진짜 비효율이다.
AI 페어 프로그래밍은 이미 현실이다
2년 전만 해도 "AI가 코딩을 대체할까?"라는 논쟁이 뜨거웠다. 지금 와서 보니, 잘못된 질문이었다. AI는 코딩을 대체하는 게 아니라, 코딩의 본질을 바꾸고 있다.
예전엔 "어떻게 구현할까?"에 시간을 썼다면, 이제는 "무엇을 만들까?" "어떻게 설계할까?"에 더 집중한다. 타이핑과 문법은 AI가 해결해주니까, 나는 아키텍처, 사용자 경험, 비즈니스 로직에 집중할 수 있다.
마치 자동차가 나온 뒤 "운전자는 필요 없어졌나?"라고 묻는 것과 같다. 아니다. 운전자는 여전히 필요하다. 다만 말을 다루는 기술 대신, 목적지를 정하고 경로를 선택하는 능력이 중요해졌을 뿐이다.
GitHub Copilot, Claude Code, Cursor - 각각은 다른 유형의 운전대다. 어디로 갈지는 여전히 내가 결정한다. 하지만 이제 더 빠르고, 더 멀리 갈 수 있다.
코딩 어시스턴트를 아직 안 써봤다면, 지금 당장 시작하라. 한 달만 써봐도 돌아갈 수 없다. 마치 기계식 키보드로 갈아탄 뒤 멤브레인으로 못 돌아가는 것처럼, 이제 AI 없는 코딩은 상상하기 힘들다.