GitHub Copilot vs Cursor vs Codeium: 2026년 최고의 AI 코딩 어시스턴트는 뭘까

3주 전에 좀 짜증나는 일이 있었다. 팀에서 GitHub Copilot Business 라이선스를 갱신하는데 — 시트당 월 $19, 12명, 곱하기 해보면 알 거다 — 시니어 개발자 한 명이 조용히 자기 개인 노트북에서 Cursor로 갔다고 했다. 한 달 동안 Copilot을 거의 안 만졌다고. 그 말 한마디에 직접 테스트해봐야겠다 싶었다.

2주 동안 세 가지 도구를 집중적으로 써봤다: GitHub Copilot, Cursor, 그리고 Codeium (최근에 Windsurf라는 자체 IDE fork를 냈다). 내 스택은 TypeScript, React, Node.js. 팀 규모는 개발자 4명짜리 SaaS 스타트업이다. 대기업 모노레포도 아니고 토이 프로젝트도 아닌, 그냥 실제 업무에서 기능 붙이고 예전의 내가 컨디션 안 좋은 날에 짠 레거시 코드 정리하는 일.

여기서 찾아낸 걸 얘기하겠다.

GitHub Copilot: “안전한 선택”이 항상 칭찬은 아니다

Copilot은 2021년부터 있어온 사실상 표준이다. VS Code와 JetBrains에 깊게 통합되어 있고, 회사 IT 부서가 이미 승인해뒀을 가능성이 높다. 솔직히 그 마지막 포인트가 생각보다 중요하다 — 구매 승인 과정의 번거로움은 개발자들이 잘 과소평가하는 부분이다.

인라인 제안 품질 자체는 진짜 좋다. OpenAI 모델 기반에 GitHub의 공개 코드로 파인튜닝한 결과로, 자주 쓰는 패턴에서 자동완성이 꽤 자연스럽게 동작한다. Express에서 새 API 라우트 작성할 때 에러 핸들링 보일러플레이트까지 통째로 완성해주는 경우도 있었다. 쓸모 있다.

Copilot Chat도 많이 발전했다. VS Code 내 /fix, /explain, /tests 슬래시 커맨드가 범위가 명확한 질문에는 잘 동작한다. 지난주에 /tests로 유틸리티 모듈의 Jest 테스트 스위트를 생성했는데 70% 정도는 그대로 쓸 수 있는 수준이었다. 20분 정도는 아꼈다.

Here is the thing: Copilot은 여전히 “매우 똑똑한 자동완성” 느낌이지, 진짜 협업 도구는 아니다. 2024년 말에 나온 에이전트 모드(2025년에 개선됨)가 이걸 바꾸려고 하는데, 실제로는 잘 정의된 작은 작업에는 유용하지만 — “모든 API 호출에 새 인증 헤더 형식 적용해줘” 같은 것 — 프로젝트 컨벤션 이해가 필요한 작업에서는 한계가 보인다. 우리 팀이 커스텀 훅 이름에 use + 대문자 + 도메인 규칙을 쓴다는 걸 모른다. 폴더 구조 결정 배경을 모른다. 그냥 컨텍스트에 있는 것만 읽는다.

// Copilot이 잘 아는 패턴은 잘 완성해준다:
// "async function fetchUserOrders(" 타이핑하자마자 이걸 완성했다:
async function fetchUserOrders(userId: string): Promise<Order[]> {
  const response = await fetch(`/api/users/${userId}/orders`, {
    headers: {
      Authorization: `Bearer ${getToken()}`,
      'Content-Type': 'application/json',
    },
  });

  if (!response.ok) {
    throw new Error(`Failed to fetch orders: ${response.statusText}`);
  }

  return response.json();
}
// 나쁘지 않다. 근데 재시도 로직이랑 토큰 갱신을 처리하는
// 우리 팀의 커스텀 `apiClient` 래퍼를 모른다. 그냥 raw fetch로 갔다.

One thing I noticed: Copilot의 워크스페이스 인덱싱이 새 파일을 인식하는 속도가 좀 느리다. 공유 유틸리티 파일 추가하고 다른 모듈에서 임포트하기 시작했는데, Copilot이 10분 넘게 옛날 패턴을 계속 제안했다. 사소한 문제지만 집중력 끊기기 딱 좋은 타이밍이다.

실용적 결론: Copilot은 보안 검토와 구매 승인이 병목인 팀에 최적이다. JetBrains IDE를 쓰는 엔지니어가 많은 팀에도 맞는 선택이다 — Cursor와 Codeium의 JetBrains 지원은 아직 따라오는 중이다. 개인 개발자나 유연성 있는 소규모 팀이라면 가성비가 좀 떨어질 수 있다.

Cursor: 짜증나는데 그게 칭찬이다

“짜증난다”고 하면 이상하게 들리겠지만, 여기서는 진짜 칭찬이다.

Cursor 쓰면서 짜증난 이유는, 내가 빠르다고 생각했던 작업들에 얼마나 시간을 낭비하고 있었는지 깨닫게 해줬기 때문이다. 그게 좀 불편한 느낌이었다.

Cursor는 VS Code fork라서 기존 익스텐션, 키바인딩, 테마가 다 그대로 옮겨온다. 세팅하는 데 8분 정도 걸렸다 (실제로 잰 거다). Tab 자동완성은 나한테는 Copilot보다 확실히 빠른 느낌인데 — 솔직히 이게 모델 레이턴시 차이인지 UI 최적화 차이인지는 100% 확신 못 하겠다. 네트워크와 지역마다 다를 수 있다.

작업 방식을 바꿔놓는 기능은 Composer다 (현재 버전에서는 Agent로 이름 바뀌었다). 멀티 파일 작업을 설명하면 Cursor가 실제로 그걸 한다 — 파일 수정, 새 파일 생성, 터미널 커맨드 실행까지 (허용하면). 비대해진 context provider를 리팩토링하는 데 써봤다. “이 AuthContext가 인증 상태랑 사용자 설정을 같이 처리하고 있는데, 두 개의 분리된 context로 쪼개고 모든 import 사이트 업데이트해줘”라고 했더니 실제로 했다. 9개 파일에 걸쳐서. 90초 만에.

완벽했냐고? 아니다. import 사이트 2개를 놓쳤고 새 파일 중 하나에서 네이밍 inconsistency가 있었다. 근데 그 두 가지 찾아서 고치는 게 전체를 수동으로 리팩토링하는 것보다는 훨씬 빨랐다.

채팅 사이드바 (Cmd+L)에서 시간을 많이 쓴다. 코드 블록을 선택하고 “왜 이렇게 리렌더링이 많이 되는 거야?”라고 물으면 내 실제 코드를 참조해서 useCallback의 dependency array 누락에 대한 구체적이고 정확한 답이 온다. 일반적인 설명이 아니라.

// 이 mutation에 optimistic update를 추가해달라고 했다:
// 내가 하이라이트한 원본 코드:
async function deleteComment(commentId: string) {
  await api.delete(`/comments/${commentId}`);
  await refetchComments();
}

// Cursor가 이렇게 다시 썼다:
async function deleteComment(commentId: string) {
  // Optimistic update: 즉시 로컬 상태에서 제거
  setComments(prev => prev.filter(c => c.id !== commentId));

  try {
    await api.delete(`/comments/${commentId}`);
  } catch (error) {
    // 실패 시 롤백
    await refetchComments();
    toast.error('댓글 삭제에 실패했습니다. 다시 시도해주세요.');
  }
}
// 파일 다른 곳의 패턴을 보고 toast notification도 알아서 추가했다.
// 따로 요청하지 않았는데 맞는 방향이었다.

내가 당한 함정이 있다. Cursor Agent 모드는 가끔 선을 넘는다. “users 테이블에 페이지네이션 추가해줘”라고 했더니 혼자 판단해서 테이블 컴포넌트의 상태 관리 패턴까지 리팩토링했다. 틀린 건 아닌데, 내가 요청한 것 이상이었고 내가 검토하지 않은 코드에 손을 댔다. 그 이후로는 프롬프트를 더 구체적으로 쓰고 적용 전에 diff를 꼼꼼히 본다. “Apply All” 버튼은 유혹적이지만 위험하다.

가격은 Pro가 월 $20이다. 시간이 돈인 개발자라면 금방 본전 뽑는다.

실용적 결론: Cursor는 새 코드를 많이 쓰고 중간 규모 리팩토링 (5~20개 파일)을 자주 하는 개발자에게 가장 잘 맞는다. Agent 모드는 데모용이 아니라 진짜 쓸만하다. 단, 드라이버는 항상 본인이어야 한다 — 모든 diff는 적용 전에 반드시 검토하자.

Codeium과 Windsurf: 과소평가된 선택지

솔직히 말하면 이 섹션 쓰기 전에 Codeium을 그냥 무시할 준비가 되어 있었다. 1년 반 전에 써봤는데 제안 품질이 별로였거든. 근데 Windsurf를 냈고 — 자체 VS Code fork, Cursor의 직접 경쟁자다 — 리뷰들이 눈에 들어오기 시작했다.

Windsurf의 Composer 대응 기능은 Cascade다. 기본 개념은 비슷하다: 멀티 스텝 작업 설명하면 AI가 파일 변경을 처리. Windsurf가 다르게 한 것은 “Flows” 개념인데, Cascade가 작업 중간에 멈추고 명확화 질문을 할 수 있다는 점이다 — 가정 세우고 밀어붙이는 대신에. 실제로 써보면 Cursor보다 보수적이다. 예상치 못한 변경이 줄어들지만, 복잡한 작업에서는 좀 느리다.

무료 플랜이 진짜다. 매달 꽤 많은 자동완성을 제공하고, TypeScript/React 일반 패턴에서 제안 품질은 이제 Copilot과 실질적으로 경쟁이 된다. 학생이거나 사이드 프로젝트에 진짜 예산 제한이 있다면, Windsurf Pro가 월 $15인데 진지하게 고려해볼 만하다.

One thing I noticed: Windsurf의 컨텍스트 처리가 큰 파일에서 Copilot보다 약간 나은 것 같았다. 900줄짜리 컴포넌트가 있는데 (알아, 리팩토링 목록에 있다), Windsurf가 Copilot이 가끔 놓치는 방식으로 파일 전체를 파악하는 것 같았다. 과학적 설명은 못 하겠다 — 그냥 내가 관찰한 거다.

익스텐션 호환성은 Windsurf가 더 새로 나온 만큼 Cursor보다 살짝 뒤처진다. 커스텀 린터 익스텐션에서 수동 우회 방법이 필요한 문제를 하나 만났다. 사소하지만, 복잡한 익스텐션 세팅이 있다면 미리 알아두면 좋다.

Codeium의 독립 익스텐션 (일반 VS Code나 JetBrains에서 사용)도 고려해볼 만하다. 개인 사용은 무료고, 제안 품질도 괜찮고, 커스텀 에디터에 종속될 일도 없다.

실용적 결론: Windsurf는 Cursor 수준의 기능을 Cursor 가격 없이 원하거나, 에이전트 작업에서 “먼저 물어보는” 보수적 접근 방식이 내 작업 스타일에 맞는 경우 최선의 선택이다. 무료 Codeium 익스텐션은 무료 옵션 중 단연 최고다.

아무도 제대로 얘기 안 하는 부분: 컨텍스트 관리

세 도구 모두 프로젝트를 얼마나 잘 이해하느냐에서 승부가 갈린다. 실제 일상적인 차이가 여기서 드러난다.

Cursor에는 .cursorrules 파일이 있어서 AI에게 프로젝트에 대한 지속적인 지침을 줄 수 있다 — 네이밍 컨벤션, 선호 패턴, 사용 라이브러리 등. 프로젝트 전용 규칙 40줄 정도 작성했더니 차이가 바로 났다. Cursor가 React 코드베이스에서 클래스 컴포넌트 제안하는 걸 멈췄다. TypeScript에서 any 쓰는 걸 멈췄다. 우리의 에러 핸들링 컨벤션을 따르기 시작했다.

Copilot에도 이제 비슷한 기능이 있다 (.github/copilot-instructions.md). 지난 1년 사이에 추가된 기능이다. 동작하긴 하는데, 긴 대화에서 지침이 “희미해지는” 경우가 Cursor보다 더 자주 있었다.

Windsurf도 자체 버전이 있다 (.windsurfrules). 내 경험상 Cursor와 비슷한데, 엣지 케이스 테스트 시간이 아직 충분하지 않다.

솔직히 이게 중대형 규모 이상으로 잘 확장되는지는 100% 모르겠다 — 50개 이상 패키지의 모노레포에서 어떻게 돌아가는지 궁금하다. 우리 코드베이스 (~80k 라인)에서 세 도구 모두 로컬로는 맞지만 전체 아키텍처 관점에서는 틀린 제안을 하는 경우가 있다.

내가 실제로 쓸 것 (그리고 돈 낼 것)

내 돈으로 산다면: Cursor다. Agent/Composer 기능이 2주 동안 $20짜리 여러 달치를 충분히 아껴줬다. Tab 자동완성이 빠르고, 채팅 컨텍스트가 좋고, .cursorrules로 내 코드베이스를 아는 도구처럼 느껴진다.

회사 돈으로, 구매 승인이 변수라면: GitHub Copilot Business다. JetBrains 지원이 낫고, 보안 검토 과정이 단순하고, GitHub과의 통합 — PR 요약, 코드 리뷰 지원 — 이 팀 레벨에서 진짜 쓸모 있다.

예산이 빠듯하거나 사이드 프로젝트라면: Windsurf 무료 플랜 또는 Codeium 익스텐션이다. 무시하지 마라. 1년 전이었으면 무료 옵션이 경쟁이 안 된다고 했을 텐데, 지금은 다른 얘기다.

솔직한 결론: 이 도구들 다 이제 수준이 됐다. 1등과 3등의 차이보다 아무것도 안 쓰는 것과 이 중 하나라도 쓰는 것의 차이가 훨씬 크다. 2026년에도 AI 지원 없이 코드 쓰고 있다면, 그게 더 시급하게 해결해야 할 문제다.

하나 골라서 깊게 배우고, 프로젝트에 맞게 설정하고, 한 달 동안 꾸준히 써봐라. .cursorrules / copilot-instructions 파일 하나만 잘 써도 어떤 도구든 확실히 좋아진다. 진짜 생산성 향상은 기본 세팅에서 오는 게 아니라, 시간이 지나면서 직접 만들어가는 그 도구의 커스텀 버전에서 나온다.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top