🚀 Cursor AI 사용 가이드
2025. 2. 19. 19:18ㆍ개발 공부 기록
1. Cursor AI 주요 4가지 기능
1-1. 기능 소개
✅ 1. AI 코드 자동완성 (Tab 자동완성)
- 단축키: Tab
-
설명: 코드 작성 중 AI가 추천할 때 Tab을 눌러 자동완성을 적용.
✅ 2. AI 프롬프트 (코드 생성 및 수정 요청)
-
단축키: Ctrl + K (Windows), Cmd + K (Mac)
-
설명: 프롬프트 창을 열어 자연어로 코드 생성 및 수정 요청 가능.

✅ 3. COMPOSER (코드 리팩토링, 자동 생성 및 수정)
-
단축키: Ctrl + I (Windows), Cmd + I (Mac)
-
설명: 선택한 코드 블록에 대해 AI에게 설명 요청 또는 리팩토링 가능.
-
예제: "코드 리팩토링 해줘." 입력 후 AI가 최적화된 코드로 변환.

✅ 4. CHAT (AI 챗봇 질문 및 코드 편집 요청)
-
단축키: Ctrl + L (Windows), Cmd + L (Mac)
-
설명: AI 챗봇과 대화하여 질문하거나, 선택한 코드 블록을 AI에게 수정, 디버깅, 리팩토링 요청 가능.
-
예제: "코드 설명해 줘." 입력 후 AI가 코드 설명 제공.

1-2. CHAT vs COMPOSER vs 프롬프트 비교
기능 | CHAT (Cmd + L) | COMPOSER (Cmd + I) | 프롬프트 (Cmd + K) |
역할 | AI와 채팅 (코드 설명, 질문, 디버깅) | AI 코드 자동 생성 & 수정 | AI 프롬프트 실행 (코드 생성 & 수정 요청) |
코드 자동완성 | ❌ (직접 입력해야 함) | ✅ (자동 생성 & 편집) | ✅ (AI 프롬프트 실행 후 코드 수정 가능) |
기존 코드 수정 (리팩토링) | ❌ | ✅ | ✅ |
사용 방식 | AI와 대화 (ChatGPT 스타일) | 직접 코드 편집 및 자동완성 | AI에게 자연어로 요청 & 실행 |
1-3. 언제 사용하면 좋을까?
✔ CHAT → 코드 관련 질문, 개념 설명 필요 → 코드 분석
✔ COMPOSER → 코드를 자동 생성하거나 수정 → 코드 변환
✔ 프롬프트 → AI 프롬프트 실행하여 코드 생성 & 수정 요청 → 코드 생성
✔ COMPOSER → 코드를 자동 생성하거나 수정 → 코드 변환
✔ 프롬프트 → AI 프롬프트 실행하여 코드 생성 & 수정 요청 → 코드 생성
1-4. 사용 예시
1️⃣ 코드 자동 생성 (AI프롬프트 활용)
📌 사용 방법:
- Cmd + K (Ctrl + K for Windows)를 눌러 프롬프트 실행
- 생성하고 싶은 코드 입력
- AI가 자동으로 코드 생성
- 우측 Accept → 코드 적용, Reject → 코드 미적용
2️⃣ 코드 리팩토링 및 최적화 (COMPOSER 활용)
리팩터링 할
- 코드 블록 선택
- Cmd + I (Ctrl + I) 실행 (Add Context 부분에 관련 코드만 참조되었는지 확인)
- "코드 리팩토링 해줘" 입력
- AI가 더 최적화된 코드로 변환. 코드에 바로 반영됨 (Accept → 코드 적용, Reject → 코드 미적용)
3️⃣ 코드 설명 및 디버깅 (CHAT 활용)
📌 사용 방법:
- 이해하기 어려운 코드 블록을 선택
- Cmd + L (Ctrl + L) 실행하여 CHAT 활성화
- "코드 설명해줘" 또는 "버그 찾아줘" 입력
- AI가 코드 설명 및 버그 수정 방법 제공 (코드가 바로 적용되지 않고 Apply 버튼을 따로 눌러야 함)
1-5. 부가기능
✅CHAT, COMPOSER 입력창 기능

1. Ask Followup (Cmd + Y) - AI에게 후속 질문하기
- AI가 제공한 응답에 대해 추가 질문을 할 수 있는 기능
- 기존 질문을 유지하면서 새로운 질문을 추가할 수 있음
- 이전 맥락을 기억한 상태에서 후속 질문을 할 수 있어 더 정확한 답변을 받을 수 있음
2. @ to mention - 특정 키워드 언급하여 AI에 추가 정보 제공
- AI가 특정 코드 블록 또는 개념을 참고하도록 할 수 있음
- **"@변수명", "@함수명", "@파일명"**을 사용하여 AI가 해당 요소를 인식하도록 유도
- 특정 파일이나 함수에 대한 설명 요청 시 유용
항목 | 설명 | 사용 예제 (@ 활용) |
Files | 현재 프로젝트의 파일 목록 | @Files에서 userService.java 파일의 내용을 참고해줘 |
Folders | 프로젝트 내 폴더 구조 | @Folders에서 services 폴더 내 모든 파일을 분석해줘 |
Code | 코드 파일을 AI가 인식하도록 지시 | @Code의 UserService.java 파일 스타일을 유지하면서 새 함수를 생성해줘 |
Docs | 프로젝트 내 문서 파일 (예: README.md, API 문서) | @Docs에서 API 명세를 참고해 새로운 엔드포인트를 만들어줘 |
Git | Git 상태, 브랜치, 변경 이력 관련 정보 (2-2 에서 자세히 설명) |
@Git에서 최근 커밋 내역을 확인하고 변경사항 요약해줘 |
Notepads | AI가 생성한 노트 및 임시 기록 | @Notepads에 저장된 지난 코드 리뷰 내용을 참고해줘 |
Summarized Composers |
AI가 요약한 코드 또는 문서 내용 | @Summarized Composers의 내용을 기반으로 코드 개선점을 찾아줘 |
Cursor Rules | AI가 따를 규칙 설정 (코드 스타일 등) | @Cursor Rules에서 이 프로젝트의 코드 스타일을 참고해서 리팩토링 해줘 |
Codebase | 전체 코드베이스 내 검색 및 분석 | @Codebase에서 UserService와 관련된 모든 함수 목록을 정리해줘 |
Lint errors | 코드 내 린트(lint) 오류 목록 | @Lint errors에서 ESLint 오류를 확인하고 수정해줘 |
Web | 웹에서 추가 정보를 검색하여 참고 가능 | @Web에서 최신 OAuth 2.0 인증 방법을 검색해줘 |
3. (Up 화살표) to select - 이전 입력한 질문 다시 선택하기
- 이전 질문을 다시 선택하여 수정하거나 재사용 가능
- Up 화살표(↑) 를 눌러 이전 입력한 질문을 불러올 수 있음
- 자주 반복하는 질문을 다시 입력할 필요 없이 빠르게 선택 가능
2. Cursor AI 활용 팁 & 고급 기능
2-1. AI와 함께 터미널 명령어 활용하기
✅ AI에게 터미널 명령어 추천받기
📌 터미널에서 실행할 명령어를 모를 때 AI에게 추천받을 수 있음
- Cmd + L (Ctrl + L)을 눌러 CHAT 실행
- "zsh: permission denied: ./gradlew 해결해 줘"" 입력
- AI가 "chmod +x gradlew"과 같은 적절한 명령어 추천
- Run 버튼으로 AI가 추천한 명령어를 터미널에서 직접 실행
💡 AI를 활용하면 복잡한 CLI(Command Line Interface) 명령어도 쉽게 사용할 수 있음!
"Git에서 최신 변경 사항을 가져오고, 브랜치를 main으로 전환한 후, 로컬 변경 사항을 커밋하고 푸시하는 명령어를 알려줘."

2-2. @Git 활용법: Cursor에서 Git 연동 및 AI 활용
기능 | 활용 예제 (@Git) | 효과 |
Git 상태 확인 | "@Git에서 현재 변경된 파일 목록을 알려줘." | git status 결과 요약 |
최근 커밋 내역 확인 | "@Git에서 최근 5개의 커밋 메시지를 요약해줘." | git log 결과 요약 |
브랜치 변경 사항 비교 | "@Git에서 현재 브랜치와 main 브랜치의 차이를 비교해줘." | git diff main 분석 |
변경된 코드 리뷰 | "@Git에서 최근 변경된 파일들의 코드 리뷰를 해줘." | 자동 코드 리뷰 제공 |
코드 최적화 | "@Git에서 최근 변경된 코드들을 최적화해줘." | 코드 성능 및 가독성 개선 |
자동 커밋 메시지 생성 | "@Git에서 최근 변경 사항을 기반으로 커밋 메시지를 생성해줘." | 의미 있는 커밋 메시지 추천 |
PR 요약 및 리뷰 | "@Git에서 현재 PR의 변경 내용을 요약해줘." | 자동으로 PR 설명 정리 |
3. 기타 유용한 설정
3-1. Hot Code Replace (HCR)
- 애플리케이션을 재시작하지 않고도 코드 수정사항을 적용 가능
- 디버깅 중 메서드 내부 코드 수정 가능
- "auto": 자동으로 HCR 수행
- "never": HCR 비활용
- "manual": 수동으로 HCR 수행
3-2. Cursor에서 사용 가능한 GPT 모델들
모델 | 특징 | 장점 | 추천 사용 사례 |
gpt-4o | OpenAI 최신 GPT-4o 모델 | 빠른 속도 + 고품질 응답 | 일반적인 코딩, 문서 요약, AI 챗봇 |
gpt-4o-mini | 경량화된 GPT-4o 버전 | 더 빠른 속도 & 비용 절감 | 간단한 코드 생성, 빠른 응답 |
o1-mini | OpenAI의 실험적 소형 모델 | 속도 우선, 비용 절감 | 간단한 작업, 빠른 반복 요청 |
o1-preview | OpenAI의 최신 실험적 모델 | 새로운 기능 테스트 가능 | 신기능 실험, 최신 AI 테스트 |
o1 | OpenAI 중간급 모델 | 균형 잡힌 성능 | 일반적인 코드 생성 및 분석 |
o3-mini | OpenAI 소형 모델 | 속도 빠름 & 비용 낮음 | 기본적인 코드 추천, 간단한 질문 |
claude-3.5-sonnet | Anthropic Claude 3.5 모델 | 창의적인 코드 & 문서 생성 강점 | 복잡한 코드 작성, 문서 생성 |
deepseek-r1 | DeepSeek AI 모델 | 코드 특화, 속도 빠름 | 개발자 친화적인 코드 추천 |
🚀 최적의 AI 모델 선택 가이드
목적 | 추천 모델 |
최고 성능, 복잡한 코드 생성 | gpt-4o, claude-3.5-sonnet |
빠른 응답 + 균형 잡힌 성능 | gpt-4o-mini, o1 |
비용 절감 + 기본적인 코드 자동완성 | o3-mini, o1-mini |
문서 생성 및 코드 문서화 | claude-3.5-sonnet |
속도가 가장 중요한 경우 | o3-mini, deepseek-r1 |
코드 변환 및 최적화 | deepseek-r1, gpt-4o |
3-3. Rules for AI
✅ "Rules for AI"란?
📌 "Rules for AI"를 설정하면 다음과 같은 효과를 얻을 수 있음:
- AI가 팀의 코딩 스타일과 일관되도록 코드 작성
- 특정 코드 패턴이나 금지된 라이브러리, 스타일 규칙 적용 가능
- AI가 리팩토링할 때 특정 원칙을 준수하도록 설정
- 테스트 코드 작성 방식, 네이밍 규칙, 코드 문서화 스타일 반영 가능
✅ 추천 설정
설정 |
의미 |
Always respond in Korean | AI가 항상 한국어로 응답 |
You are a professional Spring Backend developer assistant. | Spring Boot 백엔드 개발 보조 역할 수행 |
Always suggest code snippets when necessary. | 코드 예제를 항상 포함하여 응답 |
Suggest domain driven develop | DDD(도메인 주도 설계) 방식을 추천 |
Keep responses concise and informative, unless a detailed explanation is required. | 응답을 간결하고 유용하게 제공 |
All classes and methods must include Javadoc comments. | 모든 클래스와 메서드에 Javadoc 주석을 포함해야 함. |
Use camelCase for variable and method names. | 변수명과 메서드명은 camelCase 스타일을 따라야 함. |
All API endpoints must use @RequestMapping, @GetMapping, or similar annotations. | 모든 API 엔드포인트는 Spring MVC 애너테이션(@GetMapping, @PostMapping 등)을 사용해야 함. |
Use @Transactional in service layer methods where applicable. | 서비스 계층의 메서드에서 트랜잭션이 필요한 경우 @Transactional을 사용해야 함. |
Avoid using orElse(null) when working with Optional, prefer orElseThrow(). | Optional을 사용할 때 orElse(null)을 피하고 orElseThrow()를 사용해야 함 (NullPointerException 방지). |
Lombok usage is limited to @Getter, @Setter, and @RequiredArgsConstructor; avoid using @Data. | Lombok 사용을 @Getter, @Setter, @RequiredArgsConstructor로 제한하고, @Data는 사용하지 않음 (불필요한 메서드 생성 방지). |
Service layer should not return entity objects directly; use DTOs instead. | 서비스 계층에서 엔티티를 직접 반환하지 않고 DTO(Data Transfer Object)를 사용해야 함. |
Exception handling should be managed using @ControllerAdvice. | 예외 처리는 @ControllerAdvice를 사용하여 중앙 집중적으로 관리해야 함. |
Follow the layered architecture: Controller → Service → Repository. | 레이어드 아키텍처를 준수해야 함 (Controller → Service → Repository 구조 유지). |