들어가며: 저는 Cursor를 2주간 ‘잘못’ 썼습니다
2024년 11월 15일, 저는 Cursor를 처음 설치했습니다.
유튜브에서 “AI로 코딩한다”는 영상을 보고 흥분해서 바로 다운로드했죠.
결과는 참담했습니다.
나: "로그인 기능 만들어줘"
AI: [코드 생성]
나: (승인 버튼 클릭)
AI: "npm install express 실행하시겠습니까?"
나: (또 승인 버튼 클릭)
AI: "에러가 발생했습니다"
나: "에러 고쳐줘"
AI: [수정된 코드]
나: (또또 승인 버튼 클릭)
30분 동안 승인 버튼만 50번 눌렀습니다.
“이게 AI 코딩이야? 그냥 복붙이 더 빠르겠네.”
그렇게 Cursor를 지울 뻔했습니다.
근데 우연히 해외 개발자 포럼에서 이런 글을 봤습니다:
“Cursor 기본 설정으로 쓰는 사람은 Ferrari를 1단 기어로만 모는 것과 같다”
“설정이 문제였구나.”
그날부터 2주간 설정만 연구했습니다. 해외 포럼, Discord, GitHub 템플릿을 뒤졌습니다.
결과:
- Before: 간단한 CRUD API 만드는데 3시간
- After: 같은 작업 30분 완성
개발 속도가 6배 올랐습니다.
오늘은 제가 2주간 삽질하며 찾아낸 **“Cursor 설정의 정석”**을 공개합니다. 여러분은 5분이면 됩니다.
Table of contents
Open Table of contents
1. Cursor란? (기술 개요)
1.1 정의
Cursor는 Visual Studio Code를 기반으로 만들어진 AI 네이티브 코드 에디터입니다. GPT-4, Claude 등 최신 LLM을 통합하여 자연어로 코드를 생성하고 편집할 수 있습니다.
1.2 VS Code와의 차이점
| 기능 | VS Code + Copilot | Cursor |
|---|---|---|
| AI 통합 수준 | 플러그인 방식 | 네이티브 통합 |
| 컨텍스트 이해 | 현재 파일 중심 | 전체 프로젝트 분석 |
| 멀티 파일 편집 | 불가능 | Composer로 가능 |
| 자연어 명령 | 제한적 | 강력한 Chat/Command |
| 커스터마이징 | 제한적 | .cursorrules 지원 |
1.3 핵심 기능
- Chat (Cmd+L): 프로젝트 전체를 이해하는 AI 어시스턴트
- Composer (Cmd+I): 여러 파일을 동시에 생성/수정
- Inline Edit (Cmd+K): 선택한 코드를 자연어로 편집
- @mentions: 파일, 문서, 웹 검색 결과를 컨텍스트로 주입
- Agent Mode: 복잡한 작업을 자동으로 수행
2. 설치 및 초기 설정
2.1 설치 방법
공식 사이트: cursor.com
macOS
# Homebrew 사용 (권장)
brew install --cask cursor
# 또는 공식 사이트에서 .dmg 다운로드
Windows
# 공식 사이트에서 .exe 다운로드 및 설치
# 또는 Chocolatey
choco install cursor
Linux
# AppImage 다운로드
wget https://download.cursor.sh/linux/appImage/x64
chmod +x cursor-*.AppImage
./cursor-*.AppImage
2.2 계정 생성 및 로그인
- Cursor 실행
- Sign Up 클릭
- 이메일 또는 GitHub 계정으로 가입
- 무료 플랜: 월 2,000회 AI 요청 (GPT-3.5)
- Pro 플랜: $20/월, GPT-4 무제한 + 고급 기능
2.3 VS Code 설정 가져오기
기존 VS Code 사용자라면:
Cursor 실행 → Settings (Cmd+,)
→ "Import VS Code Settings" 클릭
→ Extensions, Keybindings, Themes 자동 이전
3. 바이브 코딩 최적화 설정 (핵심)
이 섹션이 이 글의 가장 중요한 부분입니다. 아래 설정을 모두 적용하면 개발 속도가 극적으로 향상됩니다.
3.1 Auto-run 활성화 (필수!)
AI가 터미널 명령어를 제안할 때마다 승인 버튼을 누르는 것은 매우 비효율적입니다.
설정 경로:
Cursor Settings (Cmd+Shift+J)
→ Features
→ Chat
→ "Auto-run commands" 체크
효과:
npm install,git add등 안전한 명령어 자동 실행- 위험한 명령어(
rm -rf등)는 여전히 승인 요청 - 작업 속도 3배 향상
3.2 Custom “Vibe Coding” Mode 생성
매번 “테스트해줘”, “에러 고쳐줘”라고 말하지 않도록 AI에게 페르소나를 주입합니다.
설정 방법:
Cursor Settings→General→Rules for AI- 아래 내용 입력:
# Vibe Coding Protocol
## 코드 생성 원칙
1. **Code First**: 설명보다 실행 가능한 코드를 먼저 제공
2. **Self-Correction**: 코드 생성 후 스스로 에러를 예측하고 수정
3. **Modern Stack**: 항상 최신 안정 버전 라이브러리 사용
4. **Korean Comments**: 코드 주석은 한국어로 작성
## 작업 흐름
1. 코드 생성 후 즉시 테스트 스크립트 실행
2. 에러 발생 시 자동으로 수정 후 재테스트
3. 성공 확인 후에만 "완료" 보고
## 금지 사항
- `any` 타입 사용 금지
- `console.log` 프로덕션 코드에 포함 금지
- 하드코딩된 API 키/URL 금지
적용 후 차이:
Before:
나: "Express API 만들어줘"
AI: [코드 생성]
나: "테스트해줘"
AI: [테스트 실행]
나: "에러 고쳐줘"
AI: [수정]
After:
나: "Express API 만들어줘"
AI: [코드 생성 → 자동 테스트 → 에러 수정 → 재테스트 → 완료 보고]
3.3 프로젝트별 .cursorrules 설정
프로젝트 루트에 .cursorrules 파일을 만들면 해당 프로젝트 전용 규칙을 적용할 수 있습니다.
예시: Next.js 프로젝트
# .cursorrules
## 프로젝트 정보
- 이름: 블로그 플랫폼
- 스택: Next.js 14 (App Router), TypeScript, Prisma, PostgreSQL
## 폴더 구조
- `app/`: Next.js App Router 페이지
- `components/`: 재사용 컴포넌트
- `lib/`: 유틸리티 함수
- `prisma/`: DB 스키마
## 코딩 컨벤션
- 함수명: camelCase
- 컴포넌트명: PascalCase
- 파일명: kebab-case
- 스타일: Tailwind CSS만 사용
## 필수 규칙
- 모든 컴포넌트는 TypeScript로 작성
- Server Component 우선, Client Component는 명시적으로 'use client' 선언
- 에러 처리는 try-catch 필수
- API 라우트는 Zod로 입력 검증
## 금지 사항
- styled-components 사용 금지
- Pages Router 문법 사용 금지
적용 방법:
# 프로젝트 루트에서
touch .cursorrules
# 위 내용 붙여넣기
이제 Cursor는 이 프로젝트에서 자동으로 Next.js 14 App Router 문법을 사용하고, Tailwind CSS로만 스타일링합니다.
3.4 파일 자동 저장 설정
AI가 코드를 빠르게 수정하므로 자동 저장은 필수입니다.
Settings → Files → Auto Save → "afterDelay" 선택
→ Delay: 1000ms (1초)
3.5 Context Management 최적화
@mentions 활용:
# 특정 파일 참조
@README.md @src/types/user.ts 를 참고해서 프로필 API 만들어줘
# 전체 코드베이스 참조
@codebase 이 프로젝트의 인증 로직을 설명해줘
# 웹 검색
@web Next.js 15 최신 기능 알려줘
# 공식 문서 참조
@docs Prisma에서 트랜잭션 사용법
문서 추가 방법:
Cursor Settings → Features → Docs
→ "Add new doc"
→ URL 입력 (예: https://nextjs.org/docs)
자주 사용하는 라이브러리 문서를 미리 등록하면 환각(Hallucination) 현상이 90% 감소합니다.
4. 실전 워크플로우
4.1 프로젝트 초기 세팅 (5분 완성)
시나리오: Next.js 블로그 프로젝트 시작
Composer (Cmd+I)에서:
Next.js 14 블로그 프로젝트를 초기 세팅해줘.
기술 스택:
- Next.js 14 (App Router)
- TypeScript
- Tailwind CSS
- Prisma + SQLite
- NextAuth.js
폴더 구조:
- app/: 페이지
- components/: 컴포넌트
- lib/: 유틸
- prisma/: DB 스키마
초기 기능:
- 홈페이지 (글 목록)
- 글 상세 페이지
- 마크다운 렌더링
- 다크모드 토글
AI 생성 결과 (3분):
- 전체 폴더 구조 생성
package.json의존성 설치- Tailwind 설정 파일
- Prisma 스키마
- 기본 페이지 및 컴포넌트
전통적 방식: 2시간 → 바이브 코딩: 5분
4.2 기능 추가 (Incremental Development)
Step 1: 댓글 기능 추가
Composer에서:
"글 상세 페이지에 댓글 기능 추가해줘.
- Prisma 스키마에 Comment 모델 추가
- API 라우트: POST /api/comments
- 댓글 컴포넌트 (작성, 목록, 삭제)
- 낙관적 업데이트 적용"
Step 2: 검색 기능
"전체 글 검색 기능 추가해줘.
- 제목, 내용, 태그 검색
- 디바운싱 적용
- 검색 결과 하이라이팅"
Step 3: SEO 최적화
"모든 페이지에 SEO 메타태그 추가해줘.
- Open Graph
- Twitter Card
- Sitemap 자동 생성"
4.3 디버깅 워크플로우
에러 발생 시:
- 터미널 에러 메시지 전체 선택
- “Add to Chat” 버튼 클릭 (또는 Cmd+Shift+L)
- Chat에서:
이 에러 왜 발생했어? 고쳐줘. 환경: - Node.js: v20.10.0 - Next.js: 14.0.4
AI가 에러를 분석하고 자동으로 수정합니다.
4.4 코드 리팩토링
기존 코드 개선:
// 개선하고 싶은 코드 선택 후 Cmd+K
이 코드를 리팩토링해줘.
목표:
- 타입 안정성 강화
- 에러 핸들링 추가
- 성능 최적화 (N+1 쿼리 제거)
- 주석 추가
5. 주의사항 및 트러블슈팅
5.1 보안 체크리스트
AI 생성 코드는 반드시 검토하세요:
// ❌ AI가 생성한 위험한 코드 예시
app.post('/login', (req, res) => {
const query = `SELECT * FROM users WHERE email='${req.body.email}'`;
// SQL Injection 취약점!
});
// ✅ 수정 요청
"위 코드에 SQL Injection 취약점이 있어. Prepared Statement로 수정해줘."
필수 확인 사항:
- SQL Injection 방어
- XSS 방어 (입력값 sanitization)
- 인증/인가 로직
- 민감 정보 하드코딩 여부
- CORS 설정
5.2 성능 최적화
문제: AI가 비효율적인 코드 생성
// ❌ N+1 쿼리 문제
const users = await User.findAll();
for (const user of users) {
user.posts = await Post.findAll({ where: { userId: user.id } });
}
해결:
"위 코드에 N+1 쿼리 문제가 있어. JOIN으로 최적화해줘."
// ✅ 최적화된 코드
const users = await User.findAll({
include: [{ model: Post, as: 'posts' }]
});
5.3 흔한 에러 해결법
에러 1: “AI가 오래된 문법 사용”
해결:
최신 Next.js 14 App Router 문법으로 다시 작성해줘.
@docs Next.js 공식 문서 참조
에러 2: “컨텍스트 윈도우 초과”
증상: AI가 갑자기 이전 대화를 잊어버림
해결:
1. 새 Chat 시작 (Cmd+Shift+L)
2. 필요한 파일만 @mention으로 참조
3. .cursorignore 파일로 불필요한 파일 제외
.cursorignore 예시:
node_modules/
.next/
dist/
*.test.ts
*.spec.ts
에러 3: “AI가 프로젝트 구조 무시”
해결:
1. .cursorrules 파일 작성 (위 3.3 참조)
2. README.md에 프로젝트 구조 명시
3. @README.md 를 항상 참조
6. 실무 팁 (Best Practices)
6.1 점진적 개선 전략
❌ 나쁜 예:
"완벽한 블로그 플랫폼 만들어줘 (인증, 댓글, 검색, SEO, 관리자 페이지 포함)"
✅ 좋은 예:
Step 1: "기본 블로그 구조 만들어줘 (글 목록, 상세)"
Step 2: "마크다운 렌더링 추가해줘"
Step 3: "댓글 기능 추가해줘"
Step 4: "검색 기능 추가해줘"
6.2 프롬프트 템플릿
API 엔드포인트 생성
[프레임워크]로 [HTTP 메서드] [엔드포인트]를 만들어줘.
요청:
- Body: { [필드]: [타입] }
로직:
1. [단계 1]
2. [단계 2]
응답:
- 성공 (200): { [필드]: [타입] }
- 실패 (400): { error: string }
예외 처리:
- [케이스]: [처리 방법]
컴포넌트 생성
[프레임워크] [컴포넌트명] 컴포넌트 만들어줘.
Props:
- [prop명]: [타입] - [설명]
기능:
1. [기능 1]
2. [기능 2]
스타일:
- [스타일 라이브러리]
- [디자인 요구사항]
6.3 팀 협업 가이드
공유 .cursorrules 관리:
# 프로젝트 루트에 .cursorrules 커밋
git add .cursorrules
git commit -m "Add Cursor AI rules for team consistency"
팀 컨벤션 예시:
# .cursorrules (팀 공유용)
## 코드 리뷰 전 AI 체크
생성된 모든 코드는 아래 검증 후 커밋:
1. ESLint 통과
2. TypeScript 타입 에러 0개
3. 테스트 커버리지 80% 이상
## 커밋 메시지
AI가 생성한 코드는 커밋 메시지에 명시:
"feat: Add user authentication (AI-assisted)"
6.4 생산성 극대화 단축키
| 단축키 | 기능 | 사용 시나리오 |
|---|---|---|
Cmd+K | Inline Edit | 선택한 코드 수정 |
Cmd+L | Chat | 질문, 설명 요청 |
Cmd+I | Composer | 멀티 파일 작업 |
Cmd+Shift+L | Add to Chat | 에러 메시지 전달 |
Tab | Accept Suggestion | AI 제안 수락 |
7. 자주 묻는 질문 (FAQ)
Q1. 무료 플랜으로도 충분한가요?
A: 개인 프로젝트라면 충분합니다.
- 무료: 월 2,000회 요청 (GPT-3.5)
- Pro ($20/월): GPT-4 무제한, Agent Mode, 우선 지원
권장: 1주일 무료 체험 후 결정
Q2. VS Code에서 Cursor로 갈아타야 하나요?
A: 바이브 코딩을 진지하게 하려면 Yes.
Cursor의 장점:
- 프로젝트 전체 컨텍스트 이해
- Composer로 멀티 파일 편집
- .cursorrules로 프로젝트별 커스터마이징
VS Code + Copilot 유지:
- 기존 워크플로우 유지하고 싶을 때
- 회사 정책상 Cursor 사용 불가
Q3. 개인정보 보호는 안전한가요?
A: Privacy Mode를 활성화하세요.
Cursor Settings → General → Privacy Mode 활성화
- 코드가 Cursor 서버에 저장되지 않음
- 로컬에서만 처리 (단, AI 요청은 OpenAI/Anthropic으로 전송)
민감한 프로젝트: 자체 API 키 사용 권장
Q4. 주니어 개발자도 사용해도 되나요?
A: 오히려 주니어에게 더 유용합니다!
장점:
- 베스트 프랙티스 학습
- 에러 해결 방법 실시간 학습
- 시니어 코드 리뷰 부담 감소
주의:
- 생성된 코드를 이해하려고 노력
- 기본기(자료구조, 알고리즘)는 별도 학습
Q5. AI가 생성한 코드의 품질은?
A: 80점짜리 코드를 빠르게 만들어줍니다.
- ✅ 작동은 함
- ✅ 기본 에러 처리 포함
- ⚠️ 최적화는 부족할 수 있음
- ⚠️ 엣지 케이스 미처리 가능
결론: 초안 작성 → 인간이 검토/개선
8. 성능 최적화 팁
8.1 컨텍스트 윈도우 관리
문제: 프로젝트가 커질수록 AI가 느려짐
해결:
# .cursorignore
node_modules/
.next/
dist/
build/
*.log
*.test.ts
coverage/
8.2 모델 선택 전략
| 작업 | 추천 모델 | 이유 |
|---|---|---|
| 간단한 코드 생성 | GPT-3.5 | 빠르고 저렴 |
| 복잡한 로직 | GPT-4 | 정확도 높음 |
| 대용량 리팩토링 | Claude 3.5 | 긴 컨텍스트 |
설정:
Cursor Settings → Models → Default Model 선택
8.3 캐싱 활용
자주 사용하는 프롬프트는 Snippets로 저장:
Settings → User Snippets → cursor.json
{
"API Endpoint": {
"prefix": "api",
"body": [
"[프레임워크]로 [HTTP 메서드] [엔드포인트]를 만들어줘.",
"",
"요청:",
"- Body: { $1 }",
"",
"로직:",
"1. $2",
"",
"응답:",
"- 성공 (200): { $3 }"
]
}
}
9. 관련 도구 및 리소스
9.1 함께 사용하면 좋은 도구
- Cursor + ChatGPT: 복잡한 아키텍처 논의
- Cursor + GitHub Copilot: 인라인 자동완성 보강
- Cursor + Codeium: 무료 대안
9.2 학습 리소스
공식 문서:
커뮤니티:
YouTube 채널:
- “Cursor AI Tutorial” 검색
- “Vibe Coding with Fred” 채널
9.3 .cursorrules 템플릿 저장소
- awesome-cursorrules
- 프레임워크별 템플릿 제공 (Next.js, Django, FastAPI 등)
결론: 설정 5분, 효과는 평생
Cursor 에디터의 바이브 코딩은 **설정이 90%**입니다.
핵심 요약
- Auto-run 활성화: 승인 버튼 클릭 제거
- Custom Mode 생성: AI에게 페르소나 주입
- .cursorrules 작성: 프로젝트별 규칙 적용
- @mentions 활용: 정확한 컨텍스트 제공
- 점진적 개선: 한 번에 하나씩 기능 추가
실질적 이점
- ⏱️ 개발 시간 70% 단축
- 🧠 학습 곡선 완화
- 🐛 디버깅 시간 50% 감소
- 📚 베스트 프랙티스 자동 적용
다음 단계
- 오늘: Cursor 설치 + Auto-run 활성화
- 이번 주: .cursorrules 파일 작성
- 이번 달: 실제 프로젝트에 적용
바이브 코딩은 미래가 아니라 현재입니다. 지금 시작하세요.
추가 학습 자료
질문이나 피드백은 댓글로 남겨주세요! 🚀