Cursor AI 설치 가이드 4단계 — Mac Claude 연동, Rules 설정까지

VS Code를 5년 넘게 쓰다가 Cursor로 갈아탄 지 6개월 정도 됐다. 처음에는 “또 하나의 AI 에디터겠지” 싶었는데, Claude 모델과 제대로 연동하고 나니 코딩 방식 자체가 바뀌었다. 함수 하나 짤 때 레퍼런스 찾으러 브라우저 왔다 갔다 하던 시간이 거의 사라졌고, 특히 Composer 모드에서 여러 파일을 동시에 수정하는 워크플로우는 한번 맛보면 돌아가기 어렵다.

다만 Cursor는 설치만 하면 끝나는 도구가 아니다. API 키 연동, 모델 선택, .cursorrules 설정, 단축키 충돌 해결까지 초기 세팅에 신경 쓸 부분이 꽤 있다. 나는 MacBook M1 32GB 환경에서 쓰고 있고, 이 글에서는 내가 실제로 세팅한 과정을 그대로 정리한다. M1 이상의 Apple Silicon Mac이라면 동일하게 적용된다.

Cursor 설치 — DMG vs Homebrew

설치 방법은 두 가지다. 공식 사이트에서 DMG를 받거나, Homebrew Cask로 설치하거나. 나는 Homebrew를 선호한다. 업데이트 관리가 편하고, 나중에 깔끔하게 제거할 수 있기 때문이다. 관련 내용은 Mac Claude Code CLI 설치 가이드에서도 다루고 있다.

# 방법 1: Homebrew로 설치 (추천)
brew install --cask cursor

# 설치 확인
ls /Applications/Cursor.app

# 방법 2: 공식 사이트 DMG 다운로드
# https://www.cursor.com/ 에서 Download for Mac 클릭
# dmg 열고 Applications 폴더로 드래그

# 이미 설치된 Cursor 업데이트
brew upgrade --cask cursor

# Cursor 버전 확인 (터미널에서)
# Cursor > About Cursor 메뉴에서도 확인 가능
# 현재 안정 버전: 0.48.x (2026년 3월 기준)

처음 실행하면 macOS가 “인터넷에서 다운로드한 앱이다” 경고를 띄운다. “열기”를 누르면 된다. Apple Silicon(M1/M2/M3/M4)용으로 네이티브 빌드가 제공되니 Rosetta 걱정은 안 해도 된다. 설치 용량은 약 500MB 정도이고, 실행 후 기본 인덱싱이 끝나면 바로 사용할 수 있다.

참고로 Cursor는 VS Code를 포크한 에디터다. Electron 기반이라는 점도 같다. 그래서 VS Code에서 쓰던 거의 모든 확장과 설정을 그대로 가져올 수 있다. 이 부분은 바로 다음 섹션에서 다룬다.

VS Code 설정 및 확장 마이그레이션

Cursor — 설정 및 실행 결과 화면

Cursor를 처음 실행하면 “Import VS Code Settings” 옵션이 뜬다. 여기서 한 번에 가져올 수 있는 것들은 다음과 같다.

  • 설정(settings.json): 폰트, 테마, 들여쓰기 설정 등
  • 키바인딩(keybindings.json): 커스텀 단축키
  • 확장(Extensions): 설치된 VS Code 확장 목록
  • 스니펫(snippets): 사용자 정의 코드 스니펫

나는 처음에 자동 마이그레이션을 썼는데, 일부 확장이 Cursor에서 호환되지 않아서 에러가 나는 경우가 있었다. 특히 VS Code 전용 확장(예: VS Code 원격 개발 확장 일부)은 Cursor에서 작동하지 않는다. 그래서 내가 추천하는 방식은 자동 마이그레이션으로 기본 설정만 가져온 뒤, 확장은 필요한 것만 수동으로 설치하는 것이다.

Cursor에서 꼭 설치할 만한 확장 목록을 정리하면 이렇다. 이건 순전히 내 기준이니 참고만 하자.

  • ESLint / Prettier: 코드 포매팅 필수
  • GitLens: git blame, 히스토리 확인
  • Error Lens: 에러를 인라인으로 보여줌 (AI와 함께 쓰면 시너지가 좋다)
  • Tailwind CSS IntelliSense: Tailwind 쓴다면 필수
  • Thunder Client: API 테스트 (Postman 대체)

확장 마이그레이션을 수동으로 하고 싶다면, VS Code에서 확장 목록을 뽑아서 Cursor에서 일괄 설치할 수 있다.

# VS Code에서 설치된 확장 목록 추출
code --list-extensions > ~/vscode-extensions.txt

# Cursor에서 일괄 설치
# Cursor CLI는 'cursor' 명령어로 접근
# Cursor > Install 'cursor' command in PATH 먼저 실행
while read ext; do
  cursor --install-extension "$ext"
done < ~/vscode-extensions.txt

# 설치 실패한 확장 확인
cursor --list-extensions | wc -l
# VS Code 확장 수와 비교해서 차이가 나면 호환 안 되는 확장

Claude API 키 연동 (Settings > Models)

Cursor에서 AI 기능을 쓰는 방법은 두 가지다. Cursor Pro 구독(월 $20)으로 내장 모델을 쓰거나, 직접 API 키를 넣어서 쓰거나. 나는 Anthropic API 키를 직접 연동해서 쓰고 있다. 이유는 단순하다. 모델 선택의 자유도가 높고, 사용량 기반 과금이라 안 쓰는 달에는 비용이 안 나온다.

API 키 연동 절차는 이렇다.

  1. Anthropic Console 접속 → API Keys 메뉴
  2. "Create Key" 클릭 → 키 이름 입력 (예: cursor-mac) → 생성
  3. sk-ant-api03-...로 시작하는 키를 복사 (이 화면을 닫으면 다시 볼 수 없다)
  4. Cursor에서 Cmd + , → Settings 열기
  5. 좌측 메뉴에서 "Models" 클릭
  6. "Anthropic API Key" 필드에 복사한 키 붙여넣기
  7. "Verify" 버튼 클릭 → 초록색 체크가 뜨면 성공

만약 OpenAI 모델도 함께 쓰고 싶다면, 같은 Settings > Models 페이지에서 "OpenAI API Key" 필드에 OpenAI 키를 추가로 넣으면 된다. 두 API 키를 동시에 설정해두면 채팅할 때 모델을 자유롭게 전환할 수 있다.

주의할 점 하나. API 키를 넣었는데 "Invalid API Key" 에러가 뜬다면, 키 앞뒤에 공백이 들어가지 않았는지 확인하자. 복사할 때 공백이 섞이는 경우가 의외로 많다. 그리고 Anthropic Console에서 키를 생성한 직후 바로 사용하면 간헐적으로 인증 실패가 뜨는 경우가 있는데, 1~2분 기다렸다가 다시 시도하면 해결된다.

모델 선택 가이드 — Sonnet vs Opus vs GPT-4o

Cursor에서 사용할 수 있는 주요 모델과 내가 체감한 특성을 정리하면 이렇다.

모델 강점 약점 비용 (1M 토큰)
Claude Sonnet 4 속도-성능 균형 최고, 코드 생성 정확도 높음 복잡한 아키텍처 설계에서 가끔 빈틈 입력 $3 / 출력 $15
Claude Opus 4 긴 컨텍스트 이해, 복잡한 리팩토링 응답 속도 느림, 비용 높음 입력 $15 / 출력 $75
GPT-4o 빠른 응답, 일반적인 코드 생성 무난 코드 정확도에서 Claude 대비 아쉬움 입력 $2.50 / 출력 $10
cursor-small Tab 자동완성 전용, 극도로 빠름 복잡한 대화에는 부적합 Cursor Pro 포함

내 사용 패턴을 기준으로 결론을 내리면 이렇다. 일상적인 코딩 — 함수 작성, 버그 수정, 테스트 코드 생성 — 에는 Claude Sonnet 4가 가장 효율적이다. 속도도 빠르고 비용도 합리적이면서 코드 품질이 좋다. 대규모 리팩토링이나 아키텍처 설계처럼 컨텍스트를 깊이 이해해야 하는 작업에서만 Opus 4를 쓴다. 한 달 기준으로 Sonnet 80%, Opus 15%, 나머지 5% 정도의 비율인데, 월 API 비용이 $15~25 사이에서 나온다.

모델 전환은 Cursor 채팅 창 상단의 모델 드롭다운에서 바로 할 수 있다. 대화 중간에 모델을 바꿔도 컨텍스트가 유지되니, "이 부분은 Opus로 다시 분석해줘" 같은 식으로 활용하면 좋다.

.cursorrules 파일 작성법 및 예시

.cursorrules는 Cursor에서 AI에게 프로젝트 전체에 적용되는 지시사항을 전달하는 파일이다. 프로젝트 루트에 생성하면 Cursor가 자동으로 인식한다. 이 파일 하나가 AI 응답 품질을 크게 좌우한다. 잘 작성하면 "내 프로젝트 컨텍스트를 아는 주니어 개발자"가 되고, 안 쓰면 "프로젝트를 모르는 범용 AI"가 되는 차이다.

# .cursorrules 예시 — TypeScript + Next.js 프로젝트

## 프로젝트 개요
이 프로젝트는 Next.js 14 App Router 기반의 블로그 플랫폼이다.
TypeScript strict 모드 사용, Tailwind CSS로 스타일링.

## 코드 스타일
- TypeScript strict 모드: any 타입 사용 금지
- 함수형 컴포넌트만 사용 (class 컴포넌트 금지)
- 파일명은 kebab-case: `user-profile.tsx`
- 컴포넌트명은 PascalCase: `UserProfile`
- 서버 컴포넌트가 기본, 클라이언트 컴포넌트는 'use client' 명시
- import 순서: React → 외부 라이브러리 → 내부 모듈 → 스타일

## 디렉토리 구조
- `app/` — 라우트 및 페이지
- `components/` — 재사용 컴포넌트
- `lib/` — 유틸리티, API 클라이언트
- `types/` — 타입 정의

## 에러 처리
- API 호출은 반드시 try-catch로 감싸기
- 사용자에게 보여주는 에러와 로그용 에러를 분리
- Sentry로 에러 리포팅 (lib/sentry.ts 참고)

## 테스트
- 테스트 파일은 `__tests__/` 디렉토리에 위치
- Jest + React Testing Library 사용
- 단위 테스트 함수명: `describe('컴포넌트명', () => { it('동작 설명', ...) })`

## 금지 사항
- console.log를 프로덕션 코드에 남기지 말 것 (logger 모듈 사용)
- 인라인 스타일 사용 금지 (Tailwind 클래스 사용)
- 환경변수를 하드코딩하지 말 것

핵심은 모호하지 않게 구체적으로 작성하는 것이다. "코드를 깔끔하게 작성해" 같은 추상적인 지시는 효과가 없다. "any 타입 사용 금지", "인라인 스타일 금지"처럼 AI가 바로 판단할 수 있는 규칙이 좋다.

.cursorrules의 위치는 프로젝트 루트다. 모노레포라면 각 패키지 루트에 따로 만들 수도 있지만, 일반적으로는 프로젝트 루트 하나로 충분하다. .gitignore에 넣지 말고 커밋하는 걸 추천한다. 팀원들도 같은 규칙을 공유해야 일관성이 유지되기 때문이다.

프로젝트별 AI 컨텍스트 설정

.cursorrules 외에도, Cursor에서 AI 컨텍스트를 제어하는 방법이 몇 가지 더 있다.

1. @파일 참조: 채팅 창에서 @filename을 입력하면 해당 파일을 AI 컨텍스트에 추가한다. "이 파일을 참고해서 비슷한 패턴으로 만들어줘" 같은 요청에 유용하다.

2. @폴더 참조: @src/components처럼 폴더를 지정하면 해당 폴더의 파일들을 컨텍스트로 가져온다. 다만 파일이 많으면 토큰 한도에 걸릴 수 있으니 범위를 좁히는 게 좋다.

3. @docs 참조: Cursor는 특정 문서나 URL을 컨텍스트로 추가할 수 있다. Settings > Features > Docs에서 자주 참고하는 문서(예: Next.js 공식 문서, Tailwind 레퍼런스)를 추가해두면 @Next.js로 바로 참조할 수 있다.

4. .cursorignore 파일: .gitignore와 문법이 같다. AI가 읽지 않았으면 하는 파일이나 폴더를 지정한다. node_modules, .env, 빌드 결과물 등을 넣어두면 토큰 낭비를 줄이고 보안도 챙길 수 있다.

# .cursorignore 예시
node_modules/
.env
.env.local
dist/
build/
*.lock
coverage/
.next/
*.min.js
*.map

이 파일도 프로젝트 루트에 만들면 된다. 특히 .env 파일은 반드시 넣어야 한다. API 키나 시크릿이 AI 컨텍스트에 들어가면 안 되기 때문이다.

Composer 모드 활용법

Cursor의 킬러 피처를 하나만 꼽으라면 Composer다. 일반 Chat은 한 파일씩 대화하는 느낌이라면, Composer는 여러 파일을 동시에 생성하고 수정할 수 있는 모드다. Cmd + I로 열 수 있다.

예를 들어, "User 모델에 프로필 이미지 필드를 추가하고, API 엔드포인트와 프론트엔드 컴포넌트도 함께 수정해줘"라고 요청하면, Composer가 관련된 3~4개 파일을 동시에 수정안을 제안한다. 각 파일의 diff를 미리 보고, 승인(Accept)하거나 거부(Reject)할 수 있다.

Composer를 잘 쓰려면 몇 가지 팁이 있다.

  • 요청을 구체적으로: "로그인 기능 만들어줘"보다 "NextAuth.js로 Google OAuth 로그인 구현해줘. app/api/auth/[...nextauth]/route.ts 파일 생성하고, 로그인 버튼 컴포넌트도 만들어줘"가 훨씬 결과가 좋다.
  • 컨텍스트 파일을 미리 추가: Composer 창에서 + 버튼으로 관련 파일을 추가해두면 기존 코드 패턴을 반영한 결과를 준다.
  • 한 번에 너무 많은 변경을 요청하지 말 것: 파일 5개 이상을 동시에 수정하면 품질이 떨어진다. 3개 이내로 나눠서 요청하는 게 낫다.
  • Agent 모드 활용: Composer 하단에서 "Agent" 모드를 선택하면, AI가 터미널 명령어 실행, 파일 생성, 에러 확인까지 자동으로 수행한다. 새 프로젝트 초기 세팅할 때 특히 유용하다.

Tab 자동완성 세팅 및 최적화

Cursor의 Tab 자동완성은 GitHub Copilot과 비슷한 기능이다. 코드를 타이핑하다 보면 회색으로 제안이 뜨고, Tab을 누르면 적용된다. 기본적으로 활성화되어 있지만, 몇 가지 설정을 바꾸면 더 편하게 쓸 수 있다.

Cmd + , → Settings → "Cursor Tab" 섹션에서 조정할 수 있는 옵션들이다.

  • Enable Cursor Tab: 활성화/비활성화. 당연히 켜놓자.
  • Trigger Mode: "Automatic"으로 설정하면 타이핑할 때 자동으로 제안이 뜬다. "Manual"로 하면 특정 단축키를 눌러야 제안이 나온다.
  • Suggestion Delay: 제안이 뜨기까지의 딜레이. 기본값이 적당하지만, 타이핑이 빠른 편이라면 살짝 늘려도 된다. 제안이 너무 자주 깜빡이면 집중이 깨진다.

Tab 자동완성이 생각보다 정확하지 않다고 느끼면, .cursorrules에 코드 스타일 규칙을 상세하게 적어보자. 예를 들어 "화살표 함수를 우선 사용" 같은 규칙을 명시하면, Tab 제안도 그 패턴을 따라온다. 자동완성은 현재 파일과 열린 탭의 코드를 참고하기 때문에, 관련 파일을 미리 열어두는 것도 도움이 된다.

Copilot과 Cursor Tab을 동시에 쓰면 충돌이 생긴다. 둘 다 Tab 키에 바인딩되어 있기 때문이다. Cursor를 주력으로 쓸 거라면 Copilot 확장은 비활성화하는 걸 추천한다.

Mac 단축키 충돌 해결

Cursor를 설치하고 가장 먼저 부딪히는 문제가 단축키 충돌이다. macOS 기본 단축키, Spotlight, 한영 전환 등과 겹치는 키가 몇 개 있다.

Cursor 단축키 기능 충돌 대상 해결법
Cmd + K AI 인라인 편집 터미널에서 줄 삭제 (zsh) Cursor 내 터미널에서는 AI 기능 우선. 외부 터미널 사용 시 문제없음
Cmd + L AI 채팅 열기 VS Code의 "Go to Line" Ctrl + G로 Go to Line 사용
Cmd + I Composer 열기 일부 앱의 "이탤릭" Cursor 내에서는 문제없음
Ctrl + Space 자동완성 트리거 macOS Spotlight / 한영전환 시스템 설정에서 Spotlight 단축키 변경

Ctrl + Space 충돌이 가장 짜증나는 문제다. macOS에서 이 키가 Spotlight이나 입력 소스 전환에 바인딩되어 있으면, Cursor의 자동완성 트리거가 먹히지 않는다. 해결법은 다음과 같다.

# macOS 시스템 설정에서 Spotlight 단축키 변경
# System Settings > Keyboard > Keyboard Shortcuts > Spotlight
# "Show Spotlight search" → Cmd + Space는 유지하되
# "Show Finder search window" → 체크 해제 또는 다른 키로 변경

# 입력 소스(한영 전환) 충돌 해결
# System Settings > Keyboard > Keyboard Shortcuts > Input Sources
# "Select the previous input source" → Ctrl + Space 대신 Caps Lock 또는 Cmd + Space 사용
# Apple Silicon Mac은 기본적으로 Caps Lock이 한영 전환이라 이 문제가 적을 수 있다

# Cursor에서 커스텀 키바인딩 설정
# Cmd + Shift + P → "Preferences: Open Keyboard Shortcuts (JSON)"
# keybindings.json에 추가:
# [
#   {
#     "key": "cmd+shift+l",
#     "command": "workbench.action.gotoLine"
#   }
# ]

내 경우에는 한영 전환을 Caps Lock으로 바꾸고, Ctrl + Space는 Cursor에서만 쓰도록 설정했다. 이게 가장 깔끔한 해결책이었다.

메모리 사용량 관리 팁

MacBook M1 32GB 환경에서 Cursor를 쓰면, 평소에는 1.5~2.5GB 정도의 메모리를 잡아먹는다. VS Code보다 약간 더 많이 쓰는 편인데, AI 인덱싱과 백그라운드 프로세스 때문이다. 문제는 프로젝트 규모가 크거나 오래 켜두면 3~4GB까지 올라갈 수 있다는 것이다.

메모리 사용량을 관리하는 실전 팁을 정리한다.

  • 열린 탭 수 제한: Settings에서 "workbench.editor.limit.enabled": true, "workbench.editor.limit.value": 10으로 설정하면 탭이 10개를 넘으면 가장 오래된 탭이 자동으로 닫힌다.
  • Large File 인덱싱 제외: .cursorignore에 빌드 산출물, 대용량 JSON, 로그 파일을 추가해서 AI 인덱싱 대상에서 제외한다.
  • 정기적으로 재시작: Cursor를 3~4일 연속으로 켜두면 메모리 누수 비슷한 현상이 생긴다. 하루에 한 번 정도 재시작하면 쾌적해진다.
  • 불필요한 확장 비활성화: 확장이 많을수록 메모리를 많이 쓴다. 지금 안 쓰는 확장은 비활성화하자.
  • Activity Monitor로 모니터링: "Cursor Helper (Renderer)" 프로세스가 메모리를 가장 많이 차지한다. 비정상적으로 높으면(4GB 이상) 재시작이 답이다.

32GB RAM이면 Cursor + Docker + Chrome을 동시에 띄워도 여유가 있다. 다만 16GB 모델이라면 Docker를 쓸 때 Cursor의 AI 인덱싱과 동시에 돌리면 스왑이 발생할 수 있다. 이 경우에는 .cursorignore를 적극적으로 활용해서 인덱싱 범위를 줄이는 게 중요하다.

여기까지가 Cursor + Claude를 Mac에서 세팅하는 전체 과정이다. 처음 세팅에 30분에서 1시간 정도 투자하면, 이후 코딩 효율이 체감할 수 있을 만큼 달라진다. 특히 .cursorrules는 프로젝트가 바뀔 때마다 한 번씩 다듬어주면 좋다. AI가 내 프로젝트를 더 잘 이해할수록 쓸모없는 제안이 줄어들고, 실제로 쓸 만한 코드를 제안하는 비율이 높아진다. 결국 도구를 얼마나 잘 세팅하느냐가 생산성 차이를 만든다.